Обновление версии 2019-1-11 V5.0.24
Данное обновление содержит одно безопасное обновление. Рекомендуется обновить версию.
- Улучшен связанный метод save.
- Улучшена проверка модели данных.
- В коллекцию добавлен метод values.
- Улучшен метод unique проверки.
- Улучшён метод method класса Request.
Обновление версии 2018-12-9 V5.0.23
Основное изменение в этом обновлении — это безопасное обновление, которое рекомендуется обновить как можно скорее.
- Поддержка вызова модели в запросе Query.
- Поддержка поля DISTINCT в агрегированном запросе.
- Улучшение параметров в проверке замыкания.
- Много-ко-многим связанным таблицам можно указать имя промежуточной таблицы.
- Добавлена поддержка полей before/after для проверки.
- Улучшения в много-ко-многим связанной таблице.
- Улучшены правила проверки.
- Добавление правил afterWith и beforeWith для сравнения дат.
- Усовершенствованы подсказки правил.
- Исправлены проблемы с повторным подключением после обрыва соединения.
- Исправлено удаление модели методом destroy.
- Модель теперь имеет метод replace.
- Метод make добавлен в MorphOne для создания связанного объекта.
- Изменён тип возвращаемого значения метода count.
- Улучшено регулярное выражение в методе агрегированного запроса.
- Улучшен драйвер SQLsrv.
- Доработано связанное сохранение модели.
- Исправлен способ получения имени контроллера.
Обновление версии 2018-10-22 V5.0.22
В этой версии добавлена поддержка формата журнала JSON, а также одно безопасное обновление.
- Отключена кэш-память маршрутов в режиме отладки.
- Улучшен класс Log для поддержки формата журнала json.
- Повышена безопасность агрегированных запросов.
- Тип возвращаемого значения в методе count улучшен.
Обновление версии 2018-9-7 V5.0.21
Это обновление включает исправления некоторых известных проблем, улучшения поддержки Swoole, а также добавление функции кэширования маршрутов.
- Кэширование маршрутов добавлено.
- Решена проблема с портом в URL.
- Улучшен кэш драйверов.
- Улучшена обработка метода value в кэше.
- Исправлена ошибка в Builder insertAll.
- Улучшена поддержка Swoole (с использованием ссылки: xavier-swoole).
Обновление версии 2018-5-11 V5.0.20
Эта версия является исправленной версией, которая устраняет некоторые известные проблемы.
- Условия join поддерживают передачу объекта Expression.
- Улучшен parseKey в драйвере.
- Улучшен host в классе Request.
- Исключения при использовании exp для обновления данных.
- Запрос исправлен.
- Обновлён метод сохранения модели для много-ко-много связанным таблицам.
Обновление версии 2018-4-25 V5.0.19
Данная версия представляет собой улучшенную версию, основное внимание уделяется улучшению composer и встроенного механизма шаблонов.
- Улучшен composer.
- Улучшен механизм встроенных шаблонов.
- Улучшен анализ комментариев.
- Проблема с распределённой записью и своевременным чтением данных решена.
- Автоматическое преобразование операций 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.
- Инc и dec улучшены.
- По умолчанию шаблоны используют имена методов операций.
- Улучшен view в Request.
- 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 улучшена.
- Конфигурация консоли улучшена. Улучшения в 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 (2017-09-08)
Версия 5.0.11 является безопасной и содержит исправления и улучшения по сравнению с предыдущей версией. Были обновлены некоторые уязвимости безопасности, включая:
- Улучшение драйвера кэша.
- Модификация запросов к базе данных.
- Обновление класса генерации URL.
- Поддержка указания срока действия для кэшированных данных.
Изменения в базе данных и модели
- Улучшен класс драйвера базы данных.
- Разрешены конфликты ключевых слов в методе group.
- Исправлено возвращение null при агрегированных запросах.
- Реализовано принудительное переподключение в классе Db.
- Улучшено связывание атрибутов.
- Исправлена проблема с повторным подключением после разрыва соединения.
- Откорректированы условия транзакций при разрыве соединения.
- Класс Db дополнен методом clear.
- Обработаны случаи с нулевыми значениями в массивах условий.
- Метод chunk класса Query поддерживает настройку сортировки.
- Методы has классов HasOne и HasMany оптимизированы.
- Мягкое удаление теперь корректно работает с ассоциациями.
- Обработка нескольких запросов к одному полю улучшена.
Другие изменения
- Срок действия кэша теперь можно указать с помощью параметра DateTime.
- Генератор URL теперь поддерживает номера портов.
- Исключения RouteNotFound обрабатываются более эффективно.
- Глобальное сопоставление маршрутов обеспечивает полное соответствие.
- Частично исправлены ошибки в сообщениях об ошибках валидации.
- Поддерживается вывод данных в формате XML.
- Тернарные операторы в шаблонах оптимизированы.
- Сообщения об ошибках при отсутствии контроллера улучшены.
- Функция input helper поддерживает получение переменных route.
- Конфигурационные параметры могут быть прочитаны из дополнительных файлов конфигурации.
- Разбиение на страницы было усовершенствовано.
- Проблема с пространством имён Trait была решена.
- Метод env класса Request был обновлён.
- Предпочтение отдаётся многоязычным настройкам Cookie.
- При получении меток кэша фильтруются недействительные метки.
- Ошибка в пакетной регистрации маршрутов была исправлена.
- Параметр конфигурации exception_handle теперь может использовать замыкания для определения обработки render.
- Запрос на поддержку кэша включает настройку тегов кэша.
- Для метода remember класса Cache добавлен механизм блокировки.
- Загрузка SWF файлов в классе Upload была улучшена.
- Префикс Session класса был обновлён.
Версия 5.0.10 (2017-07-04)
Эта версия представляет собой исправление ошибок и обновление безопасности. Основные изменения включают:
- Улучшения в базе данных и моделях.
- Добавление новых функций мониторинга поведения.
- Маршрутизация с поддержкой настройки Response.
- Повышение безопасности при отладке.
Изменения в базе данных и модели
- Исправлен некорректный синтаксис удаления при объединении с другими таблицами.
- Коррекция удалённого доступа «один ко многим».
- Поддержка replace в insertall.
- Многоуровневые ассоциации «многие ко многим» теперь работают корректно.
- Модель автоматически обновляет поле update_time после сохранения.
- Новый метод removeRelation в модели.
- Новые методы setInc и setDec в модели.
- Динамическое управление полями времени с помощью autoWriteTimestamp.
- Драйвер базы данных обрабатывает разрыв соединения более точно.
- Ассоциативные данные обновляются более эффективно.
- BelongsToMany запросы оптимизированы.
- Проблемы с методами value и column класса Query были решены.
- Повторяющиеся значения в in запросах больше не возникают.
- Передача значений в scope метод модели стала более надёжной.
- Позиция проверки before_update в модели была скорректирована.
- Третье ассоциативное значение теперь поддерживается в модификаторах и геттерах.
Прочие изменения
-
По умолчанию отладка отключена.
-
Ошибки загрузки временных файлов в extra каталоге были устранены.
-
Мониторинг завершения записи в журнал log_write_done был добавлен.
-
Генерация общих файлов в Build была улучшена.
-
Строка поведения response_send была добавлена.
-
Маршрут теперь может привязывать обработку response.
-
Переадресация была обновлена.
-
Логические значения в среде теперь обрабатываются корректно.
-
URL-адрес домена в классе Url был улучшен.
-
Создание командных файлов было исправлено.
-
Командные URL-адреса были улучшены.
-
app_host параметр устанавливает корневой URL по умолчанию.
-
isSsl метод класса Request теперь учитывает CDN.
-
Запись trace информации в журнале была упрощена с помощью record_trace. IN / NOT IN 型查询条件为空导致的 SQL 语法错误
-
Исправление метода toArray класса, реализующего разбиение на страницы.
-
Исправление обработки метода delete класса Model для составных первичных ключей.
-
Исправление поддержки мягкого удаления в MongoDB.
-
Исправление возможной ошибки в классе Connection.
-
Улучшение механизма кэширования метода find класса Query.
-
Исправление связи BelongsTo.
-
Исправление JOIN-способа для предварительной загрузки одно-к-одному.
-
Исправление возможного предупреждения об ошибке в методе insert класса Query.
-
Исправление конфликта use в коллекции 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 в классе Model, где второй параметр равен true или числу, что указывает на параметры кэширования;
- Исправлена ошибка синтаксиса SQL, вызванная пустым условием в запросе;
- Улучшен метод setBuilder в классе Query, чтобы предотвратить проблемы с поиском генератора после создания пользовательского соединителя;
- Удалено устаревшее свойство resultSetType в классе Connection;
- Оптимизирован метод close в классе Connection;
- Исправлены проблемы совместимости с мягким удалением, поддерживающим MongoDB;
[Другое]
- Улучшен класс Url при генерации корня как /;
- Переопределены функции redirect в помощнике и методе redirect контроллера с параметром with;
- Глобальный запрос добавлен в правила исключения, добавлены параметры конфигурации request_cache_except;
- Параметр store в классе Cache допускает значение null, что означает получение текущего дескриптора кэша;
- Улучшены правила проверки IP в классе Validate.
2017-01-23 V5.0.5
Основные настройки:
Основное внимание в этом обновлении уделяется улучшению уровня доступа к данным и моделированию связей:
- Добавление быстрого поиска и методов настройки;
- Добавление функций статистики связей;
- Добавление отложенной предварительной загрузки связей;
- Одно-к-одному автоматическое создание и удаление;
- Улучшенное выполнение хранимых процедур;
- Улучшенный вывод связанных данных;
- Повышение производительности запросов;
- Автоматическое форматирование вывода временных полей модели.
[Запрос и маршрутизация]
- Улучшено обнаружение суффиксов в определении маршрутов;
- Класс Route поддерживает перекрытие определения методом rest;
- Методы put и post в классе Request поддерживают формат JSON;
- Запрос класса добавляет метод contentType;
- Улучшения в методе setRule класса Route;
- Улучшения в создании метода класса Request;
- Влияние маршрутизации на контроллеры и методы рендеринга шаблонов по умолчанию;
- Исправления в методе build класса Url после определения псевдонима.
[База данных и моделирование]
- Добавлены функции статистики связей;
- Одно-к-одному автоматическому созданию;
- Улучшен метод delete в модели агрегирования;
- Улучшен метод useGlobalScope в модели;
- Модельные поля даты могут быть установлены как имена классов;
- Классы Query добавляют методы data, inc, dec и exp для быстрой настройки параметров insert и update, которые могут быть пустыми и считывать данные из data;
- Повышена производительность запросов в Connection;
- Улучшен анализ порядка в Builder;
- Улучшен attach в BelongsToMany;
- BelongsToMany улучшает attach, поддерживает пакетное создание;
- Улучшает saveall в BelongsToMany, добавляя третий параметр для указания, должны ли дополнительные параметры быть одинаковыми;
- Query упорядочивает метод, который поддерживает многократное объединение вызовов;
- Улучшенная поддержка group в подсчёте;
- Проверка наличия временных меток при записи данных;
- Улучшен writeTransform в модели;
- Улучшено чтение и запись временных меток в модели;
- При записи данных в виде объекта проверяется наличие метода __toString;
- Улучшен getFields в MySQL-драйвере;
- Улучшено автоматическое форматирование выходных данных временных полей;
- Условия запроса like поддерживают массивы;
- Автоматически использует форматирование времени при получении временных полей;
- Улучшено выполнение одиночных запросов с несколькими условиями Or;
- Объединение условий null;
- Улучшен paginate в Query, первый параметр можно передать в виде массива;
- Преобразование данных в наборы данных с помощью метода select в Query, исходные запросы больше не поддерживают возврат наборов данных;
- Добавляет whereNull, whereIn и другие быстрые методы запроса;
- Изменён fetchPdo;
- Улучшена поддержка хранимых процедур, улучшен вызов getRealSql, улучшено связывание параметров с полями с использованием подчёркивания;
- Параметры конфигурации базы данных добавляют result_type для установки типа возвращаемых данных, а также изменяют имена параметров методов;
- Улучшен whereTime в Query для поддержки большего количества выражений даты и времени (по умолчанию используется условие больше указанного выражения даты и времени);
- Отменяет значения по умолчанию для min, max, sum и avg;
- Query добавляет метод getPdo для возврата объектов PDOStatement;
- Улучшен today в выражении даты и времени;
- Улучшено получение связанных атрибутов;
- Решена проблема повторного выполнения условий в связанных определениях;
- Связанное определение автоматически связывает китайские поля;
- Builder улучшает insertall, обрабатывая нулевые значения и объекты;
- Типы привязки параметров поддерживают битовые типы;
- Connection заменяет model на getQuery;
- Оптимизация __call в Connection;
- Агрегатная модель исправлена;
- Предварительная загрузка по одному предварительно загружается с использованием IN;
- Добавить функцию load_relation для отложенной предварительной загрузки массивов;
- Model has метод поддерживает использование массивов и замыканий во втором параметре, нет необходимости использовать hasWhere;
- Relation поддерживает вложенные связанные запросы;
- Think\model\Collection используется в качестве набора данных модели;
- Отменить атрибут alias в связанном определении (только morphTo сохраняет);
- Модель delete поддерживает отсутствие первичного ключа;
- Разрешить разделять запятыми строки в allowField в модели;
- Проблема с искажением имён параметров при автоматической привязке параметров;
- Связанные атрибуты по умолчанию используют строчные буквы и подчёркивание;
- Повторный вызов методов with и relation в Query;
- Collection добавляет скрытые, видимые и добавленные методы;
- Мягкое удаление принудительного удаления улучшено;
[Прочее]
- Уникальная проверка правил поддерживает указание полной модели класса и сначала проверяет, существует ли модель класса, если нет, то проверяет данные таблицы;
- Улучшенные методы loader model, controller и validate, позволяющие напрямую передавать экземпляры классов для создания экземпляров;
- Session добавляет безопасные параметры httponly и secure;
- Можно разрешить настраиваемый драйвер Output для адаптации к командам командной строки и другим командам;
- Loader action улучшает обработку параметров загрязнения;
- Validate улучшает сообщение об ошибке;
- Cookie помощник улучшает поддержку префиксов;
- Файл кэша по умолчанию включает подкаталог кэша, чтобы избежать слишком большого количества файлов и снижения производительности.
[Настройка]
- Заменить model в Connection на getQuery;
- Исходные запросы больше не возвращают наборы данных;
- Разбиение на страницы возвращает тип think\Paginator (использование не изменилось);
- Временные поля модели автоматически форматируются, дополнительная обработка не требуется;
- Secure и httponly добавлены в Session, по умолчанию установлено значение true. Запрос класса post метода поддерживает получение данных в формате JSON.
- Маршрутизация к классу метода и контроллеру метода поддерживает передачу дополнительных параметров, используемых для параметров метода.
- Улучшение автоматического поиска контроллера.
- Улучшения кэширования запросов.
- Улучшенное автоматическое связывание параметров.
- Исправление настроек кэша маршрутизации.
- Улучшенный метод name класса Route.
[База данных и модель]
- Добавление событий запросов базы данных (CURD).
- Улучшенная обработка многотабличных обновлений при отсутствии полей.
- Улучшенный метод useGlobalScope класса Model.
- Исправлена проблема с использованием подзапросов в качестве имён таблиц.
- Добавлен атрибут resultSetType в класс Model для указания типа набора данных модели (по умолчанию возвращает пустой массив).
- Метод toCollection класса Model теперь автоматический.
- Настройка ассоциации моделей.
- Улучшена поддержка параметров lowerCamelCase и _lower_snake_case для метода with.
- Исправлены ошибки в ассоциации «многие ко многим».
- Улучшен запрос ассоциации «многие ко многим».
- Поддержка полиморфной ассоциации «один ко многим».
- Предварительная загрузка ассоциаций объектов позволяет привязывать атрибуты текущего объекта к модели.
- Поддерживается добавление атрибутов связанного объекта в текущий объект модели.
- Один-к-одному ассоциация: предварительная загрузка поддерживает JOIN и IN (по умолчанию используется JOIN).
- Улучшены запросы «многие ко многим».
- Улучшено сравнение изменений данных при обновлении модели.
- Запросы поддерживают многократное использование одного поля в условиях.
- Улучшен журнал SQL-запросов.
- Исправлен конфликт псевдонимов при использовании имени таблицы в запросе.
- Объединение атрибута connection класса модели и конфигурации по умолчанию.
- Улучшено автоматическое связывание параметров для условий IN и BETWEEN.
- Класс Query поддерживает сортировку объектов наборов данных и связанных полей.
- Ускорены события модели.
- Улучшен метод getTableInfo класса Query для кэширования чтения.
- Метод saveAll класса model поддерживает вызов метода allowField для фильтрации полей.
- Исправлена ошибка в методе whereTime при запросах ассоциации.
- Улучшенные агрегатные запросы класса Query.
- Поддержка строковых подзапросов методом table.
- Исправлено некорректное возвращение SQL при использовании методов count и avg с fetchsql.
[Прочее]
- Улучшен логирование в командной строке.
- Логирование упрощено в режиме развёртывания.
- Введён тип журнала debug для режима отладки.
- Улучшен метод parseTemplateFile класса Template.
- Улучшен метод getRuleMsg класса Validate.
- Контроллер: метод error по умолчанию возвращает пустой URL при AJAX-запросах.
- Добавлено поле field в метод setRuleMsg класса Validate для описания поля проверки.
- Улучшен метод invokeMethod класса App для поддержки внедрения зависимостей в функции архитектуры.
- Добавлен метод restore класса RedirectResponse для возврата значения.
- Статический метод share класса View для статического присвоения значений переменным шаблона.
- Проверка: добавлен метод hasScene для определения наличия сценария проверки.
- Исправлены методы destroy классов redis и session для корректного возврата значений.
- Удалены суффиксы операций из параметров методов.
- Вызов request и view в контроллере с указанием типов.
- Улучшен помощник input для получения многомерных данных.
- Классы Cache: добавлены методы pull и remember.
- Улучшена проверка класса: поддержка автоматического распознавания правил подтверждения.
- Улучшено определение ошибок в классе проверки.
- Разрешено переопределение сообщений об ошибках в классе Validate.
- Cookie: добавлен метод forever для постоянного сохранения.
- Шаблоны: поддерживается чтение шаблонов из корневого каталога представлений.
- Улучшен метод exec класса Hook.
[Настройка]
- Db: запросы больше не поддерживают настройку пользовательских наборов данных.
- Исключён метод fetchClass класса Query.
- Контроллеры: метод error при AJAX-запросах по умолчанию возвращает пустой URL.
- Методы ассоциации должны использовать стиль именования CamelCase.
- Поведение методов должно использовать стиль именования CamelCase. Проверка ошибок поддерживает многоязычное чтение
- Улучшение ROOT_PATH константы.
- Улучшения в загрузке языковых пакетов.
- Улучшения в получении переменных сеанса и cookie шаблона, автоматическое определение префикса.
- Унификация обработчика метода для получения дескриптора объекта операции в драйвере кэша. Некоторые типы кэша могут быть нулевыми.
- Метод __call класса File для совместимости с версиями 5.0 методов md5 и sha1.
- Улучшения метода clear драйвера файлового кэша.
- У метода setLangCookieExpire класса Lang есть возможность устанавливать срок действия многоязычных куки.
- Добавление параметра конфигурации route_complete_match.
[Настройка]
Следующие свойства и методы модели были изменены с статических на динамические:
- Свойство relationModel агрегированной модели.
- Атрибут useGlobalScope модели Model.
- Динамический метод глобального диапазона запросов вместо базового.
- Мягкое удаление атрибута deleteTime.
2016-9-28 V5.0.1
Основные настройки:
- Завершена работа над внедрением зависимостей (215849).
- Изменена настройка расположения файла конфигурации (118027).
- Добавлена команда для полей таблицы данных.
- Поддержка установки текущего объекта запроса.
- Поддержка запроса и маршрутизации кэширования (215850).
Запрос и маршрутизация
- Улучшен метод success и error контроллера для определения адреса перехода, поддерживается больше схем.
- Методы операций и архитектуры поддерживают автоматическую инъекцию любых объектов.
- В классе Request добавлен метод getInput для получения значения php://input.
- Маршрутизация к методу поддерживает внедрение запроса архитектуры.
- Улучшено определение маршрута класса Route.
- Класс Request имеет метод cache для поддержки запроса кэширования.
- После привязки к модулю маршрут по-прежнему проверяется в первую очередь.
- Маршрут имеет параметр кэширования запроса.
- Исправлены ошибки в определении комбинированных переменных маршрута.
База данных
- Исправление ошибок в информации о полях таблицы базы данных pgsql.
- Улучшен метод view класса Query, значение по умолчанию второго параметра изменено на true для получения всех полей.
- Информация о конфигурации базы данных имеет параметр query для настройки имени объекта запроса.
- Тип имеет атрибут query для настройки требуемого имени объекта запроса модели.
- Улучшена обработка поля таблицы данных кэша.
- Модель или абстрактный класс не генерируют кэш поля таблицы, если они не наследуют класс Model.
- Виртуальная модель не генерирует кэш поля таблицы.
- Поддерживается генерация кэша поля таблицы для моделей, считываемых из модуля.
- Улучшены методы сохранения агрегированных моделей для записи первичного ключа.
- Поле модели field упрощено, метод allowField и метод setFieldType класса Query и связанные атрибуты отменены.
- Кэш поля таблицы может быть сгенерирован для нескольких баз данных.
- Обновлён класс драйвера базы данных, улучшен метод getTables.
- Добавлен optimize:schema для генерации информации о поле таблицы кэша.
- Исправлена ошибка при связывании нескольких условий в одном параметре.
- Второй параметр метода paginate для разбивки на страницы представляет собой общее количество записей.
- Исправлен запрос MySQL JSON.
- Улучшен метод getOptions класса Query, возвращающий null, когда имя параметра не существует.
Модель и связь
- Не нужно добавлять определение типа поля в модель field.
- Статический метод getDb добавлен в класс Model для получения объекта запроса db.
- Улучшен метод save класса Model, возвращая значение.
- Улучшен метод сохранения класса Relation.
- Исправлена проблема с сохранением модели «многие ко многим».
- Улучшен метод сохранения модели Model, решая проблему обновления без первичного ключа.
- Если время равно нулю при получении, преобразование не выполняется.
Другое
- Улучшено создание кэша конфигурации, поддерживающее расширение конфигурации.
- Отменён параметр extra_config_list, файлы расширенной конфигурации можно размещать непосредственно в каталоге extra без дополнительной загрузки (расположение файла конфигурации базы данных не изменилось).
- Функция cache helper поддерживает проверку эффективности кэша.
- Исправлена конфигурация класса драйвера шаблона, метод config.
- Решена проблема, возникающая при использовании __call для вызова db() в случае, когда атрибут Model field равен true.
- Улучшен метод config драйвера шаблона для поддержки получения значений параметров конфигурации.
- Улучшено разрешение URL перенаправления.
- Удалены методы md5 и sha1 класса File, заменённые методом hash, который поддерживает генерацию большего количества типов хэшей.
- Добавлено действие response_end.
- Улучшена загрузка по умолчанию. Улучшения в классе Session для автоматической инициализации
- В класс Session добавлен метод pull для получения и удаления данных.
Увеличение класса Env для получения переменных окружения
- Добавлен класс Env, который позволяет получать переменные окружения.
Изменения в методах get/post/put класса Request
- После присвоения значений методы get/post/put продолжают работать корректно.
Улучшение в работе метода Jump для перехода по URL
- Метод Jump поддерживает разбор URL с помощью функции Url::build.
Оптимизация класса Hook
- Класс Hook оптимизирован.
Применение режима отладки и поддержка переменных окружения в режиме трассировки
- Режим отладки и трассировка поддерживают установку переменных окружения.
Конфигурационный помощник config
- Функция config('?name') используется для работы с конфигурацией.
Использование константы BIND_MODULE для привязки модулей
- Модули можно привязать с использованием константы BIND_MODULE.
Автоматическое связывание модулей во входном файле
- Во входном файле автоматически связываются модули.
Улучшения в обработке ошибок и шаблонах в классе Validate
- Ошибки проверки обрабатываются более эффективно, а шаблоны вывода ошибок улучшены.
Доработка консоли и добавление методов вывода
- Консоль дополнена несколькими полезными методами вывода.
Добавление функции token для отображения токенов на странице
- Для быстрого отображения токенов добавлена функция token.
Введение метода halt для отладки переменных и прерывания вывода
- Метод halt позволяет приостановить выполнение программы и отладить переменные.
Разделение правил проверки чисел и целых чисел в классе Validate
- Правила проверки чисел и целых чисел разделены в классе Validate.
Оптимизация автозагрузки с помощью optimize:autoload
- Автозагрузка расширений оптимизирована с помощью команды optimize:autoload.
Улучшенная проверка логических значений в классе Validate для поддержки форм
- Логические значения проверяются более точно для обработки данных из форм.
Расширение функций cookie для определения наличия cookie
- Функции cookie позволяют определить наличие cookie.
Обновление функции abort для выдачи исключений HttpResponseException
- Исключения HttpResponseException выдаются с помощью обновлённой функции abort.
Обработка ошибок при загрузке файлов в классе File
- Обработка ошибок при загрузке файлов улучшена в классе File.
Изменение метода move в классе File для возврата информации о загруженном файле
- Метод move возвращает информацию о загруженном файле.
Преобразование методов clear и optimize:config
- Методы clear и optimize:config преобразованы.
Проверка типов изображений в классах File и Validate
- Типы изображений проверяются в классах File и Validate.
Поддержка внедрения объектов Request в контроллеры
- Контроллеры могут внедрять объекты Request.
Получение данных с файлами с помощью метода param(true) в классе Request
- Данные с файлами можно получить с помощью метода param(true).
Ввод данных с использованием функции input
- Первый параметр функции input теперь имеет значение по умолчанию.
Правила проверки изображений в классе Validate и поддержка различных типов данных
- Улучшена проверка изображений в классе Validate, поддерживается несколько типов данных.
Выдача исключений при ошибках кодирования при выводе JSON
- При ошибках кодирования JSON выдаются исключения.
[Изменения]
Отмена статических маршрутов (маршрутов без использования контроллера)
- Статические маршруты больше не используются.
Удаление параметра url_deny_suffix, вместо него используется deny_ext в маршрутах
- Параметр url_deny_suffix удалён, его заменил параметр deny_ext.
Метод save модели возвращает количество затронутых строк, параметр getId удалён
- Модель возвращает количество затронутых строк после выполнения метода save, параметр getId больше не используется.
Контроллер возвращает имя контроллера в верблюжьем регистре
- Имя контроллера возвращается в верблюжьем регистре.
Исключение при отсутствии метода перед выполнением операции контроллера
- Если перед операцией контроллера нет метода, выбрасывается исключение.
Добавлен параметр name в методе db класса Loader
- У метода db класса Loader появился параметр name.
У функции db появился третий параметр для указания соединения
- Третий параметр функции db указывает соединение.
По умолчанию драйвер SQLSRV не преобразует данные таблицы в нижний регистр
- Драйвер SQLSRV по умолчанию не преобразует данные таблиц в нижний регистр.
Драйвер srv заменён на пакет расширения
- Вместо драйвера srv используется пакет расширения.
Драйверы Oracle и Firebird перемещены в пакеты расширения
- Драйверы Oracle и Firebird теперь находятся в пакетах расширения.
Файл alias.php больше не используется
Чтение параметров конфигурации без учёта переменных окружения, использование класса Env
- Параметры конфигурации читаются без учёта переменных окружения с помощью класса Env.
Формат файла конфигурации изменён с массива на ini
- Формат файла конфигурации изменился с массива на формат ini.
Порядок загрузки состояний и расширений изменён для удобства
- Порядок загрузки состояний и расширений стал более удобным.
Привязка доменов к группам маршрутов больше не поддерживается
- Домены больше нельзя привязать к группам маршрутов.
Параметры url в методах success и error контроллера могут быть пустыми
- Успех и ошибка контроллера не зависят от параметров url.
Методы контроллера error, success, result и redirect не требуют return
- Методы контроллера error, success, result и redirect больше не требуют использования return.
Права доступа для создания каталогов установлены на 0644
- Права доступа для создания каталогов — 0644.
Версия RC4 от 2016-07-01
[Архитектура]
- Добавлен класс Request для автоматического внедрения
- Унифицирован механизм автоматической загрузки Composer.
- Расширены возможности класса Response.
- Добавлены классы File для операций с файлами и Upload для загрузки файлов.
- Отменена поддержка режима SAE, используется расширение пакета.
- Оптимизирован фреймворк.
- Улучшен механизм исключений.
- Классы App для ввода и вывода данных оптимизированы.
- Обеспечена полная поддержка модульного тестирования.
- Созданы новые консольные команды.
- Удалены большинство констант вне пути приложения.
- Динамически генерируется файл сопоставления классов, содержащий классы приложения.
[База данных]
- Разделение таблиц по правилам.
- Добавление запросов по дате и времени.
- Поддержка постраничного запроса.
- Запросы к представлениям.
- Сохранение регистра данных таблицы.
- Автоматический механизм обновления кэша.
- Полная поддержка транзакций.
- Улучшено чтение данных процедур.
- Настройка типа возвращаемых данных запроса.
[Модели]
- Расширение модели Merge.
- Модели поддерживают динамические запросы.
- Больше типов автоматического преобразования.
- Глобальный диапазон запросов.
- Токен и массив поддерживают скрытие и добавление атрибутов.
- Дальнее отношение один ко многим.
[Другое]
- Структура журнала изменена.
- Trace отделена от журнала и усилена.
- Input интегрирован в Request.
- Файлы сопоставления классов создаются с помощью команд.
- Проверка класса проверяет данные без ссылки.
- Маршрут MISS добавлен.
- Маршрутные псевдонимы добавлены.
Версия RC3 от 2016-04-23
[Архитектура]
- Репозитории ядра и приложений разделены для независимого обновления Composer.
- База данных разделена на Connection, Query и Builder.
- Модель переработана для большей объектности.
[База данных]
- Новый синтаксис запросов.
- Закрытые запросы и транзакции.
- Объекты запросов.
- Пакетная обработка данных.
- Мониторинг выполнения SQL.
[Модель]
- Объектно-ориентированные операции.
- Статический вызов (запрос).
- Чтение и запись.
- Поля временных меток.
- Доступ к объектам и массивам.
- Сериализация JSON.
- Триггеры событий.
- Область видимости.
- Автоматическое преобразование типов.
- Валидация и завершение данных.
- Ассоциативные запросы и записи.
- Предварительная загрузка ассоциаций.
[Прочее]
- Переработан маршрутизатор.
- Обновлён класс Validate.
- Builder для быстрого создания модулей.
- Генератор URL.
- Класс Validate обновлён.
- Шаблоны и механизмы просмотра обновлены.
- Тема шаблона удалена.
- Исправлены ошибки сообщества.
- Помощники переименованы.
- Расположение файла router.php изменено.
Версия RC2 от 2016-03-11
- Полностью переработанные механизмы автоматической валидации и автодополнения (поддержка существующих механизмов через traits\model\Auto).
- Независимый дизайн класса Validate.
- Генерация кода перенесена в консоль.
- Работа с регистрами полей таблиц.
- Обновление класса Controller (отмена traits\contorller\View).
- Обновление класса Input.
- Обновление класса Url.
- Обновление класса Cookie.
- Оптимизация Loader.
- Оптимизация Route.
- Оптимизация Template.
- Автоматическая инициализация Session.
- Bulk — модель для массовых операций (интеграция с traits\model).
- Кэширование и логирование с поддержкой Test.
- Улучшения в механизме исключений и обработки ошибок.
- Управление преобразованием URL в контроллер и действие.
- Установка суффиксов имён классов.
- Отмена привязки операций к классу.
- Отмена параметра use_db_switch.
Опубликовать ( 0 )