Улучшения в Loader классе, методах controller и validate
- Улучшена многоязычная поддержка для сообщений об ошибках проверки.
- Добавлена многоязычная поддержка сообщений об ошибках для класса File.
- Исправлены проблемы с обработкой исключений при рендеринге шаблонов.
- Внесены улучшения в REST-контроллер.
- Усовершенствован trace-драйвер.
- Оптимизирован метод remember класса Cache.
- Решены проблемы с кодировкой URL при использовании метода url_common_param.
- Проведена оптимизация класса Url.
- Расширена поддержка замыканий в параметре конфигурации exception_handle.
- Перед выполнением команды RUNTIME_PATH проверяется наличие пути.
- Скорректировано поведение метода dec класса CacheDriver при передаче пустого значения.
- Улучшено отображение на мобильных устройствах.
- Повышена эффективность поддержки плагина JSON-Handle.
- Обновлён метод get класса redis.
- Доработан метод host класса Request.
Версия 5.0.11
Версия 5.0.11 представляет собой обновление безопасности и исправления ошибок, которое включает в себя следующие изменения:
- улучшен кэш-драйв;
- оптимизированы запросы к базе данных;
- усовершенствован класс генерации URL;
- добавлена возможность устанавливать срок действия кэша.
[База данных и модель]
- Обновлены методы класса драйвера базы данных.
- Разрешён конфликт ключевых слов в методе group.
- Исправлено некорректное возвращение null при агрегированных запросах.
- Реализован принудительный перехват соединения в классе Db.
- Обеспечена более эффективная привязка связанных свойств.
- Откорректирована обработка ошибок при разрыве соединения.
- Класс Db получил новый метод clear.
- Изменён способ обработки null в массивах запросов.
- Метод chunk класса Query теперь поддерживает настройку сортировки.
- Методы has классов HasOne и HasMany теперь работают эффективнее.
- Мягкое удаление связанных объектов стало более точным.
- Обработка нескольких запросов к одному полю стала более эффективной.
[Другое]
- Срок действия кэша теперь можно задавать с помощью параметра DateTime.
- Поддержка порта в URL стала более гибкой.
- Исключения RouteNotFound теперь обрабатываются более корректно.
- Глобальное сопоставление маршрутов стало более полным.
- Частично исправлены ошибки в правилах проверки.
- Модель и данные могут быть представлены в формате XML.
- Тернарные операторы в шаблонах стали более функциональными.
- Сообщения об ошибках при отсутствии контроллера стали более информативными.
- Функция input теперь может получать переменные route.
- Конфигурация приложения может быть расширена дополнительными параметрами.
- Разбиение на страницы получило дальнейшее развитие.
- Проблема с пространством имён Trait была устранена.
- Метод env класса Request был обновлён.
- Приоритет отдаётся многоязычным настройкам из Cookie.
- При получении меток кэша фильтруются недействительные метки.
- Ошибка в пакетной регистрации маршрутов была исправлена.
- Параметр exception_handle теперь поддерживает использование замыканий для определения обработки render.
- Запрос на поддержку кэширования теперь позволяет настраивать метки кэша.
- Механизм блокировки добавлен в метод remember класса кэша.
- Загрузка файлов формата swf в класс Upload стала более надёжной.
- Префикс в классе Session теперь работает более точно.
Версия 5.0.10
Версия 5.0.10 представляет собой исправление ошибок и обновление безопасности, включая следующие изменения:
- улучшение модели и базы данных;
- добавление новых функций мониторинга поведения;
- поддержка Response в маршрутах.
[Модель и база данных]
- Исправлена ошибка в запросе на удаление при объединении с другими таблицами.
- Обработаны сложные случаи удалённого отношения «один ко многим».
- Метод insertall теперь поддерживает replace.
- Многоуровневые отношения «многие ко многим» теперь обрабатываются корректно.
- После обновления модели автоматически обновляется атрибут update_time.
- Появился метод removeRelation в модели.
- Модели получили новые методы setInc и setDec.
- Динамическая установка временных полей в моделях стала возможной благодаря методу autoWriteTimestamp.
- Перехват соединений в методах класса драйвера стал более эффективным.
- Отношения «многие ко многим» обрабатываются точнее.
- Запросы BelongsToMany стали более эффективными.
- Корректно обрабатываются методы value и column класса Query.
- Повторяющиеся значения в in-запросах теперь удаляются.
- Передача значений в область видимости модели стала более точной.
- Позиция проверки перед обновлением в методе save модели была скорректирована.
- Модификаторы и геттеры теперь поддерживают третий параметр для связанных данных.
[Другое]
- По умолчанию отключён режим отладки.
- Ошибки загрузки временных файлов в каталоге extra были устранены.
- Мониторинг завершения записи журнала (log_write_done) был добавлен.
- Генерация общих файлов в Build стала более интеллектуальной.
- Была добавлена функция response_send для мониторинга поведения.
- Маршрутизация теперь поддерживает параметры response для привязки к обработке ответа.
- Перенаправление стало более гибким в отношении параметров.
- Логические значения в среде теперь считываются корректно.
- URL-адреса теперь могут включать домены.
- Команда line теперь генерирует файлы более точно.
- Команды line для создания URL стали более точными.
- Новый параметр app_host устанавливает корневой URL по умолчанию.
- Определение SSL в Request стало более точным, учитывая CDN.
- Запись trace-информации в журнал теперь настраивается через параметр record_trace.
Версия 5.0.9
Версия 5.0.9 представляет собой исправление ошибок, включая следующие улучшения:
[Модель и база данных]
- Автоматическое создание связанных записей стало более корректным.
- Проверка изменений модели теперь учитывает пустые значения.
- Возвращаемое значение метода useSoftDelete класса Query было уточнено.
- Определения одноуровневых отношений вложенных массивов стали более понятными.
- Проблемы с кэшем, вызванные ручным связыванием параметров, были решены.
- Запросы в базе данных стали более устойчивыми к вложенным запросам.
- Удаление пустых массивов в методе destroy модели стало более безопасным.
- Вывод данных для отношений «один ко многим» стал более точным.
- Сохранение моделей теперь поддерживает метод allowField.
- Страницы стали более удобными благодаря добавлению метода toarray в класс разбиения на страницы.
- Сравнение операций получило поддержку замыканий в подзапросах.
- Драйвер базы данных больше не пытается автоматически переподключаться.
- Более точное определение полей в отношениях BelongsToMany.
- Каждый элемент в коллекции теперь доступен через метод each класса разбиения на страницы.
[Другое]
-
Правила маршрутизации стали более чувствительными к регистру.
-
Журналы теперь корректно разделяются при создании.
-
Параметры в URL теперь правильно кодируются.
-
Фильтр в классе Request стал более мощным благодаря поддержке регулярных выражений.
-
Ручная настройка contentType в Response стала возможной.
-
Неопределённые функции в исключениях шаблонов теперь обрабатываются корректно. IN / NOT IN 型查询条件为空导致的 SQL 语法错误
-
Исправление метода toArray класса, реализующего разбиение на страницы. Поддержка лаконичного режима.
-
Исправление обработки метода delete класса Model для составных ключей.
-
Исправление поддержки мягкого удаления в MongoDB.
-
Исправление возможной ошибки в классе Connection.
-
Улучшение механизма кэширования метода find класса Query.
-
Исправление связи BelongsTo.
-
Исправление JOIN-способа для предварительной загрузки одно-к-одному.
-
Исправление возможного предупреждения об ошибке в методе insert класса Query.
-
Исправление конфликта использования метода use класса Collection в Model.
-
Исправление метода hasWhere класса Model.
-
Исправление поддержки параметра ext в генерации URL.
-
Метод clear файлового кэша удаляет пустые каталоги.
-
Исправление проблемы в методе parseUrlPath класса Route.
Настройка
- По умолчанию отключена безопасная опция secure в сеансе. Эту опцию можно включить только при использовании HTTPS.
2017-02-07 V5.0.6
Основные настройки:
Это обновление в основном предназначено для исправления ошибок и оптимизации (можно обновить без проблем).
- В базе данных реализована поддержка механизма переподключения после разрыва соединения.
- Усовершенствованы события запросов.
- Усовершенствован механизм автоматического кэширования данных.
- Добавлена настройка для автоматического преобразования формата времени.
- Расширения ядра MongoDB и Oracle обновлены до последних версий.
[База данных и модель]
- Исправлен метод hasMany в отношении «имеет».
- Удалены некоторые конфигурации по умолчанию для баз данных, чтобы избежать влияния при использовании расширений базы данных.
- Усовершенствовано возвращаемое значение метода attach для отношений многие-ко-многим.
- Добавлено управление повторным подключением MySQL и переключатель.
- Усовершенствован механизм кэширования данных в методе find класса Query.
- Усовершенствованы параметры обратного вызова событий запроса в классе Query.
- Усовершенствована автоматическая синхронизация обновлений в классе Query.
- Класс Model добавляет метод readonly.
- Усовершенствование методов has и hasWhere в классе Model.
- Модельные классы улучшают методы get и all. Второй параметр равен true или числу, что указывает на использование параметров кэширования.
- Исправлена ошибка синтаксиса SQL, вызванная пустым условием соединения в запросе.
- Усовершенствован метод setBuilder класса Query, чтобы предотвратить проблемы с поиском генератора после создания пользовательского соединителя.
- Удалено устаревшее свойство resultSetType класса Connection.
- Оптимизирован метод close класса Connection.
- Исправлены проблемы совместимости с мягким удалением, поддерживающим MongoDB.
[Другое]
- Усовершенствован класс Url при создании корневого элемента /.
- Функции redirect и методы redirect контроллера добавлены с параметром with.
- Глобальный запрос добавлен в правила исключения. Добавлен параметр конфигурации request_cache_except.
- Параметр store метода класса Cache позволяет использовать пустые значения для получения текущего дескриптора драйвера кэша.
- Усовершенствован процесс проверки IP в классе Validate.
2017-01-23 V5.0.5
Основная настройка:
Основное внимание в этом обновлении уделяется улучшению уровня доступа к данным и моделированию связей:
- Добавление функций быстрого поиска и настройки.
- Добавление статистики связей.
- Добавление функции отложенной предварительной загрузки связей.
- Одно-к-одному автоматическое создание и удаление.
- Улучшен процесс выполнения хранимых процедур.
- Улучшено отображение связанных данных.
- Повышена производительность запросов.
- Автоматическое форматирование вывода полей даты и времени в моделях.
[Запрос и маршрутизация]
- Улучшена проверка суффиксов в определении маршрутов.
- Поддержка метода rest класса Route для переопределения определения.
- Методы put и post класса Request улучшены для приёма параметров формата json.
- Запрос класса добавляет метод contentType.
- Улучшения в методе setRule класса Route.
- Улучшения метода create класса Request.
- Влияние маршрутизации на контроллеры и методы рендеринга шаблонов по умолчанию.
- Исправлена проблема с определением псевдонимов в методе build класса Url.
[Базы данных и модели]
- Добавлены функции статистики связей.
- Реализовано автоматическое создание связей один-к-одному.
- Исправлен метод delete агрегатной модели.
- Улучшен метод useGlobalScope класса Model.
- Поле даты в модели может быть установлено как имя класса.
- Классы Query добавляют методы data, inc, dec и exp для быстрой установки параметров данных для методов insert и update, которые могут быть пустыми, и считывания данных из метода data.
- Повышение производительности запросов в Connection.
- Исправлен метод parseOrder класса Builder.
- Исправлен метод attach класса BelongsToMany.
- BelongsToMany класс улучшает метод attach, поддерживает пакетное создание.
- Улучшенный метод saveall класса BelongsToMany, добавлен третий параметр для указания, должны ли дополнительные параметры быть одинаковыми.
- Метод order класса Query поддерживает многократные вызовы для объединения.
- Улучшенная поддержка групповых запросов методом count.
- Проверка наличия временных меток при автоматической записи.
- Улучшен метод writeTransform класса Model.
- Улучшенное чтение и запись временных меток в моделях.
- При записи данных в виде объекта проверяется наличие метода __toString.
- Улучшен метод getFields класса MysqlDriver.
- Улучшено автоматическое форматирование выходных данных временных меток.
- Условия запроса like поддерживают массивы.
- Автоматически используется формат времени при получении временных меток.
- Улучшены запросы с несколькими условиями or для одного поля.
- Объединение условий null.
- Первый параметр метода paginate класса Query может принимать массив параметров.
- Данные преобразуются методом select класса Query, а исходные запросы больше не поддерживают возврат объектов данных.
- Добавлены быстрые методы поиска, такие как whereNull, whereIn и т. д.
- Метод fetchPdo оптимизирован.
- Улучшена поддержка вызовов хранимых процедур, улучшен механизм вызова getRealSql, улучшена поддержка привязки параметров для полей с дефисами.
- Параметры конфигурации базы данных добавляют параметр result_type для управления типом возвращаемых данных.
- Улучшен метод whereTime класса Query для поддержки большего количества выражений времени и даты (по умолчанию условие запроса больше указанного выражения времени).
- Отменены значения по умолчанию для параметров min, max, sum и avg.
- Класс Query добавляет метод getPdo для возврата объекта PDOStatement.
- Улучшен запрос с использованием выражения today для даты.
- Улучшено получение связанных атрибутов.
- Проблема с повторным выполнением условий соединения в определениях связей решена.
- Связывание параметров автоматически связывает китайские поля.
- Улучшен метод insertall класса Builder, добавлена обработка нулевых значений и объектов.
- Типы привязки параметров улучшены, поддерживается автоматическая привязка типа bit.
- Соединение класса model изменено на getQuery.
- Оптимизация метода __call класса Connection.
- Агрегатная модель исправлена.
- Один-к-одному предварительная загрузка по умолчанию использует тип IN.
- Помощник функции load_relation используется для отложенной предварительной загрузки массивов.
- Улучшен метод has класса Model, второй параметр поддерживает использование массивов и замыканий, нет необходимости использовать hasWhere.
- Связь relation поддерживает вложенные запросы.
- Коллекция моделей используется как объект коллекции данных модели think\model\Collection.
- Отменено использование параметра alias в определении связей (только morphTo сохраняется).
- Метод delete класса Model поддерживает ситуации без первичного ключа.
- Разрешить методу allowField класса Model разделять строки запятыми.
- Проблемы с путаницей имён параметров при автоматической привязке параметров исправлены.
- Методы with и relation класса Query поддерживают множественные вызовы.
- Коллекция классов добавляет методы hidden, visible и append.
- Мягкое удаление принудительно удалено и улучшено.
[Прочее]
- Уникальная проверка правил поддерживает указание полной модели класса и по умолчанию сначала проверяет, существует ли модель класса, если нет, то проверяет данные таблицы.
- Улучшенные методы loader класса model, controller и validate поддерживают прямое создание экземпляров с помощью имён классов.
- Session класс добавляет параметры безопасности httponly и secure.
- Можно разрешить настраиваемый вывод Output для адаптации к командам командной строки и другим командам.
- Улучшен метод action класса loader для решения проблемы загрязнения параметров.
- Валидатор класса изменяет подтверждение на проверку равенства.
- Улучшен класс валидатора для обработки ошибок.
- Улучшен валидатор класса для проверки логических значений.
- Улучшен помощник cookie для поддержки префиксов.
- Файл кэша по умолчанию включает подкаталог кэша, чтобы избежать проблемы чрезмерного количества файлов, влияющей на производительность.
[Настройка]
- Метод model класса Connection изменён на getQuery.
- Исходные запросы больше не возвращают объекты данных.
- Разбиение на страницы возвращает тип think\Paginator (использование остаётся прежним).
- Поля даты и времени модели автоматически форматируются и выводятся, дополнительная обработка не требуется.
- Безопасный параметр secure и httponly добавлен в класс Session, по умолчанию имеет значение true. Запрос класса post метода поддерживает получение данных в формате JSON.
- Маршрутизация к классу метода и контроллеру метода поддерживает передачу дополнительных параметров, используемых для параметров метода.
- Улучшение автоматического поиска контроллера по каталогу.
- Улучшение кэширования запросов.
- Улучшенное автоматическое связывание параметров.
- Исправление настроек кэша маршрутизации.
- Улучшенный метод name класса Route.
[База данных и модель]
- Добавление событий запросов базы данных (CURD).
- Улучшено решение проблемы с отсутствием полей при обновлении нескольких таблиц.
- Улучшен метод useGlobalScope класса Model.
- Исправлена проблема с использованием подзапросов в качестве имён таблиц.
- Добавлен атрибут resultSetType в класс Model для указания типа объекта набора данных модели (по умолчанию возвращает пустой массив).
- В классе Model добавлен метод toCollection (автоматически вызывается).
- Скорректирована архитектура связанных моделей.
- Улучшена поддержка параметров lowerCamelCase и _lower_case для метода with.
- Исправлены ошибки в отношении многих ко многим.
- Улучшены запросы для отношений многие ко многим.
- Поддержка полиморфных отношений один ко многим для связанных моделей.
- Предварительная загрузка связанных объектов позволяет привязывать атрибуты текущего объекта модели к связанным объектам.
- Поддерживается добавление атрибутов связанного объекта к данным текущей модели.
- Для отношений один к одному предварительная загрузка поддерживает JOIN и IN (по умолчанию используется JOIN).
- Улучшения в запросах для многих ко многим отношениям.
- Улучшенные правила сравнения изменений данных при обновлении модели.
- Запросы поддерживают многократное использование одного поля в условиях запроса.
- Улучшен SQL-журнал с более подробными операторами SQL.
- Исправлен конфликт псевдонимов при использовании имени таблицы в качестве псевдонима.
- Объединение атрибута connection класса модели с конфигурацией по умолчанию.
- Улучшено автоматическое связывание параметров для условий in и between.
- Улучшенная поддержка сортировки объектов наборов данных и связанных полей в классе Query.
- Ускорены методы событий для моделей.
- Улучшено кэширование чтения методом getTableInfo класса Query.
- Метод saveAll класса model поддерживает вызов метода allowField для фильтрации полей.
- Исправлена ошибка в методе whereTime при запросе связанных данных.
- Улучшены агрегатные запросы в классе Query.
- Класс table поддерживает строковые подзапросы.
- Исправлена проблема, когда методы count и avg не могли правильно возвращать SQL при использовании fetchsql.
[Прочее]
- Улучшено ведение журнала в командной строке.
- Ведение журнала упрощено в режиме развёртывания.
- Добавлен тип журнала debug, доступный только в режиме отладки.
- Улучшен метод parseTemplateFile класса Template.
- Улучшен метод getRuleMsg класса Validate.
- Контроллер error по умолчанию возвращает пустую строку URL при AJAX-запросах.
- Атрибут field добавлен в метод validate класса Validate для настройки описания поля проверки.
- Улучшен метод invokeMethod класса App для поддержки внедрения зависимостей в функции архитектуры.
- Добавлено восстановление метода RedirectResponse.
- В класс View добавлен статический метод share для статического присвоения значений шаблонам переменных.
- Проверка класса включает метод hasScene для определения наличия конфигурации проверки для конкретной сцены.
- Исправлены возвращаемые значения методов destroy для redis и session драйверов.
- Параметры операций без операции удалены после вызова метода.
- Тип подсказки добавлен для вызовов request и view в контроллере.
- Улучшен помощник input для поддержки многомерных данных.
- Классы Cache добавлены методами pull и remember.
- Улучшено подтверждение правил проверки класса Validate с поддержкой автоматического распознавания правил.
- Улучшено определение ошибок в классе Validate.
- Добавлена возможность замены пользовательских сообщений об ошибках в классе Validate.
- Cookie класс добавил метод forever для постоянного сохранения.
- Шаблоны могут быть отображены из корневого каталога представлений.
- Улучшен метод exec класса Hook.
[Настройка]
- Db класс больше не поддерживает настройку пользовательских наборов данных.
- Удалён метод fetchClass класса Query.
- По умолчанию URL, возвращаемый контроллером error при AJAX-запросе, пуст.
- Связанные методы больше не поддерживают использование lowerCamelCase, требуется использовать стиль CamelCase.
- Методы поведения должны использовать стиль CamelCase для именования. Улучшение класса Session: автоматическая инициализация
- В класс Session добавлен метод pull для получения и удаления данных.
Увеличение класса Env для получения переменных окружения
- Класс Env используется для получения переменных среды.
Изменения в методах get/post/put класса Request: сохранение эффективности параметров после присвоения значений
- Методы get, post и put класса Request сохраняют свою эффективность после присвоения значений параметрам.
Улучшения в классе Jump: поддержка Url::build для анализа переадресации
- Класс Jump поддерживает использование функции Url::build для анализа адресов переадресации.
Оптимизация класса Hook
- Оптимизирован класс Hook.
Применение режима отладки и поддержка переменных окружения в режиме трассировки
- При использовании режима отладки поддерживаются переменные окружения.
Поддержка использования функции config('?name') в качестве помощника
- Функция config('?name') может использоваться в качестве помощника.
Использование константы BIND_MODULE для привязки модулей
- Модули можно привязывать с помощью константы BIND_MODULE.
Автоматическая привязка модулей во входном файле
- Во входном файле автоматически привязываются модули.
Улучшение обработки ошибок и вывода шаблонов в классах проверки
- Классы проверки ошибок были улучшены: теперь они поддерживают пакетную проверку ошибок и выводят более информативные сообщения об ошибках.
Доработка консоли: добавление методов вывода
- Консоль была доработана: добавлены методы вывода.
Добавление функции token для быстрого отображения токенов на странице
- Добавлена функция token, которая позволяет быстро отображать токены на странице.
Добавление метода halt для отладки переменных и прерывания вывода
- Метод halt позволяет отлаживать переменные и прерывать вывод.
Улучшение правил проверки чисел и целых чисел в классе Validate
- Правила проверки чисел и целых чисел в классе Validate были улучшены.
Оптимизация автозагрузки: сканирование расширений каталогов
- Автозагрузка была оптимизирована: теперь она сканирует каталоги расширений.
Улучшение логических правил в классе Validate: поддержка данных форм
- Логические правила в классе Validate были улучшены и теперь поддерживают данные форм.
Улучшение функций cookie: определение наличия определённых cookie
- Функции cookie были улучшены, теперь они могут определять наличие определённых cookie.
Улучшение функции abort: поддержка исключения HttpResponseException
- Функцию abort улучшили, теперь она поддерживает исключение HttpResponseException.
Улучшение работы с ошибками при загрузке файлов
- Обработка ошибок при загрузке файлов была улучшена.
Улучшение метода move класса File: возврат информации о форме загрузки и получение хеш-значения файла
- Метод move класса File был улучшен: он возвращает информацию о форме загрузки и позволяет получить хеш-значение файла.
Изменение возвращаемого объекта метода move класса File на экземпляр File
- Возвращаемый объект метода move класса File теперь является экземпляром File.
Добавление команд clear и optimize:config
- Были добавлены команды clear и optimize:config.
Улучшение проверки типов файлов в классах File и Validate
- Проверка типов файлов в классах File и Validate была улучшена.
Операции контроллера поддерживают внедрение объектов, отличных от Request
- Операции контроллера теперь могут использовать объекты, отличные от Request.
Метод param класса Request поддерживает получение данных с файлами
- Параметр true метода param класса Request позволяет получать данные с файлами.
Первый параметр функции input теперь имеет значение по умолчанию
- Первый параметр функции input получил значение по умолчанию.
В классе Validate было добавлено правило проверки изображений и улучшено правило max min length
- Правило проверки изображений было добавлено в класс Validate, а правило max min length — улучшено.
При кодировании данных JSON и возникновении ошибки генерируется исключение
- Если при кодировании данных в формате JSON возникает ошибка, генерируется исключение.
Опубликовать ( 0 )