2019-1-11 V5.0.24
В этом обновлении включена безопасная версия, рекомендуется обновиться.
- Улучшена связь метода
save
- Улучшена проверка данных модели
- В коллекции добавлен метод
values
- Улучшена уникальная проверка метода
unique
- Улучшен метод
method
класса Request
2018-12-9 V5.0.23
В этом выпуске обновление в основном касается безопасности, рекомендуется как можно скорее обновиться до последней версии.
- Поддержка вызова диапазонов запросов модели в
Query
- Поддержка
DISTINCT
для полей агрегатных запросов
- Улучшена проверка параметров в замыканиях
- Поддержка указания названия полей промежуточной таблицы для связи многие ко многим
- Поддержка указания полей для проверки в
after/before
- Улучшена связь многие ко многим
- Улучшен класс проверки
- Добавлены правила проверки
afterWith
и beforeWith
для сравнения дат
- Улучшены подсказки правил
- Улучшена переподключение при разрыве соединения
- Исправлен метод
destroy
для мягкого удаления
- Исправлен метод
save
модели, когда переменная data
пустая, данные не проверяются
- В модели добавлен метод
replace
- В
MorphOne
добавлен метод make
для создания объекта связи
- Улучшен тип возвращаемого значения метода
count
- Улучшена проверка регулярных выражений в агрегатных запросах
- Улучшен драйвер
sqlsrv
- Улучшена связь метода
save
- Исправлен метод получения имени контроллера## 2018-10-22 V5.0.22
В этом выпуске добавлена поддержка JSON-формата логов и включена безопасная версия.
- Отключение кэширования маршрутов в режиме отладки
- Улучшен класс
Log
для поддержки JSON-формата логов
- Улучшена безопасность агрегатных запросов
- Улучшен тип возвращаемого значения метода
count
2018-9-7 V5.0.21
В этом выпуске исправлены некоторые известные проблемы, улучшена поддержка Swoole и добавлена функция кэширования маршрутов.
- Добавлена функция кэширования маршрутов
- Улучшена генерация URL для портов
- Улучшены драйверы кэширования
- Улучшена обработка кэширования в методе
value
- Исправлен метод
insertAll
класса Builder
- Улучшена поддержка Swoole (для использования см. xavier-swoole)
2018-5-11 V5.0.20
В этом выпуске исправлены некоторые известные проблемы.
- Поддержка передачи объекта
Expression
в метод join
- Улучшен метод
parseKey
драйвера
- Улучшен метод
host
класса Request
- Улучшены подсказки ошибок при использовании выражения
exp
для обновления данных
- Исправлены запросы
- Улучшена обработка промежуточной таблицы при обновлении связи многие ко многим
2018-4-25 V5.0.19
В этом выпуске улучшена безопасность автоматической загрузки Composer и встроенных шаблонных движков.* Улучшена автоматическая загрузка Composer
- Улучшена безопасность встроенных шаблонных движков
- Улучшена обработка метода
comment
- Улучшена обработка операций записи в распределённой системе
- Улучшена автоматическая конвертация методов работы с URL
- Улучшен тип возвращаемого значения магических методов класса пагинации
- Добавлены метки для основного и реплицирующего серверов в логах SQL
2018-4-14 V5.0.18В этом выпуске были исправлены некоторые ошибки предыдущего выпуска, а также улучшена строгость запросов и записи выражений exp
.
- Исправлено совместимое использование метода
field
с *
;
- Исправлены методы
inc/dec
;
- Исправлены методы
setInc/setDec
;
- Улучшен метод
insertAll
;
- Улучшен метод
parseTime
;
- Улучшена строгость запросов и записи выражений
exp
.
2018-4-12 V5.0.17
В этом выпуске были внесены исправления и улучшения, а также включен безопасный обновленный пакет.
- Улучшен метод
create
класса Response
;
- Улучшены запросы методов
inc/dec
;
- Поддержка использования методов операций напрямую в шаблонах по умолчанию;
- Улучшен метод управления представлениями;
- Улучшен метод
ip
класса Request
, поддерживающий настройку прокси;
- Исправлен метод
create
класса request
;
- Вызов
cache(true)
в замыканиях запросов приводит к исключению;
- Улучшен автоматический загрузчик Composer;
- Добавлен класс
Expression
и связанные методы.
2018-3-26 V5.0.16
В этом выпуске были внесены исправления и улучшения, включая безопасный обновленный пакет, рекомендованный для обновления.* Улучшено создание URL;
- Улучшена производительность автоматического загрузчика Composer;
- Улучшена однозначная связь запросов;
- Улучшена кэширование запросов;
- Улучшен метод
field
;
- Оптимизирован класс
Template
;
- Исправлены параметры пагинации;
- Улучшена автоматическая идентификация шаблонов по умолчанию;
- Улучшены запросы класса
Query
;
- Улучшен класс
Collection
;
- Улучшен метод
readTransform
класса модели для обработки сериализованных типов;
- Улучшена отладочная информация;
- Поддержка автоматической очистки файлов журнала;
- Улучшена проверка повторного подключения;
- Улучшены методы валидации;
- Исправлен метод
view
класса Query
для определения таблицы по имени;
- Улучшена привязка параметров;
- Улучшена параллельная очистка кэша файлов;
- Улучшена безопасность обновлений методов
inc/dec/exp
;
- Добавлены настройки консольного приложения.## 2018-1-31 V5.0.15
В этом выпуске были внесены исправления и улучшения.
- Улучшен класс
View
;
- Улучшен метод
chunk
;
- Улучшена синтаксическая грамматика выражений в движке шаблонов;
- Улучшена поддержка многократного вызова самосоединений;
- Добавлен метод
selfRelation
для определения самосоединений;
- Улучшены методы
inc
и dec
кэширования файлов, не изменяющие срок действия кэша;
- Улучшена поддержка мягкого удаления, позволяющая отключить свойство
deleteTime
;
- Улучшен метод
union
запросов;
- Улучшена кэширование запросов;
- Оптимизировано создание пустых директорий при кэшировании файлов;
- Улучшена параллельная запись в журнал;
- Исправлено соединение
MorphTo
;
- Улучшен метод
join
для самосоединений;
- Улучшен метод парсинга
case
-тегов;
- Улучшен класс
Url
для поддержки конфигурации url_convert
.
2018-1-1 V5.0.14
В этом выпуске были улучшены поддержка составных первичных ключей, совместимость с PHP7 и исправлены некоторые проблемы с базой данных. Основные обновления:* Улучшена уникальная проверка в классе Validate
- В класс Validate добавлен метод checkRule для статической проверки нескольких правил
- Улучшена функция сохранения для многоместных связей
- Улучшен объект pivot для многоместных связей
- Исправлено задержанное сохранение в методе setDec
- В методы max и min добавлен второй параметр для установки принудительного преобразования в число
- Улучшен класс View
- Улучшена связь join с самим собой
- Улучшены запросы union
- Улучшен класс Url
- Улучшена регистрация одноимённых маршрутов для разных запросов
- Улучшена функция parseData класса Builder для определения пустых массивов
- Улучшена замена шаблонов
- Изменён метод hasWhere класса BelongsTo
- Улучшены правила компиляции кэша шаблонов с добавлением метки для шаблонов разметки
- Улучшен метод insertAll
- Улучшен метод chunk для поддержки составных первичных ключей
- Улучшен класс Error для решения совместимости
- Улучшен метод save класса model для поддержки составных первичных ключей с автоинкрементом
- Улучшен метод save для поддержки составных первичных ключей
- Улучшен метод insertAll для MySQL
- Улучшена поддержка Redis для множества баз данных с долгоживущими соединениями## 2017-12-12 V5.0.13
V5.0.13
в основном включает улучшения для моделей и логирования.
[База данных и модели]
- Улучшен метод
save
класса Model
для поддержки Oracle
- Улучшено создание экземпляров промежуточных моделей
- Улучшен класс
Pivot
- Метод
saveAll
модели теперь поддерживает использование метода isUpdate
- В класс модели добавлен метод
force
для установки принудительного обновления всех данных
- Поддержка автоматического удаления для одиночно-многоместных связей
- Улучшена проверка данных в методе
hasWhere
- Улучшена поддержка полей в методе
with
для одиночно-многоместных связей
- Метод
saveAll
модели теперь поддерживает возврат набора данных с чтением свойства resultSetType
- Улучшено определение устаревших полей
- Метод
hasWhere
модели теперь поддерживает параметр fields
- Улучшена система переподключения при разрыве соединения
- Исправлены методы
inc
и dec
класса Query
для решения проблем с ключевыми словами MySQL
- Исправлены ошибки в объекте набора данных
[Другое]* Добавлено положение hook app_dispatch
- Параметр httponly класса cookie по умолчанию изменён на false
- В класс File добавлен параметр single для конфигурации записи одного файла в лог
- Поддержка установки размера для одного файла лога
- Улучшено логирование IP-адреса
- В Redis кэш-драйвер добавлено использование serialize для сериализации вместо JSON
- Улучшено ловление исключений
- Улучшена проверка загружаемых файлов
- Исправлен Redis драйвер
- Улучшен метод clear класса File для кэша
- Улучшено форматирование кода
- Улучшено решение совместимости с PHP 7.2
- В режиме отладки не загружаются кэшированные файлы полей
- default_filter теперь поддерживает конфигурацию в модуле## 2017-11-06 V5.0.12
5.0.12 является исправительной версией, включающей исправления и улучшения с момента выпуска предыдущей версии.
- Поддержка нескольких языков для классов загрузки и валидации;
- Добавление поддержки исключения и устаревших полей в модели;
- Улучшение метода insertAll для разбиения на части;
- Улучшение поддержки параметров для типов перечислений;
- Исправление проблем, сообщенных сообществом;
[База данных и модели]
- Улучшение метода getRealSql класса Connection;
- Улучшение метода append для поддержки привязки bind для однозначных связей;
- Улучшение метода whereTime;
- Улучшение метода destroy класса model;
- Исправление softdelete;
- Исправление метода chunk для поддержки полей времени;
- Добавление метода push классу Collection;
- Улучшение метода alias;
- Исправление обработки метода append для класса модели;
- Улучшение метода appendRelationAttr;
- Улучшение связи HasManyThrough;
- Улучшение связи MorphTo;
- Добавление устаревшего поля disuse в модели;
- Добавление метода except для исключения полей;
- Исправление метода has;
- Улучшение поддержки типов параметров для перечислений;
- Улучшение метода insertAll для разбиения на части;
[Другое]* Улучшение класса Loader для поддержки нескольких уровней методами controller и validate;
- Поддержка нескольких языков для сообщений валидации;
- Поддержка нескольких языков для сообщений ошибок класса File;
- Обработка исключений при рендеринге шаблонов;
- Исправление контроллера rest;
- Улучшение драйвера trace;
- Улучшение метода remember класса Cache;
- Улучшение метода urlencode для параметров URL;
- Улучшение класса Url;
- Улучшение параметра конфигурации exception_handle для поддержки замыканий;
- Проверка наличия RUNTIME_PATH перед выполнением команды кэширования маршрутов;
- Улучшение поведения метода dec класса CacheDriver при отсутствии значений;
- Оптимизация отображения для мобильных устройств;
- Улучшение поддержки плагина JSON-Handle;
- Улучшение метода get класса redis;
- Улучшение метода host класса Request;## 2017-09-08 V5.0.11
Версия 5.0.11 является безопасной и исправляющей версией, которая включает исправления и улучшения с момента последнего выпуска. Она содержит несколько улучшений безопасности, включая:
- Улучшение кэширующих драйверов;
- Улучшение запросов к базе данных;
- Улучшение класса генерации URL;
- Поддержка указания времени истечения для кэширования;
[База данных и модели]
- Улучшение класса драйвера базы данных;
- Улучшение метода group для разрешения конфликтов ключевых слов полей;
- Исправление возврата null для агрегатных запросов;
- Улучшение метода forceReconnect класса Db;
- Улучшение привязки атрибутов для связей;
- Исправление разрыва соединения и повторного подключения для транзакций;
- Исправление условных запросов для объектов;
- Добавление метода clear классу Db;
- Улучшение метода null для условий запроса массивов;
- Улучшение метода chunk класса Query для поддержки настройки сортировки;
- Улучшение метода has для связей HasOne и HasMany;
- Улучшение удаления связей для softdelete;
- Улучшение метода для повторного запроса одного поля;
[Другое]* Поддержка задания времени истечения кэша (DateTime);
- Улучшение поддержки портов URL;
- Улучшение сообщений об ошибке RouteNotFound;
- Улучшение глобального соответствия полного маршрута для группировок маршрутов;
- Исправление проблем с сообщениями об ошибках для некоторых правил валидации;
- Поддержка вывода XML-ответов для наборов данных и моделей;
- Улучшение тегов тернарных операций в шаблонах;
- Улучшение сообщений об ошибках для отсутствующих контроллеров;
- Поддержка получения переменной route в функции-помощнике input;
- Поддержка чтения дополнительных параметров конфигурации из конфигурационных файлов;
- Улучшение класса пагинации;
- Исправление проблемы повторного использования пространства имен Trait;
- Исправление метода env класса Request;
- Приоритетное использование настроек нескольких языков из куки;
- Фильтрация недействительных меток кэша при получении меток кэша;
- Исправление ошибки в методе массового добавления маршрутов;
- Поддержка использования замыканий для определения параметра render в конфигурации exception_handle;
- Поддержка настройки меток кэша для кэширования запросов;
- Добавление механизма блокировки для метода remember класса кэширования;
- Улучшение поддержки загрузки SWF в классе загрузки;
- Улучшение метода prefix класса Session;## 2017-07-04 V5.0.10
5.0.10 — это исправленная версия, включающая безопасное обновление, рекомендованное для обновления. Основные изменения включают:
- Множество улучшений для баз данных и моделей;
- Добавление новых поведений слушателей;
- Поддержка настройки ответа для маршрутов;
- Улучшение защиты чувствительной информации в режиме отладки;
[Базы данных и модели]* Исправление ошибки в запросе DELETE при соединении с другими таблицами;
- Исправление удаления одного к многим;
- Поддержка replace в методе insertall;
- Исправление получения промежуточной таблицы по умолчанию для многим к многим;
- Улучшение обновления поля update_time после обновления модели;
- Добавление метода removeRelation в класс модели;
- Добавление методов setInc и setDec в класс модели;
- Добавление метода autoWriteTimestamp для динамического управления временными метками;
- Улучшение обработки отключения соединения в драйверах;
- Улучшение обновления данных для многим к многим;
- Улучшение запросов BelongsToMany;
- Исправление методов value и column класса Query;
- Улучшение удаления дубликатов в запросах in;
- Исправление передачи параметров в методах scope класса модели;
- Перенос проверки before_update в методе save модели;
- Поддержка третьего параметра для методов модификаторов и получателей данных;
- По умолчанию отключена отладочная модель;
- Исправлена ошибка загрузки временных файлов в дополнительном каталоге extra;
- Добавлен слушатель поведения завершения записи лога
log_write_done
;
- Улучшено определение каталога для генерации общих файлов в классе Build;
- Добавлен слушатель поведения
response_send
;
- Добавлен параметр response в маршрутизации для привязки поведения обработки ответа;
- Улучшено передача параметров в метод redirect;
- Улучшено чтение булевых значений переменных окружения.* Улучшена передача домена в класс Url
- Исправлено создание файлов через командную строку
- Улучшено создание URL через командную строку
- Добавлен параметр
app_host
для установки базового URL-адреса по умолчанию
- Улучшено определение метода
isSsl
в классе Request для поддержки CDN
- Добавлен параметр конфигурации
record_trace
для записи информации trace в логи
2017-05-20 V5.0.95.0.9 — это исправительный выпуск, рекомендуется обновление. Основные изменения включают:
[База данных и модели]
- Исправлено автоматическое определение связей
- Исправлено определение изменения данных модели для пустых значений
- Исправлено возвращаемое значение метода
useSoftDelete
класса Query
- Исправлено определение вложенных однозначных связей
- Исправлен баг кэширования при использовании ручного привязывания параметров
- Улучшено определение класса базы данных для несущихся запросов
- Улучшено определение переподключения базы данных
- Улучшено определение метода
appendRelationAttr
модели
- Улучшено определение метода
destroy
класса модели при передаче пустого массива
- Улучшено отображение связанных данных в однозначных связях
- Улучшено определение метода
save
модели для поддержки метода allowField
- Улучшено определение метода
toarray
класса пагинации с добавлением общего количества страниц
- Добавлена поддержка вложенных подзапросов в сравнительных операциях
- Функция помощника
db
по умолчанию больше не требует повторного подключения
- Улучшено определение полей для запроса
belongsToMany
- Класс пагинации добавлен метод
each
[Другое]* Исправлено определение регистра в группировке маршрутов
- Исправлено создание разделения логов в командной строке
- Исправлено кодирование параметров маршрутов при генерации URL
- Улучшено определение фильтрации класса
Request
для поддержки регулярных выражений
- Улучшено определение класса
Response
для поддержки ручного задания contentType
- Исправлено определение ошибки в шаблоне исключения для неопределённых функций помощников## 2017-04-28 V5.0.8
Основные изменения
- Улучшено определение связанных моделей
- Улучшено определение записи логов
- Добавлена поддержка полиморфных однозначных связей
- Исправлены некоторые баги, сообщенные сообществом
[Запросы и маршруты]
- Исправлено определение метода
cookie
класса Request
для поддержки префиксов
- Улучшено определение идентификатора кэширования глобальных запросов
- Улучшено определение метода
param
класса Request
- Исправлено определение маршрута с псевдонимом### [Модели и база данных]* Улучшение проверки обновления данных модели
- Улучшение метода
column
класса Query
- Улучшение проблемы множественного создания условий мягкого удаления при использовании замыканий
- Добавление метода синхронизации данных для связи
belongsToMany
- Поддержка статического вызова диапазонов запросов
- Добавление поддержки полиморфной связи один-к-одному (MorphOne)
- Улучшение связи
BelongsTo
- Улучшение поддержки добавления и удаления связанных данных для полиморфных связей
- Улучшение связи многие-ко-многим с поддержкой настройки модели промежуточной таблицы без использования полного имени таблицы
- Улучшение преобразования типов для чисел с плавающей запятой для избежания появления запятых
- Изменение возвращаемого значения метода
save
для связанных моделей
- Первый параметр метода
get
класса модели должен быть обязательным, если передан null
, то возвращается null
- Улучшение метода
save
модели для случаев, когда данные не обновляются
- Добавление метода
useSoftDelete
класса Query
для отдельного настройки условий мягкого удаления
- Перегрузка методов
selectOrFail
, findOrFail
для класса BelongsToMany
- Перегрузка методов
select
, find
и paginate
для класса BelongsToMany
- Добавление свойства
parent
для модели и объекта Pivot
- Поддержка настройки модели промежуточной таблицы для связи многие-ко-многим
- Улучшение проблемы ключевых слов в методе
view
класса Query
* Улучшение транзакций при работе с основной и дополнительной базами данных для постоянной работы с основной базой данных### [ Другое ]* Улучшение метода get
класса Cookie для поддержки получения всех значений
- Добавление параметра
config
в команду schema
для передачи конфигурации подключения к базе данных
- Улучшение метода
store
класса кэша для поддержки текущего действия
- Исправление поддержки передачи параметра
option
в вспомогательные функции кэша
- Исправление проблемы с генерацией карты классов при отсутствии директории
EXTEND_PATH
при выполнении команды optimize:autoload
- Поддержка генерации кэша карты классов для пользовательских корневых пространств имён
- Поддержка сравнения полей для проверки значений других полей
- Исправление ошибки при установке текущего пространства имен сессии с помощью
Session::prefix('xxx');
- Улучшение команды
optimize: schema
- Исправление проблемы с удалением файлов из многоуровневых директорий командой
clear
- Улучшение чтения по умолчанию языка и автоматического определения
- Улучшение формата записи логов и перенос логов в реальном времени в командной строке
- Исправление ошибки при использовании по умолчанию значений шаблонов в некоторых случаях
- Улучшение поддержки полного домена при генерации URL
- Улучшение команды
Clear
для предотвращения удаления файла .gitignore
- Исправление метода
inc
в драйвере кэширования Memcache
[ Изменения ]* Если пространство имён приложения было настроено пользователем, параметр конфигурации app_namespace
следует заменить константой APP_NAMESPACE
в файле входа.
- Для много-ко-многим связей промежуточные таблицы не требуют добавления префикса таблиц.
- Методы области модели (scope) могут использовать только методы запроса к базе данных, а не методы модели.
2017-02-24 V5.0.7
[Основные изменения]
Основные изменения в этом обновлении направлены на исправление ошибок и улучшение функциональности:
- Улучшение глобального кэширования запросов для поддержки поддоменов.
- Улучшение механизма автоматического обновления данных в кэше.
- Поддержка указания имени свойства для статистики в связях.
- Поддержка вложенных связей модели в виде массива.
- Поддержка методов
has
и hasWhere
для связи HasOne
.
- Разрешение установки параметров
ext
и deny_ext
в маршрутах как пустых значений (что означает запрет на использование любых расширений или обязательное использование расширений).
[Исправления]* Исправление ошибки синтаксиса SQL при пустых условиях IN / NOT IN
- Исправление метода
toArray
класса пагинации для поддержки простого режима
- Исправление метода
delete
класса модели для поддержки нескольких первичных ключей
- Исправление поддержки мягкого удаления для MongoDB
- Исправление одного возможного сценария ошибки в классе
Connection
- Улучшение механизма кэширования метода
find
класса запроса
- Исправление связи
BelongsTo
- Исправление предварительной загрузки одного-ко-одному соединения через JOIN
- Исправление одного возможного сценария предупреждения в методе
insert
класса запроса
- Исправление конфликта использования метода
use
в коллекции класса модели
- Исправление метода
hasWhere
класса модели
- Исправление поддержки параметра
ext
при генерации URL
- Метод
clear
кэширования файлов будет удалять пустые директории
- Исправление одного возможного сценария ошибки в методе
parseUrlPath
класса маршрута
Настройки* По умолчанию отключена безопасная настройка параметра secure
для сессий; этот параметр можно включить только при использовании HTTPS
2017-02-07 V5.0.6
Основные изменения:
В этом обновлении были внесены исправления ошибок и улучшения (без разрыва совместимости):
- Добавлена поддержка автоматического восстановления соединения с базой данных;
- Улучшена передача параметров обратного вызова для событий запросов;
- Улучшена автоматическая кэшировка данных;
- Добавлена настройка автоматического форматирования временных полей;
- Обновлены расширения
MongoDb
и Oracle
до последней версии ядра;
[База данных и модели]* Исправлен метод has
для связи hasMany
;
-
Удалены некоторые конфигурации базы данных для избежания конфликтов при использовании расширений;
-
Улучшена возвратная информация метода attach
для связи many-to-many
;
-
Добавлена поддержка автоматического восстановления соединения с базой данных MySQL и переключатель;
-
Улучшена кэшировка данных методом find
класса Query
;
-
Улучшена передача параметров обратного вызова для событий запросов класса Query
;
-
Улучшена автоматическая кэшировка обновлений класса Query
;
-
Добавлен метод readonly
класса Model
;
-
Улучшены методы has
и hasWhere
класса Model
;
-
Улучшены методы get
и all
класса модели, второй параметр указывает на кэширование данных;
-
Исправлено исключение SQL при пустом условии запроса в замыкании;
-
Улучшен метод setBuilder
класса Query
для избежания ошибок при использовании пользовательских подключений;
-
Удален устаревший атрибут resultSetType
класса Connection
;
-
Улучшен метод close
класса Connection
;
-
Исправлен метод bindParam
класса Connection
для поддержки хранимых процедур;
-
Настройка параметра datetime_format
базы данных установлена в false
для отключения автоматического форматирования временных полей;
-
Улучшена совместимость с удалением данных с использованием Mongodb
.### [Другое]
-
Улучшен метод генерации root
класса Url
, если root
равен /
;
-
Добавлен параметр with
в функции помощника redirect
и методе redirect
класса контроллера;
-
Добавлены правила исключения для глобального кэширования запросов, добавлен параметр конфигурации request_cache_except
;
-
Метод store
класса Cache
теперь может принимать пустое значение для получения текущего драйвера кэширования;
-
Улучшена проверка правил IP в классе Validate
;
2017-01-23 V5.0.5
Основные изменения:
В этом обновлении были улучшены слои доступа к данным и связывание моделей:
- Добавлены быстрые методы для запросов и настроек;
- Добавлена функция статистики для связей;
- Добавлена функция отложенного предварительного загрузки для связей;
- Добавлена функция автоматического внесения и удаления для связей один-к-одному;
- Улучшена работа с хранимыми процедурами;
- Улучшена работа с выводом связанных данных;
- Оптимизирована производительность запросов;
- Автоматическое форматирование временных полей моделей;### [Запросы и маршруты]
- Улучшение проверки суффиксов в определении маршрутов
- Метод
rest
класса Route
поддерживает переопределение определений
- Улучшение методов
put
и post
класса Request
для приема параметров в формате json
- Класс
Request
дополнен методом contentType
- Улучшение метода
setRule
класса Route
- Улучшение метода
create
класса Request
- Улучшение методов маршрутизации к контроллерам для влияния на использование по умолчанию шаблонов отображения
- Исправление ошибки метода
build
класса Url
при определении псевдонимов маршрутов
[База данных и модели]
- Добавлена функция ассоциативной статистики
- Добавлена функция автоматического внесения данных в однородные ассоциации
- Исправлен метод
delete
в модели агрегации
- Улучшен метод
useGlobalScope
класса Model
- Поддержка классовых дат в классе Model
- Добавлены методы
data
, inc
, dec
, exp
в классе Query для быстрого установления данных; параметры методов insert
и update
могут быть пустыми; чтение данных из data
- Улучшена производительность запросов в классе Connection
- Исправлен метод
parseOrder
класса Builder
- Исправлен метод
attach
класса BelongsToMany
- Улучшен метод
attach
класса BelongsToMany; поддержка массового внесения данных
- Улучшен метод
saveall
класса BelongsToMany; добавлен третий параметр для указания дополнительных параметров
- Поддержка множественного вызова метода
order
класса Query * Улучшен метод count
для поддержки групповых запросов
- Добавлена проверка автоматического внесения данных со временем
- Улучшен метод
writeTransform
класса Model
- Улучшена запись и чтение временных полей в классе Model
- Проверка наличия метода
__toString
при записи объектных данных
- Улучшен метод
getFields
класса Mysql
- Улучшена автоматическая обработка временных полей
- Поддержка массивов в условии
like
- Автоматическая обработка временных полей с использованием форматов времени
- Улучшение запросов с повторным использованием одного поля с помощью
Or
- Исправление объединения условий
null
- Улучшение метода
paginate
класса Query; первый параметр может быть массивом
- Улучшение возврата объектов набора данных из метода
select
класса Query; отмена поддержки возврата объектов набора данных из нативных запросов
- Добавлены быстрые методы запроса
whereNull
, whereIn
и другие
- Улучшение метода
fetchPdo
- Улучшение поддержки вызова хранимых процедур; улучшение механизма вызова
getRealSql
; поддержка параметров привязки для полей с дефисами
- Добавлен параметр конфигурации
result_type
для установки типа возвращаемых данных; изменение названий параметров методов
- Улучшение метода
whereTime
класса Query; поддержка большего количества выражений времени и дат (по умолчанию условие запроса — больше указанного времени)
- Отмена параметров по умолчанию для методов
min
, max
, sum
, avg
* Добавлен метод getPdo
класса Query для возврата объекта PDOStatement
- Улучшение запросов с использованием выражений даты
today
- Улучшение получения ассоциативных свойств
- Улучшение повторного выполнения запросов в определении ассоциаций
- Улучшение поддержки привязки параметров для китайских полей
- Улучшение метода
insertall
класса Builder; поддержка null и объектных данных
- Улучшение типов привязки параметров; поддержка автоматической привязки типа
bit
- Метод
model
класса Connection изменен на getQuery
- Улучшение метода
__call
класса Connection
- Исправление модели агрегации
- Однородные ассоциации предварительной загрузки по умолчанию изменены на метод
IN
- Добавлен помощник функций
collection
для преобразования наборов данных
- Добавлен помощный функционал
load_relation
для поздней предзагрузки массивов
- Улучшено поведение метода
has
класса Model, второй параметр теперь поддерживает массивы и замыкания, что позволяет избежать использования hasWhere
- Метод
relation
теперь поддерживает вложенные запросы ассоциаций
- Добавлен класс
think\model\Collection
как объект-коллекция для работы с наборами данных моделей
- Удален параметр
alias
из определения ассоциаций (исключение для morphTo
)
- Метод
delete
класса Model теперь поддерживает удаление без наличия первичного ключа
- Метод
allowField
класса Model теперь поддерживает строки, разделенные запятыми* Улучшено автоматическое привязывание параметров при записи данных, исправлены проблемы с названиями параметров
- По умолчанию, имена свойств для предзагрузки ассоциаций теперь используются в нижнем регистре с подчеркиванием
- Методы
with
и relation
класса Query теперь поддерживают повторное вызов
- Класс Collection теперь поддерживает методы
hidden
, visible
и append
- Исправлена проблема с методом принудительного удаления для мягкого удаления
[Другое]* Правило проверки unique
теперь поддерживает указание полного класса модели, и по умолчанию будет проверять наличие модели, если модель не существует, будет проверять наличие таблицы данных.
- Улучшены методы
model
, controller
и validate
класса Loader
, теперь поддерживаются прямые передачи имен классов для их инстанцирования.
- Класс
Session
добавил безопасные опции httponly
и secure
.
- Добавлена возможность использования пользовательского драйвера
Output
для поддержки вызова других командных строковых команд в режиме командной строки.
- Улучшена проблема загрязнения параметров метода
action
класса Loader
.
- Валидация метода
confirm
класса Validate
изменена на проверку равенства.
- Улучшена обработка ошибок в классе
Validate
.
- Исправлена валидация правил для булевых значений в классе
Validate
.
- Улучшена поддержка префиксов в вспомогательных функциях
cookie
.
- По умолчанию включена поддержка кэширования подкаталогов для файлового кэша, чтобы избежать проблем производительности из-за большого количества файлов.### [Изменения]
- Метод
model
класса Connection
изменен на getQuery
.
- Нативные запросы больше не поддерживают возврат объектов набора данных.
- Тип возврата для запросов пагинации изменен на
think\Paginator
(синтаксис остается неизменным).
- Поле модели с датой и временем теперь автоматически форматируется при выводе, дополнительная обработка не требуется.
- Класс
Session
добавил параметры secure
и httponly
, по умолчанию оба параметра установлены в true
.## 2016-12-20 V5.0.4
Основные изменения:
- Переработаны ассоциативные модели, добавлена поддержка полиморфного отношения один ко многим.
- Поддержка одного поля для нескольких вызовов с разными условиями запроса.
- Добавлена поддержка событий CRUD для базы данных.
- Поддержка передачи дополнительных параметров в методы маршрутизации к классам и контроллерам.
- Поддержка глобального присваивания переменных шаблонов.
- Поддержка независимого настройки объекта набора данных для модели.
- Улучшена работа логирования для командной строки и отладки.
- Улучшена работа метода поведения класса
Hook
.### [Запросы и маршрутизация]
- Поддержка кэширования запросов для отдельных модулей.
- Метод
post
класса Request
теперь поддерживает получение данных запроса в формате json
.
- Поддержка передачи дополнительных параметров в методы маршрутизации к классам и контроллерам для использования в качестве параметров методов.
- Улучшена нормализация каталогов для автоматического поиска контроллеров.
- Улучшена работа кэширования запросов.
- Улучшена работа автоматического привязывания параметров.
- Исправлена настройка кэширования запросов маршрутизации.
- Улучшен метод
name
класса Route
.
[Базы данных и модели]
- Добавлены события запросов к базе данных (CRUD)
- Улучшена обработка полей при множественном обновлении нескольких таблиц
- Улучшена функция
useGlobalScope
класса Model
- Исправлены проблемы с подзапросами, используемыми в качестве имен таблиц
- В класс Model добавлен атрибут
resultSetType
для указания типа объекта данных (по умолчанию возвращает массив)
- В класс Model добавлен метод
toCollection
(автоматически вызывается)
- Изменена структура связанных моделей
- Улучшена поддержка параметров метода
with
для загрузки связанных моделей (поддержка нижнего регистра и подчеркивания)
- Исправлены ошибки при работе с многим ко многим связями
- Улучшена обработка запросов для многим ко многим связей
- Поддержка полиморфных связей один ко многим для связанных моделей* Поддержка привязки свойств связанных объектов к текущей модели при загрузке связей
- Поддержка добавления свойств связанных объектов к данным текущей модели
- Поддержка загрузки связей один ко одному с использованием JOIN и IN (по умолчанию используется JOIN)
- Улучшена обработка запросов для многим ко многим связей
- Улучшены правила сравнения изменений при обновлении модели
- Поддержка нескольких условий по одному полю в запросе
- Улучшена запись SQL-запросов в лог
- Исправлены проблемы с переопределением псевдонимов при использовании
join
для самой таблицы
- Объединены атрибут
connection
класса Model и настройки базы данных по умолчанию
- Улучшена поддержка автоматического привязывания параметров для условий
in
и between
- Улучшена поддержка сортировки данных и связанных полей в классе Query
- Добавлены быстрые методы событий для модели
- Улучшена поддержка кэширования метода
getTableInfo
класса Query
- Метод
saveAll
класса Model поддерживает вызов метода allowField
для фильтрации полей
- Исправлены ошибки метода
whereTime
при работе с связанными запросами
- Улучшены агрегирующие запросы в классе Query
- Метод
table
поддерживает строковые подзапросы
- Исправлены ошибки методов
count
и avg
при использовании fetchsql
для получения SQL-запросов
[Другое]
- Улучшение логирования в командной строке
- Упрощение логирования в режиме развертывания* Добавление типа логов debug для записи только в режиме отладки
- Улучшение метода
parseTemplateFile
класса Template
- Улучшение метода
getRuleMsg
класса Validate
- Метод
error
контроллера по умолчанию возвращает пустую строку при AJAX-запросах
- В архитектурных методах класса Validate добавлен параметр
field
для установки описания проверяемого поля
- Улучшение метода
invokeMethod
класса App для поддержки внедрения зависимостей в архитектурных функциях
- Добавление метода
restore
класса RedirectResponse для возврата значений
- Класс View добавил статический метод
share
для статического присвоения переменных шаблонов
- Класс Validate добавил метод
hasScene
для проверки наличия конфигурации проверки для определенного сценария
- Исправление возврата значений метода
destroy
для драйверов redis и session
- Удаление суффиксов методов действий из передаваемых параметров
- Добавление типовых подсказок при вызове request и view в контроллерах
- Улучшение помощника функции
input
для поддержки получения многомерных данных
- Класс Cache добавил методы
pull
и remember
- Улучшение правила проверки
confirm
класса Validate для поддержки автоматического распознавания правил
- Улучшение определения ошибок проверки класса Validate
- Добавление замены правил для пользовательских ошибок проверки класса Validate
- Класс Cookie добавил метод
forever
для постоянного сохранения* Поддержка чтения шаблонов из корневого каталога представлений при рендеринге шаблонов
- Улучшение метода
exec
класса Hook### [Изменения]
- Класс Db запросов больше не поддерживает установку объекта пользовательского набора данных
- Удаление метода
fetchClass
класса Query
- Метод
error
контроллера по умолчанию возвращает пустую строку при AJAX-запросах
- Определение методов связей больше не поддерживает использование нижнего подчеркивания, необходимо использовать camelCase
- Методы классов поведений должны использовать camelCase
2016-11-11 V5.0.3
Основные изменения:
- Улучшение кэширования запросов;
- Улучшение маршрутизации;
- Улучшение баз данных и моделей;
- Поддержка захвата исключений с использованием рефлексии;
- Улучшение класса File;
- Исправление некоторых ошибок, сообщенных сообществом;### [Запросы и маршрутизация]
- При автоматической регистрации маршрутов записывается используемое ресурсное имя;
- Улучшение функциональности и определение кэширования запросов, поддержка глобального автоматического кэширования
- Исправление проблемы с регистром при автоматическом поиске контроллеров
- Исправление автоматического поиска классов при привязке маршрутов к пространству имен
- Улучшение метода
parseRule
класса Route для замены переменных маршрутов без автоматического удаления маршрутов
- Улучшение автоматического поиска контроллеров
- Класс Route добавил методы
setOption
и getOption
для записи параметров текущего выполнения маршрута
- Оптимизация метода группировки маршрутов
- Улучшение генерации URL для группированных маршрутов
[База данных и модели]* Поддержка метода определения однозначной связи field
методом
- Поддержка настройки агрегирующей модели свойством
field
- Улучшение метода
alias
класса Query
- Улучшение параметра
table
методов join
и view
класса Query
- Улучшение метода
where
класса Query
- Улучшение метода
paginate
класса Query с поддержкой метода order
- Улучшение методов
min
и max
класса Query с поддержкой типов даты
- Исправление метода мягкого удаления
withTrashed
- Оптимизация метода
getRealSql
класса Connection для генерации SQL### [ Другое ]
- Добавлены параметры конфигурации
request_cache
и request_cache_expire
для настройки глобального кэширования запросов
- Исправлено фильтрование массивов в функции-помощнике
input
- Добавлена поддержка очистки кэша в функции-помощнике
cache
- Улучшена методом
load
класса Config обязательным преобразованием имени первого уровня конфигурации в нижний регистр
- Исправлено повторное создание URL
- Исправлено распознавание загруженных файлов классом
File
в определённых окружениях
- Улучшена вызов пустых методов класса
App
- Генерация URL-адресов для развертывания домена не зависит от параметра конфигурации
url_domain_deploy
- Исправлено развертывание домена классом
Url
- Добавлена поддержка централизованного хранения файлов представлений вне модульных директорий
- Добавлена поддержка метода
remember
в функции-помощнике cache
- Добавлена поддержка передачи параметра
filter
со значением null
в методе input
класса Request
или в функции-помощнике input
, что означает отсутствие фильтрации## 24 октября 2016 V5.0.2
Основные изменения:
- Улучшение базы данных и моделей
- Улучшение функционала маршрутизации
- Добавлена поддержка конфигурации в формате
yaml
- Улучшение внедрения зависимостей
- Улучшение класса
Session
- Улучшение класса
Cookie
- Улучшение класса
Validate
- Поддержка перехвата исключений для отражательных классов
- Исправление ошибок, сообщённых сообществом### [ Запросы и маршруты ]
- Автоматическое вызов метода
invoke
для классов, определённых с помощью внедрения зависимостей
- Добавлена поддержка пользовательских заголовков в методе
header
класса Request
- Запрещено прямое создание и использование экземпляров класса
Request
- Улучшение метода
ip
класса Request
- Поддержка определения маршрутов с использованием замыканий
- Добавлены параметры
ajax
и pjax
для маршрутов
- Добавлена поддержка операций разрешения и исключения для маршрутов с псевдонимами
- Улучшение генерации URL-адресов после привязки маршрутов к доменам
- Улучшение поддержки маршрутов, ведущих к классам
- Поддержка параметра конфигурации
url_param_type
для маршрутов
- Поддержка маршрутов с псевдонимами
- Поддержка более широкого набора схем в правилах переадресации класса
Route
- Поддержка определения отдельных методов запросов для маршрутов с псевдонимами
- Улучшение генерации URL-адресов для группированных маршрутов
- Поддержка определения разделителей для составных переменных в правилах маршрутов
- Улучшение получения объединённых параметров маршрутов
- Поддержка отдельной настройки разделителей URL для маршрутов, параметр
param_depr
- Поддержка автоматического поиска контроллеров с возможностью настройки уровня доступа к контроллерам
- Улучшение идентификации маршрутов без учёта регистра символов* Улучшение проверки определения маршрутов для адресов### [ База данных и модели ]
- Улучшение метода join класса Query
- Улучшение привязки параметров метода пагинации класса Query
- Исправление метода мягкого удаления
- Исправление ошибки в методе parseOrder класса Query
- Исправление метода parseOrder драйвера sqlsrv
- Исправление методов setInc и setDec класса Query
- Улучшение метода save класса Model для обработки неавтонумеруемых первичных ключей
- Если целочисленное поле пустое, записать по умолчанию значение 0
- Улучшение методов has и hasWhere класса Model
- Улучшение проверки кэширования метода value класса Query
- Улучшение метода join класса Query для поддержки подзапросов
- Улучшение использования методов table и alias класса Query
- Поддержка self-join для метода hasOne
- Улучшение метода parseKey класса Builder
- Улучшение парсинга методов join/alias/table класса Builder
- Улучшение глобального диапазона запросов
- Улучшение возврата методов агрегатных запросов класса Query
- Улучшение чтения связанных свойств
- Улучшение обработки случаев, когда агрегатный ключ модели и связанный ключ совпадают
- Улучшение определения свойства name модели при включении параметра
class_suffix
### [ Другое ]
- Класс Cache добавлен метод
remember
, который автоматически записывает данные при отсутствии кэша
- Класс Session добавлен метод
flash
, который устанавливает значение для следующего запроса
- Класс Session добавлен метод
flush
, который очищает значение для текущего запроса
- Класс Session добавлен метод
push
, который обновляет массив данных
- Добавлена поддержка конфигурации в формате YAML
- Улучшение метода рефлексии класса App для захвата исключений
- Исправление операции очистки метода сессии
- Улучшение метода
image
класса валидации
- Улучшение метода
activeUrl
класса валидации
- Улучшение использования пользовательских правил валидации
- Улучшение получения имени контроллера после автоматического поиска контроллеров
- Исправление загрузки библиотек из директории extend методом import
- Исправление исключения при выполнении
json_encode
: "Failed calling XXX::jsonSerialize()"
- Улучшение проблемы синглтона методов model и validate класса Loader
- Улучшение записи лога выполнения метода
- Улучшение парсинга переменных Think в движке шаблонов
- Улучшение метода
load
класса Lang
- Поддержка чтения сообщений об ошибках валидации на нескольких языках
- Улучшение константы ROOT_PATH
- Улучшение загрузки пакетов языка
- Улучшение получения переменных сессии и куки в шаблонах, автоматическое определение префикса* Добавлен метод
handler
для всех драйверов кэширования для получения обработчика операций (для некоторых типов кэширования может быть null).
- Класс
File
добавлен метод __call
для совместимости с методами md5
и sha1
версии 5.0.
- Улучшение метода
clear
драйвера кэширования файлов.
- Класс
Lang
добавлен метод setLangCookieExpire
для установки времени истечения куки для языковых пакетов.
- Добавлен параметр конфигурации
route_complete_match
.
[Изменения]
Следующие свойства и методы моделей были изменены с статических (static) на динамические:
- Свойство
relationModel
агрегирующего модуля.
- Свойство
useGlobalScope
класса Model
.
- Метод
base
глобального диапазона запросов был изменен на динамический метод.
- Свойство
deleteTime
для мягкого удаления.## 2016-9-28 V5.0.1
Основные изменения:
[Запросы и маршруты]
- Улучшение методов
success
и error
класса Controller для распознавания адресов перенаправления с поддержкой большего количества схем
- Поддержка автоматической инжекции для методов операций и архитектурных методов
- Добавление метода
getInput
класса Request для получения значений из php://input
- Поддержка инжекции объекта запроса при маршрутизации к методам
- Улучшение метода маршрутизации класса Route для определения маршрутизации к классам
- Добавление метода
cache
класса Request для поддержки кэширования запросов
- При привязке к модулю маршруты все еще проверяются первыми
- Добавление параметров кэширования запросов в маршруты
- Исправление ошибки с опциональными переменными в маршрутах### [База данных]
- Исправление чтения информации о полях таблиц базы данных
pgsql
- Улучшение метода
view
класса Query
, второй параметр по умолчанию изменен на true
для получения всех полей
- Добавление параметра
query
в конфигурации базы данных для настройки имени объекта запроса
- Добавление свойства
query
в типах для настройки имени объекта запроса, необходимого для моделей
- Улучшение чтения кэшированных полей таблиц
- Улучшение генерации кэшированных полей таблиц, модели, являющиеся абстрактными классами или не наследующие класс
Model
, не генерируют кэшированные поля
- Улучшение кэширования полей таблиц моделей, виртуальные модели не генерируют кэшированные поля
- Улучшение генерации кэшированных полей таблиц, поддерживающее чтение моделей модулей
- Улучшение метода
save
агрегирующего модуля для записи первичного ключа
- Упрощение определения свойства
field
класса модели, отмена методов allowField
и setFieldType
класса Query
и связанных свойств
- Улучшение генерации кэшированных полей таблиц, поддерживающее генерацию для нескольких баз данных
- Обновление классов драйверов баз данных, улучшение метода
getTables
- Добавление команды
optimize:schema
для генерации кэшированных полей таблиц
- Исправление ошибки привязки параметров при нескольких условиях в запросе
- Метод
paginate
вторым параметром принимает число, представляющее общее количество записей* Исправление запросов к полям JSON
базы данных MySQL
- Улучшение метода
getOptions
класса Query
, возвращение null
при отсутствии параметра name
[ Модели и связи ]
- В классе модели
Field
не требуется определение типа поля
- Улучшение класса
Model
добавлением статического метода getDb
для получения объекта запроса db
- Улучшение метода
save
в агрегатных моделях
- Улучшение метода
save
в классе Relation
- Исправление проблемы метода
save
в модели с отношением многие-ко-многим
- Улучшение метода
save
в классе Model
для исправления проблемы обновления без использования первичного ключа для поиска
- При получении временных полей, если значение равно
NULL
, преобразование не выполняется
[ Другое ]* Улучшение кэширования конфигурации с поддержкой расширяемых конфигураций
- Удаление конфигурационного параметра
extra_config_list
. Расширяемые конфигурационные файлы следует размещать в директории extra
, чтобы они автоматически загружались (локация файлов базы данных не изменяется)
- Функции помощника кэширования поддерживают проверку действительности кэша
- Исправление метода
config
в классе-драйвере шаблонного движка
- Исправление ошибки, возникающей при вызове
db()
через __call
при настройке свойства field
модели конфигурации в true
- Улучшение метода
config
в классе-драйвере шаблонного движка с поддержкой получения значений конфигурационных параметров
- Улучшение разбора URL в методе redirect
- Удаление методов
md5
и sha1
в классе File
. Замена на метод hash
, поддерживающий генерацию более широкого спектра хэш-значений
- Добавление поведенческого тега
response_end
- Улучшение загрузки по умолчанию языка
2016-09-15 V5.0
[ Запросы и маршрутизация ]* Объект Request поддерживает динамическое привязывание свойств.
- Запрет доступа к исходному URL-адресу, если он определен в маршрутизации.
- Улучшение структуры хранения маршрутизации.
- Улучшение функции группирования маршрутизации с поддержкой вложенных и виртуальных групп.
- Эффективное разрешение маршрутизации URL.
- Улучшение приоритета получения параметров методом
param
объекта Request.
- Добавление метода
name
для установки и получения идентификаторов маршрутизации.
- Добавление маршрутизации методов MISS и AUTO.
- Добавление метода
auto
в класс Route для регистрации маршрута, автоматически разрешающего URL.
- Поддержка привязки моделей к маршрутам.
- Привязка переменных маршрута к методу
param
.
- Поддержка идентификации маршрутов и автоматической идентификации.
- Добавление команды для генерации кэша маршрутизации
optimize:route
.
- Добавление метода
route
в объект Request для получения переменных маршрута.
- Передача параметра
false
в методы param
, get
, post
, put
, request
, delete
, server
, cookie
, env
объекта Request для получения исходных данных без фильтрации.
- Улучшение автоматической генерации идентификаторов маршрутов с поддержкой указания одного и того же идентификатора маршрута различными правилами маршрутизации, улучшение поддержки автоматической генерации URL.
- Улучшение инициализации свойства
filter
в классе Request.
- Улучшение методов
isAjax
и isPjax
в классе Request.* Добавление метода token
в класс Request
- Поддержка нескольких конфигурационных файлов маршрутизации с использованием параметра конфигурации
route_config_file
- Поддержка проверки HTTPS при привязке доменов
- Улучшение привязки доменов с поддержкой одновременной привязки модулей и других элементов, поддержка привязки к маршрутам, определенным в массиве, отмена привязки доменов к группам
- Добавление поддержки метода PATCH в правила маршрутизации
- Добавление параметра конфигурации
route_complete_match
для установки глобального режима полного соответствия для определения маршрутов, который может быть перекрыт параметром complete_match
в правилах маршрутизации
- Улучшение распознавания параметров с префиксами маршрутов с приоритетом перед системными параметрами псевдо-статических URL
- Добавление метода
root
в класс Url для указания текущего адреса root (без домена)
- Улучшение поддержки опциональных параметров при генерации URL
[База данных]* Автоматическое привязывание параметров для условий запроса
- Улучшение метода пагинации для поддержки привязки параметров
- Добавление параметра метки кэша в методе кэширования класса Query
- Поддержка вызова метода кэширования в методах update и delete класса Query, автоматическое удаление кэша по определенному ключу, совместимость с методом кэширования запроса
- Улучшение метода отложенного внесения данных класса Query
- Поддержка метода fetchsql в методах column и value класса Query
- Улучшение метода запроса дат
- Улучшение метода выполнения хранимых процедур exec
- Улучшение метода получения последнего вставленного идентификатора класса Connection
- Запись лога подключения к базе данных (время подключения и DSN)
- Улучшение метода выборки select класса Query для проверки результата запроса
- Добавление метода getNumRows класса Connection
- Отмена возврата значений для методов транзакций базы данных
- Улучшение метода chunk класса Query для получения первичного ключа
- Улучшение работы метода builder класса Query при использовании полного пространства имен для типов драйвера базы данных
[Модели]* Добавление функции мягкого удаления
- Улучшение связей моделей и предварительной загрузки
- Поддержка дополнительных методов консистентной работы для предварительной загрузки связей с использованием цепочек запросов
- Улучшение метода savell для поддержки обновления и валидации
- Единообразное возвращение класса Relation для определения связей
- Поддержка типа join для методов has и hasWhere класса Model
- Очистка исходных данных при массовом присвоении данных методом data класса Model
- Автоматическое обновление кэша при передаче параметра true третьим параметром метода get класса Model
- Поддержка только для чтения полей в классе Model
- Метод useGlobalScope для установки использования глобального диапазона запросов в классе Model
- Перенос метода base класса Model в статический вид для эффективного использования в нескольких местах
- Поддержка установки первичного ключа, информации о полях и типов полей в классе Model без использования автоматического определения, что повышает производительность
- Поддержка модификаторов в методе data класса Model
- Улучшение поддержки нечисловых первичных ключей в классе Relation
- Улучшение метода удаления одного к многим в классе Relation
- Исправление метода предварительной загрузки связей одного к многим в классе Relation### [ Логирование и кэширование ]
- Поддержка разделения типов логов для отдельного хранения
- Логи позволяют устанавливать уровень записи
- Добавлена функция кэширования с метками
- Класс кэширования расширен методом pull для получения и удаления
- Функции помощника кэширования добавлен параметр tag
- Упрощение информации о логах, скрытие пароля базы данных
- Добавлена логика выбора библиотек для драйверов кэширования/сессий Redis
- Параметры конфигурации драйвера memcached поддерживают параметр option
- В режиме отладки добавлено кэширование заголовков и параметров страницы в логах
- Добавлены параметры учетных данных для подключения к memcached кэшированию
- Поддержка установки сложных типов кэширования, позволяющая настроить несколько кэшей и переключаться между ними с помощью store
- Класс кэширования расширен методом tag для установки меток кэширования, метод clear поддерживает очистку данных для определенной метки кэширования
- Драйвер логов типа File поддерживает установку отдельных файлов для записи логов разных уровней
- Улучшена номенклатура имен файлов для кэширования и логов
- Класс кэширования расширен методами inc и dec для увеличения и уменьшения числовых данных
- Класс кэширования расширен методом has, метод get поддерживает значение по умолчанию
[ Другое ]* Добавлена поддержка установки параметров шаблонной引擎 для view класса
- Добавлена генерация и проверка токенов формы
- Добавлены правила проверки для китайского языка
- Добавлены правила проверки для изображений и файлов
- Добавлена поддержка метода with для объекта RedirectResponse для передачи параметров
- Улучшена автоматическая инициализация класса Session
- В класс Session добавлен метод pull для получения и удаления данных
- Добавлен класс Env для получения переменных окружения
- В класс Request добавлены изменения для методов get/post/put, параметры остаются действительными после присвоения
- Улучшена поддержка адресов перенаправления классом Jump с использованием Url::build для анализа
- Улучшен класс Hook
- Добавлена поддержка настроек режима отладки и страницы trace через переменные окружения
- Функция помощника config поддерживает использование config('? name')
- Добавлена поддержка использования константы BIND_MODULE для привязки модулей
- Автоматическая привязка модулей в файле входа
- Улучшена информация об ошибках и шаблоны вывода для класса исключения проверки, поддержка вывода ошибок для множественной проверки
- Улучшен консоль, добавлены некоторые часто используемые методы вывода
- Добавлен функционал помощника token для быстрого отображения токена на странице
- Добавлен метод halt для отладки переменных и прерывания вывода
- Улучшены правила проверки чисел классом Validate, разделены числа и целые числа* Улучшена автозагрузка для сканирования расширенных директорий
- Улучшены правила проверки логических значений классом Validate, поддержка данных формы
- Улучшен помощник cookie для проверки наличия определенного значения куки
- Улучшен помощник abort для поддержки выбрасывания исключения HttpResponseException
- Улучшен класс File для обработки ошибок загрузки
- Улучшен класс File, метод move возвращает объект с информацией загрузки, добавлен метод для получения хэша файла
- Улучшен класс File, метод move возвращает объект типа File
- Добавлены команды clear и optimize:config
- Улучшен класс File и Validate для проверки типов файлов изображений
- Методы действий контроллера поддерживают внедрение экземпляров объектов помимо Request
- Метод param(true) класса Request поддерживает получение данных с файлами
- Первый параметр функции помощника input имеет значение по умолчанию
- Класс Validate добавлен метод image для проверки изображений, улучшены правила max, min и length для различных типов данных
- Выброс исключения при неудачной кодировке данных при выводе в формате JSON
[Изменения]
- Удаление определения маршрутизации (статической маршрутизации)
- Удаление конфигурации
url_deny_suffix
, теперь используется параметр deny_ext
маршрутизации
- Возвращаемое значение метода
save
модели изменено на количество затронутых записей, удалён параметр getId
- Метод
controller
объекта Request
возвращает имя контроллера в формате CamelCase* Если метод предварительной обработки контроллера отсутствует, выбрасывается исключение.
- В класс
Loader
добавлен параметр name
в метод db
.
- Вспомогательные функции
db
добавлен третий параметр для указания идентификатора подключения.
- Драйвер
sqlsrv
по умолчанию не выполняет преобразование полей таблиц в нижний регистр.
- Удалён драйвер
sae
, теперь доступен в виде расширения.
- Драйвер
Oracle
выведен из основного пакета.
- Драйвер
Firebird
выведен из основного пакета.
- Удалён файл определения псевдонимов
alias.php
.
- При чтении параметров конфигурации отменено использование переменных окружения, теперь используется класс
Env
.
- Файл определения переменных окружения изменён на
.env
, теперь использует формат ini (поддерживает массивы).
- Изменён порядок загрузки конфигурации состояния и расширений для возможности изменения параметров расширений в конфигурации состояния.
- Удалена функциональность привязки домена к группе маршрутизации.
- Методы
success
и error
класса контроллера поддерживают передачу пустой строки в параметре url
, что не приводит к выполнению действий.
- Методы
error
, success
, result
и redirect
контроллера больше не требуют использования return
.
- Права доступа для создания директорий изменены на
0644
.
Версия 2016-7-1 RC4
[Основная архитектура]
- Добавлен класс
Request
с поддержкой автоматического внедрения.* Унифицирована автоматическая загрузка Composer
- Добавлены подклассы для расширения класса Response
- Добавлен класс File для загрузки и работы с файлами
- Отменено расширение режима SAE с понижением привилегий
- Оптимизирован входной файл фреймворка
- Улучшена система исключений
- Изменения ввода/вывода класса App
- Полная поддержка юнит-тестирования
- Добавлены новые команды консоли
- Отменено большинство констант за пределами системы
- Файлы отображения библиотек генерируются динамически через командную строку, включая библиотеки приложения### [ База данных ]
- Добавлены методы для работы с партиционированием
- Добавлены методы для работы с датами и временем
- Добавлены методы для пагинации
- Добавлены методы для работы с представлениями
- По умолчанию сохраняются имена полей таблиц в том виде, в котором они заданы
- Автоматическое обновление кэша данных
- Улучшена поддержка вложенных транзакций
- Улучшена поддержка чтения данных из хранимых процедур
- Поддержка настройки типа возвращаемого набора данных при выполнении запросов
[ Модели ]
- Добавлен расширенный модель Merge
- Поддержка динамического построения запросов
- Добавлена поддержка дополнительных типов автоматического преобразования
- Добавлен глобальный диапазон для запросов
- Поддержка скрытия и добавления свойств при преобразовании в JSON или массив
- Добавлена поддержка удаленных связей один ко многим
[ Другое ]
- Изменена структура хранения логов
- Функция отладки Trace выделена из класса логов и улучшена
- Функциональность класса Input перенесена в класс Request
- Файлы отображения библиотек генерируются динамически через командную строку, включая библиотеки приложения
- Метод check класса Validate принимает данные без ссылок
- Добавлены правила маршрутизации MISS
- Добавлена функция псевдонимов маршрутизации## Версия 2016-4-23 RC3
[Основная архитектура]
- Разделение основного репозитория фреймворка и репозитория приложений для удобного обновления через Composer
- Переработка класса базы данных, разделение на Connection (соединение), Query (запрос), Builder (генератор SQL)
- Переработка класса модели, более объектно-ориентированный подход
[База данных]
- Новый синтаксис запросов
- Запросы и транзакции с использованием замыканий
- Запросы через объект Query
- Обработка данных по частям
- Слушатели выполнения SQL
[Модели]
- Объектно-ориентированные операции
- Поддержка статического вызова (запросы)
- Поддержка читателей/редакторов
- Поля со временем
- Доступ к объектам/массивам
- Сериализация JSON
- Вызов событий
- Именованные области
- Автоматическое преобразование типов
- Валидация и завершение данных
- Запросы/записи связей
- Предварительная загрузка связей
[Другие обновления]
- Добавлена поддержка быстрого маршрутизирования в классе маршрутизации
- Переработка класса валидации Validate
- Добавлены методы для быстрого создания модулей в классе Build
- Улучшена генерация URL
- Улучшен класс валидации Validate
- Улучшена структура класса View и движка шаблонов
- Отменено использование тем шаблонов в движке шаблонов
- Исправлены проблемы, сообщенные сообществом
- Переименованы вспомогательные функции
- Файл
router.php
перемещен
Версия 2016-3-11 RC2* Переработанная система автоматической проверки и автозавершения (ранее использовались traits\model\Auto);
- Независимый дизайн класса Validate;
- Автоматическое создание функций передано консольному приложению;
- Обработка регистра символов в полях таблицы данных;
- Улучшенный класс Controller (отменены traits\controller\View);
- Улучшенный класс Input;
- Улучшенный класс Url;
- Улучшенный класс Cookie;
- Оптимизированный класс Loader;
- Оптимизированный класс Route;
- Оптимизированный класс Template;
- Автоматическая инициализация класса Session;
- Добавлены traits\model\Bulk для расширенного использования при работе с большими объемами данных;
- Добавлены тестовые драйверы для классов кэширования и журналирования;
- Улучшены механизмы обработки исключений и ошибок;
- Добавлены переключатели для автоматического преобразования URL и действий;
- Поддержка задания суффиксов для классов;
- Отменены функции привязки действий к классам;
- Отменены параметры use_db_switch.
Версия 2016-1-30 RC1
[ Основная архитектура ]
- Поддержка ленивой загрузки
- Компонентизация основных классов
- Файлы запуска фреймворка
- Автоматическая загрузка классов (поддержка Composer)
- Расширение с помощью Traits
- Дружественный API (вывод, исключения и отладка)
- Изменение правил именования файлов
[ Отладка и исключения ]* Отладка, вывод и обработка исключений, предназначенные для разработки API
- Поддержка логирования в файлы, SAE, страницы Trace, SocketLog для отладки с помощью браузерных плагинов
- Встроенный метод trace для удалённой отладки
- Драйверы для предупреждений об исключениях
- Поддержка анализа производительности SQL баз данных
[ Маршрутизация ]
- Динамическая регистрация маршрутов
- Пользовательские методы проверки маршрутов
- Группировка маршрутов
- Поддержка переменных в маршрутах с использованием регулярных выражений (включая глобальные и локальные)
- Замыкания маршрутов
- Поддержка маршрутизации к многоуровневым контроллерам
[ Контроллеры ]
- Контроллеры не требуют наследования от класса controller
- Поддержка многоуровневых контроллеров
- Расширение функционала контроллеров с помощью Traits
- Расширение контроллеров для REST/YAR/RPC/Hprose/JSON-RPC
- Поддержка исключения и указания действий
[ Модели ]
- Упрощённые основные модели
- Расширение моделей/моделей представлений/ассоциативных моделей с помощью Traits
- Поддержка чтения из основной базы данных при распределении
- Улучшенные методы join и order
[ Представления ]* Драйверы для парсинга представлений (шаблонные движки)
- Все методы больше не выводят данные напрямую, а возвращают их для последующего вывода системой
- Динамическое переключение тем шаблонов
- Динамическое переключение шаблонных движков### [ Базы данных ]
- Полностью реализовано на основе PDO
- Упрощенная архитектура базы данных
- Мониторинг производительности SQL (требуется включение режима отладки базы данных)
- Улучшения в параметризации PDO
[ Другие аспекты ]
- Поддержка автоматического генерирования директорий и файлов MVC
- По умолчанию функции добавляют переменные с модификатором /s
- В одном поведенческом классе можно определить разные методы для нескольких меток
- Расширенный набор расширений для социальных функций
Опубликовать ( 0 )