1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/kadixiaodan-thinkphp_gatewaywork

Клонировать/Скачать
CHANGELOG.md 110 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 02.06.2025 12:07 620a23c

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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/kadixiaodan-thinkphp_gatewaywork.git
git@api.gitlife.ru:oschina-mirror/kadixiaodan-thinkphp_gatewaywork.git
oschina-mirror
kadixiaodan-thinkphp_gatewaywork
kadixiaodan-thinkphp_gatewaywork
master