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

OSCHINA-MIRROR/iszmxw-cphalcon

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
CHANGELOG-4.0.md 96 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 18:48 2b14b1f

4.0.6 (2020-05-16)

Added

Changed

  • Изменён Volt::convertEncoding, чтобы больше не использовать iconv в качестве запасного варианта, так как он вызывает проблемы с macOS #14912.
  • Изменено манипулирование схемой в Phalcon\Db\Dialect\Mysql — отмена кавычек числовых значений по умолчанию #14888, #14974.
  • Изменен уровень доступа по умолчанию ACL с логического FALSE на Enum::DENY #14974.
  • Изменён способ проверки content данных в __construct метода Phalcon\Http\Response. Теперь будет выдаваться ошибка TypeError, если был передан несовместимый тип данных #14983.
  • Изменены подсказки типов возвращаемых значений следующих методов Phalcon\Flash\FlashInterface: error, message, notice, success и warning #14994.
  • Изменена подсказка типа возвращаемого значения для Phalcon\Mvc\ModelInterface::sum #15000.
  • Изменён тип возвращаемого значения Phalcon\Mvc\Model\Criteria::getLimit, теперь будет возвращаться целое число, NULL или массив #15004.
  • Изменена подсказка возвращаемого типа для Phalcon\Mvc\Model\Manager::getCustomEventsManager, теперь она возвращает NULL вместо логического FALSE, если специального менеджера событий нет #15008.
  • Изменён метод Phalcon\Mvc\Model\MetaData::getDI, теперь он будет выдавать ошибку Phalcon\Mvc\Model\Exception, если нет экземпляра DiInterface #15011.
  • Изменён метод Phalcon\Http\Request::getJsonRawBody, теперь используется json_decode вместо Phalcon\Json::decode #14936.
  • В Phalcon\Factory\AbstractFactory добавлен метод getService, который будет вызывать исключение, если сервиса не существует. Удален метод checkService и скорректированы все ссылки в вызовах newInstance() #15038.
  • Видимость методов и свойств в Phalcon\Http\Message\Response, Phalcon\Http\Message\ServerRequest и Phalcon\Http\Message\Uri изменена для работы с clone #15040.

Исправлено

  • Исправлен метод Phalcon\Mvc\Model\Query\Builder::getPhql, чтобы добавить одинарные кавычки между строковыми значениями в простом условии #14874.
  • Исправлена работа языковых операторов внутри режима эха Volt ({{ ... }}) #14476.
  • Исправлено свойство Tag::friendlyTitle, чтобы корректно преобразовывать заголовки под MacOS и Windows #14866.
  • Вольт-компилятор больше не анализирует фрагменты cache и, следовательно, не ищет службу viewCache (устарело для версии 4) #14907.
  • Исправлен приоритет оператора IN в Volt #14816.
  • Исправлено тестирование набора тестов для работы с PHPUnit 9 при обновлении #14837.
  • Подсказки типов возвращаемых значений методов Phalcon\Acl\AbstractAdapter: getActiveAccess, getActiveRole и getActiveComponent исправлены #14974.
  • Значения по умолчанию свойств $arguments и $exprArguments аннотации Phalcon\Annotations\Annotation исправлены #14977.
  • Подсказки типов методов Phalcon\Annotations\Annotation: getArgument, getName и getNamedArgument исправлены #14977.
  • Некорректная подсказка типа возврата для Phalcon\Http\Response\Cookies::setSignKey исправлена #14982.
  • Исправлены подсказки типов для методов Phalcon\Config\ConfigFactory::load и Phalcon\Config\ConfigFactory::newInstance. Явно укажите тип возвращаемого значения как экземпляр Phalcon\Config #14978.

— Исправлены подсказки типа возвращаемого значения для следующих методов: — Phalcon\Dispatcher\AbstractDispatcher::dispatch, — Phalcon\Dispatcher\DispatcherInterface::dispatch, — Phalcon\Filter::get, — Phalcon\Http\Message\AbstractCommon::cloneInstance, — Phalcon\Http\Message\AbstractCommon::processWith, — Phalcon\Http\Message\AbstractMessage::withAddedHeader, — Phalcon\Http\Message\AbstractMessage::withBody, — Phalcon\Http\Message\AbstractMessage::withHeader, — Phalcon\Http\Message\AbstractMessage::withProtocolVersion, — Phalcon\Http\Message\AbstractMessage::withoutHeader, — Phalcon\Http\Message\AbstractRequest::withMethod, — Phalcon\Http\Message\AbstractRequest::withRequestTarget, — Phalcon\Http\Message\AbstractRequest::withUri, — Phalcon\Mvc\Model\Binder::findBoundModel, — Phalcon\Validation::getEntity, — Phalcon\Validation\ValidationInterface::getEntity.

— Исправлено значение по умолчанию для Phalcon\Crypt::$key для соответствия интерфейсу #14989.

— Исправлена подсказка типа возвращаемого значения для Phalcon\Di::getInternalEventsManager #14992.

— Исправлены подсказки типов возвращаемых значений для следующих методов Phalcon\Flash\AbstractFlash: error, notice, success и warning #14994.

— Исправлена подсказка типа возвращаемого значения для Phalcon\Translate\InterpolatorFactory::newInstance #14996.

— Исправлена подсказка типа возвращаемого значения для Phalcon\Mvc\Model::sum #15000.

— Исправлена подсказка типа возвращаемого значения для Phalcon\Mvc\Model\CriteriaInterface::getLimit и Phalcon\Mvc\Model\Criteria::getLimit, чтобы следовать документации и первоначальному назначению #15004.

— Исправлена подсказка типа возвращаемого значения для Phalcon\Mvc\Model::count и Phalcon\Mvc\ModelInterface::count, чтобы отразить исходное поведение #15006.

— Исправлена подсказка типа возвращаемого значения для Phalcon\Mvc\Model::getEventsManager, чтобы отразить исходное поведение #15008.

— Исправлена подсказка типа возвращаемого значения для Phalcon\Mvc\Model::average и Phalcon\Mvc\ModelInterface::average, чтобы отразить исходное поведение #15013.

— Исправлена подсказка типа возвращаемого значения для Phalcon\Mvc\Model\MetaData::getColumnMap и Phalcon\Mvc\Model\MetaData::getReverseColumnMap, чтобы отразить исходное поведение #15015.

— Исправлена подсказка типа возвращаемого значения для Phalcon\Mvc\Model\MetaDataInterface::getColumnMap и Phalcon\Mvc\Model\MetaDataInterface::getReverseColumnMap, чтобы отразить исходное поведение #15015.

— Исправлена подсказка типа возвращаемого значения для Phalcon\Mvc\Model\CriteriaInterface::getColumns и Phalcon\Mvc\Model\Criteria::getColumns, чтобы отразить исходное поведение #15017.

— Исправлена подсказка типа возвращаемого значения для Phalcon\Db\Column::getSize и Phalcon\Db\ColumnInterface::getSize, чтобы отразить исходное поведение #15019.

— Исправлена подсказка типа возвращаемого значения для Phalcon\Db\Column::getAfterPosition и Phalcon\Db\ColumnInterface::getAfterPosition, чтобы отразить исходное поведение #15021.

— Исправлена подсказка типа возвращаемого значения для Phalcon\Mvc\Model\Manager::executeQuery и Phalcon\Mvc\Model\Manager::ManagerInterface, чтобы отразить исходное поведение #15024.

— Исправлена подсказка типа возвращаемого значения для Phalcon\Mvc\Model\Resultset::getFirst и Phalcon\Mvc\Model\ResultsetInterface::getFirst, чтобы отразить исходное поведение #15027.

— Откатить изменения, внесённые в регрессию для Phalcon\Mvc\Model\Query::_prepareSelect, чтобы правильно... Phalcon\Session\Adapter\Stream и Phalcon\Storage\Adapter\Stream, чтобы корректно обрабатывать одновременное чтение/запись #14694

  • Исправлено Phalcon\Config\ConfigFactory, чтобы всегда добавлять правильное расширение #14756

4.0.2 (2020-01-12)

Исправлено:

  • Исправлена ошибка с неправильным указанием номера версии Phalcon в предыдущем релизе.

4.0.1 (2020-01-11)

Изменено:

  • Изменена логика использования DateTimeImmutable при логировании времени для Phalcon\Logger, чтобы учитывать микросекунды, если это необходимо. #2893
  • Изменены методы Phalcon\Http\Cookie::send и Phalcon\Http\Cookie::delete, чтобы можно было передавать параметр samesite в опциях при использовании PHP > 7.3 #14627

Исправлено:

  • Исправлен Phalcon\Mvc\Model\Criteria: DI не устанавливается при использовании Criteria::fromInput() #14538
  • Исправлены Phalcon\Db\Dialect\Mysql: удалены лишние скобки для типов данных double и float #14645 @pfz
  • Исправлен метод Phalcon\Http\Cookie::delete: правильно анализируются параметры — альтернативный синтаксис нельзя использовать до PHP 7.3 #14643
  • Исправлен __isset в Phalcon\Mvc\Model: учитываются не видимые свойства путём проверки геттера, если он существует #13518 #13900
  • Исправлен __set в Phalcon\Mvc\Model: возвращается более информативное сообщение, если мы пытаемся получить доступ к не видимому свойству #13518 #13900
  • Исправлен Phalcon\Mvc\Model\Resultset\Simple::toArray: корректно обрабатываются виртуальные поля #14669
  • Исправлен Phalcon\Session\Manager::getUniqueKey: префикс ключа только если присутствует uniqueId #14688
  • Исправлен Phalcon\Db\Adapter\Pdo::describeColumns: правильно определяет столбцы ENUM #14691
  • Исправлен Phalcon\Db\Dialect\Mysql::getColumnDefinition: распознаёт атрибут size для столбцов DATETIME, TIME и TIMESTAMP #13297

4.0.0 (2019-12-21)

Добавлено:

  • Добавлена возможность обработки переданных параметров в методах Phalcon\Model::findFirstBy* и Phalcon\Model::findBy* (для order и т. д.) #14573
  • Добавлен метод decrement в Phalcon\Helper\Str: удаляет число из строки или уменьшает его, если оно уже определено #14599
  • Добавлено хранение и получение исключений в Phalcon\Domain\Payload* #14575
  • Добавлен массив опций в конструкторе Phalcon\Http\Cookie, а также методы getOptions и setOptions (см. #14627 — будущая работа) #14575
  • Добавлен массив опций в методе set() класса Phalcon\Http\Response\Cookies (см. #14627 — будущая работа) #14575

Изменено:

  • Phalcon\Mvc\Router\Annotations: изменено на converters вместо conversors #14532

  • Phalcon\Di::setRaw: изменено на Phalcon\Di::setService, чтобы больше соответствовать использованию метода #14555

  • Phalcon\Http\CookieInterface: изменено на Phalcon\Http\Cookie\CookieInterface, чтобы избежать путаницы #14602

  • Phalcon\Storage\Adapter*::getKeys: добавлен необязательный параметр $prefix, чтобы фильтровать ключи. Вернувшийся: #14575

  • Изменены даты, сообщаемые регистратором, для лучшей сортировки используется маска даты «с» #14575.

  • В конструкторах Phalcon\Storage\Adapter* требуется объект Phalcon\Storage\SerializerFactory #14575.

Исправлено:

  • Phalcon\Mvc\Model игнорирует внутренние сеттеры, если свойства имеют то же имя, что и сеттер #14538.

  • Исправлен Phalcon\Logger\Formatter\Line, чтобы не добавлять PHP_EOL в конце сообщения и добавлен в Phalcon\Logger\Adapter\Stream #14547.

  • Разрешено устанавливать префикс и время жизни с помощью параметров или использовать значения по умолчанию в Phalcon\Mvc\Model\MetaData\Apcu и Phalcon\Mvc\Model\MetaData\Redis #14549.

  • Получатели Phalcon\Storage\Adapter\AbstractAdapter, Phalcon\Storage\Adapter\AbstractInterface содержат значение по умолчанию.

  • Инициализация массива хранилища Phalcon\Storage\Adapter\Memory выполнена правильно #14551.

  • Захват уведомления при неправильном открытии потока в Phalcon\Storage\Adapter\Stream #14551.

  • Возвращаемое значение Phalcon\Security::getRandomBytes — int #14551.

  • По умолчанию Phalcon\Security использует рабочий коэффициент 10 #14551.

  • Методы Phalcon\Helper\Arr::validateAny и Phalcon\Helper\Arr::validateAll используют null в качестве значения по умолчанию для метода обратного вызова #14551.

  • Позволяют значения null в Phalcon\Escaper::escapeHtml и Phalcon\Escaper::escapeHtmlAttr #14553.

  • Правильно распознаёт псевдонимы полей и включает их в результирующий набор Phalcon\Mvc\Model::cloneResultMap #14488.

  • Обрабатывает 0 как непустое значение для allowNoEmpty в Phalcon\Http\Request::getQuery, Phalcon\Http\Request::getPut, Phalcon\Http\Request::getPost #14556.

  • Использует маршрут / для пустой строки в Phalcon\Router::handle() #14559.

  • Возвращает ключи, которые начинаются только с этого префикса адаптера в Phalcon\Storage\Adapter\Libmemcached::getKeys и Phalcon\Storage\Adapter\Redis::getKeys #14575.

  • Фабрики возвращают новый экземпляр при вызове newInstance, а не кэшированный из внутреннего сопоставителя #14584:

    • Phalcon/Annotations/AnnotationsFactory;
    • Phalcon/Cache/AdapterFactory;
    • Phalcon/Config/ConfigFactory;
    • Phalcon/Db/Adapter/PdoFactory;
    • Phalcon/Image/ImageFactory;
    • Phalcon/Logger/AdapterFactory;
    • Phalcon/Paginator/PaginatorFactory;
    • Phalcon/Storage/AdapterFactory;
    • Phalcon/Storage/SerializerFactory;
    • Phalcon/Translate/InterpolatorFactory;
    • Phalcon/Translate/TranslateFactory;
    • Phalcon/Validation/ValidatorFactory.
  • Приведение целых чисел при TYPE_BIGINTEGER, TYPE_INTEGER, TYPE_MEDIUMINTEGER, TYPE_SMALLINTEGER, TYPE_TINYINTEGER в Phalcon\Mvc\Model::cloneResultMap #14584.

  • Правильный интерфейс в Phalcon\Http\Response::setCookies #14602.

  • Правильное вычисление альфа-значения в Phalcon\Test\Unit\Image\Adapter\Gd::processBackground #14609.

  • Добавлен inTransaction() в Phalcon\Logger\Adapter\AdapterInterface #14575.

  • Устранена фатальная ошибка в Phalcon\Mvc\Model::cloneResultsetMap. Когда выполняется поиск в columnMap.

Исправлено:

  • Phalcon\Http\Request\FileInterface путём добавления getError, который отсутствовал.

Удалено:

  • компонент ACL Firewall из ветки 4.0.x.

Добавлено:

  • Поддержка PSR-13 ссылок и эволюционирующих ссылок.
  • Добавлены Phalcon\Html\Link\Link, Phalcon\Html\Link\LinkProvider, Phalcon\Html\Link\EvolvableLink, Phalcon\Html\Link\EvolvableLinkProvider и другие.
  • Методы Phalcon\Collection:getKeys и Phalcon\Collection\getValues для получения данных из коллекции.
  • Отношения has-one-through к Phalcon\Mvc\Model и Phalcon\Mvc\Model\Manager.
  • Метод Phalcon\HttpRequest::numFiles для возврата количества файлов в запросе.

Изменено:

  • Phalcon\Paginator\Adapter\Model.

Исправленное:

  • Возвращаемые типы методов Phalcon\Db\Adapter\PdoFactory::load(), Phalcon\Db\Adapter\PdoFactory::newInstance(), Phalcon\Logger\LoggerFactory::load() и других.
  • Использование метода getShared в Phalcon\Container:get.
  • Включение правильных экземпляров модели в метаданные сообщений в Phalcon\Mvc\Model.
  • Возврат общего экземпляра по умолчанию в методе __get() в Phalcon\Di\Injectable.
  • Неиспользование движка совместно с другими представлениями по умолчанию в Phalcon\Mvc\View::loadTemplateEngines().
  • Возвращение отношений «многие ко многим» в методах Phalcon\Mvc\Model\Manager::getRelations() и Phalcon\Mvc\Model\Manager::getRelationsBetween().
  • Разрешение транзакционного ведения журнала в Phalcon\Logger.
  • Применение функций serialize и unserialize вместо var_export в методах Phalcon\Annotations\Adapter\Stream::read и Phalcon\Annotations\Adapter\Stream::write.
  • Возвращение логического значения true при наличии файлов в методе Phalcon\Http\Request::hasFiles.
  • Правильное ведение журнала Syslog в Phalcon\Logger\Adapter\Syslog.
  • Также возвращение null, если поле идентификации отсутствует, в методах Phalcon\Mvc\Model\MetaDataInterface::getIdentityField и Phalcon\Mvc\Model\MetaData::getIdentityField. ###
  • Исправлено Phalcon\Storage\Serializer\Json для сериализации объектов, реализующих интерфейс JsonSerializable #14528.
  • Исправлено Phalcon\Collection, чтобы корректно возвращать объекты с одним уровнем вложенности, которые реализуют JsonSerializable #14528.
  • Исправлено Phalcon\Mvc\View, чтобы при использовании нескольких каталогов представлений включался только первый найденный экземпляр представления #12977.

Удалено:

  • Удален Phalcon\Logger\Formatter\Syslog — на самом деле он мало что делал #14523.

4.0.0-rc.2 (2019-10-26):

Добавлено:

  • Добавлен параметр cast в Phalcon\Collection::get и Phalcon\Helper\Arr::get, позволяющий разработчикам приводить возвращаемый результат к нужному типу #14465.
  • Добавлена функция jsonSerialize() в Phalcon\Paginator\Repository, реализующая JsonSerializable #14475.
  • Добавлены функции Phalcon\Logger::getLogLevel() и Phalcon\Logger::setLogLevel(), устанавливающие минимальный уровень журнала для регистратора #14480.

Изменено:

  • Все вызовы new <object> заменены на использование create_instance или create_instance_params для повышения производительности #14419.
  • Изменён текст исключения для Phalcon\Mvc\Model::getChangedFields и Phalcon\Mvc\Model::getUpdatedFields, когда не настроен снимок #14468.
  • Функция Phalcon\Mvc\Model::__callStatic() теперь выбрасывает исключение, если вызываемый метод неизвестен #14467.
  • Phalcon\Mvc\Model теперь принимает 0, null и "" как допустимые параметры для findByField(), findFirstByField() и countByField() #14467.

Исправлено:

  • Исправлена ошибка в Phalcon\Mvc\View\Engine\Volt\Compiler::parse() — исправлено распознавание синтаксиса для ключевого слова «set» #14288.
  • Исправлена ошибка в Phalcon\Mvc\View\Engine\Volt\Compiler::parse() — исправлено распознавание синтаксиса для ключевого слова «is» #11683.
  • В Phalcon\Cache\Adapter\AbstractAdapter используется AdapterInterface вместо несуществующего AbstractAdapter #14414.
  • В Phalcon\Cache\CacheFactory используется Psr\SimpleCache\CacheInterface вместо несуществующего Phalcon\Cache\CacheInterface #14414.
  • В Phalcon\Cli\Router добавлен отсутствующий Phalcon\Cli\Router\RouteInterface #14414.
  • В Phalcon\Dispatcher\AbstractDispatcher::setModelBinder() возвращается DispatcherInterface вместо несуществующего Dispatcher #14414.
  • В Phalcon\Firewall\Adapter\Acl и Phalcon\Firewall\Adapter\Annotations исправлены ошибки #14414.
  • В Phalcon\Filter\FilterFactory::newInstance() возвращается FilterInterface вместо несуществующего LocatorInterface #14414.
  • В Phalcon\Forms\Element\Select::addOption() и Phalcon\Forms\Element\Select::setOption() возвращается ElementInterface вместо несуществующего Element #14414.
  • В Phalcon\Forms\Manager::set() возвращается Manager вместо несуществующего FormManager #14414. Тайп хинтинг.

Убрали методы getEventsManager и setEventsManager из класса Phalcon\Di\Injectable для классов, которые используют методы или свойство eventsManager.

4.0.0-rc.1 (2019-09-23)

  • Добавлено:

    • добавлен опциональный логический параметр в метод Phalcon\Http\Request::getURI() (а также его интерфейс), который указывает, должен ли метод возвращать только путь без строки запроса.
  • Изменено:

    • изменено использование Phalcon\Helper\Str::reduceSlashes в Phalcon\Url::get для уменьшения количества слэшей;
    • метод Phalcon\Http\Headers::set() теперь возвращает self для более удобного интерфейса;
    • классы Phalcon\Assets\Manager, Phalcon\Cli\Router, Phalcon\Dispatcher\AbstractDispatcher, Phalcon\Html\Tag, Phalcon\Http\Cookie, Phalcon\Http\Response\Cookies, Phalcon\Mvc\Model, Phalcon\Mvc\Router, Phalcon\Security, Phalcon\Session\Manager теперь используют Phalcon\Di\AbstractDiAware для функциональности контейнера;
    • класс Phalcon\Security теперь позволяет использовать session и request в конструкторе;
    • класс Phalcon\Session\Manager теперь позволяет использовать router в конструкторе;
    • класс Phalcon\Flash\Direct теперь позволяет использовать escaper в конструкторе;
    • класс Phalcon\Flash\Session теперь позволяет использовать escaper в конструкторе;
    • Phalcon\Di\AbstractDIAware теперь называется Phalcon\Di\AbstractInjectionAware;
    • класс Phalcon\Di\Service теперь использует DI для инициализации строковых сервисов, когда это возможно;
    • Phalcon\Mvc\Router\Annotations теперь может обрабатывать шаблоны как префиксы;
    • значение по умолчанию для свойства routes класса Phalcon\Mvc\Router\Group — массив;
    • порядок параметров в методе Phalcon\Mvc\Model::assign изменён на $data, $whiteList, $dataColumnMap;
    • название метода Phalcon\Helper\Arr::arrayToObject изменено на toObject;
    • методы Phalcon\Events\EventsAwareInterface::getEventsManager и Phalcon\Di\Injectable::getEventsManager теперь могут возвращать null;
    • метод Phalcon\Logger\Adapter\AbstractAdapter::add теперь возвращает this;
    • сигнатуры методов Phalcon\Mvc\RouterInterface возвращают RouteInterface вместо void:
      • Phalcon\Mvc\RouterInterface::setDefaultAction;
      • Phalcon\Mvc\RouterInterface::setDefaultController;
      • Phalcon\Mvc\RouterInterface::setDefaultModule;
      • Phalcon\Mvc\RouterInterface::setDefaults;
    • типы возвращаемых значений для следующих интерфейсов изменены:
      • тип возвращаемого значения метода Phalcon\Mvc\Router\RouteInterface::setName изменён с void на RouteInterface;
      • тип возвращаемого значения метода Phalcon\Mvc\Router\RouteInterface::via изменён с void на RouteInterface;
      • тип возвращаемого значения метода __get интерфейса Phalcon\Session\ManagerInterface изменён с void на var.
  • Исправлено:

    • исправлена работа метода Phalcon\Helper\Str::includes для возврата правильного результата;
    • перемещён Phalcon\Logger в правильное пространство имён;
    • исправлен метод Phalcon\Session\Adapter\AbstractAdapter::read(), который теперь возвращает пустую строку, если метод Session/Adapter/*::get() возвращает null;
    • исключение Phalcon\Cache\Exception теперь расширяет Phalcon\Exception. Исправленные ошибки в версии 4.0.0-beta.2 (2019-08-18)
  • Исправлена ошибка Phalcon\Cache\InvalidArgumentException для расширения Phalcon\Exception.

  • Исправлена ошибка в Phalcon\Collection\Exception, чтобы расширить Phalcon\Exception.

  • Исправлен код в методе AbstractAdapter::initSerializer класса Phalcon\Storage\Adapter, теперь он генерирует исключение, если $this->serializerFactory и $this->serializer равны нулю (#14324).

  • Метод getAdapter() класса Phalcon\Storage\Adapter\Redis теперь предоставляет постоянный идентификатор для постоянного соединения Redis (#14334).

  • В классе Phalcon\Session\Adapter\Stream исправлена ошибка, из-за которой не переопределялся сконфигурированный путь сохранения (#14265).

  • Исправлена обработка имён файлов, содержащих символы, отличные от ASCII, в методе setFileToSend класса Phalcon\Http\Response (#13919).

  • Исправлено возвращаемое значение метода getSessionToken класса Phalcon\Security (#14346).

  • Методы message() интерфейсов Phalcon\Flash теперь возвращают string/null (#14349).

  • Исправлена ошибка в классе Phalcon\Paginator\Adapter\AbstractAdapter: теперь генерируется исключение, когда limit <= 0 (#14303).

  • Исправлена проблема с пустым псевдонимом таблицы в запросе в классе Phalcon\Mvc\Model\Query\Builder (#14366).

  • Класс Phalcon\Db\Adapter\PdoFactory теперь ссылается на правильный интерфейс (#14381).

  • Исправлена ошибка в классе Phalcon\Db\Dialect\Mysql: теперь указана схема в ограничении при создании таблицы (#14378).

  • Исправлены методы hasChanged() и getChangedFields() класса Phalcon\Mvc\Model, которые теперь корректно работают при включённой опции castOnHydrate (#14376).

  • При использовании метода create() класса Phalcan\Mvc\Model используется соединение для записи, что предотвращает отставание реплики (#14256).

Типы возвращаемых значений методов приведены в соответствие с объявлением интерфейса:

  • setDefaultAction класса Phalcon\Acl\Adapter\AbstractAdapter;
  • setEventsManager класса Phalcon\Application\AbstractApplication;
  • setAlwaysResolvingRole класса Phalcon\Firewall\Adapter\AbstractAdapter;
  • setEventsManager класса Phalcon\Firewall\Adapter\AbstractAdapter;
  • handle класса Phalcon\Mvc\Router;
  • getData и setData класса Phalcon\Storage\Serializer\AbstractSerializer;
  • forward класса Phalcon\Mvc\Dispatcher;
  • setConnectionService, setReadConnectionService и setWriteConnectionService класса Phalcon\Mvc\Model;
  • setDI класса Phalcon\Mvc\Model\Query\Builder;
  • handle класса Phalcon\Mvc\Router\Annotations;
  • set класса Phalcon\Session\Bag;
  • remove класса Phalcon\Session\Manager.

Удалённые элементы:

  • Плагин Phalcon — дубликат Injectable класса Phalcon\Di (#14359).
  • Коллекция Phalcon\Mvc и все связанные ссылки. Версия 4.0 не будет поддерживать mongo, так как она перереализуется для использования новейшего драйвера Mongo (см. #13697) (#14361).
  • registerHandler класса Phalcon\Session\Manager — дублирование функциональности (#14381).
  • Tag класса Phalcon\Html — дублирование функциональности (#14381).
  • Все конструкторы теперь имеют возвращаемый тип void (#14401). Данные сериализуемы и ложны, когда это не так.
  • Исправлены Phalcon\Storage\Adapter\Redis::delete() и Phalcon\Storage\Adapter\Redis::getKeys(): устаревшее предупреждение от php-redis #14281.
  • Исправлено Phalcon\Mvc\Model\ResultSet::Update(), чтобы вернуть правильный статус #14291.
  • Phalcon\Mvc\Collection::cancelOperation() теперь возвращает true при успешном выполнении.
  • Исправлен Phalcon\Application\AbstractApplication: интерфейсы для registerModules(), setDefaultModule() и setEventsManager() #14293.
  • Исправлено Phalcon\Paginator\Adapter\QueryBuilder: выбрасывает исключение при неправильном параметре #14299.

Удалено

  • Удалён мёртвый код, связанный с libsodium. Он никогда не вызывался в PHP >= 7.0.

4.0.0-beta.1 (2019-07-14)

Добавлено

  • Добавлен Phalcon\Factory\Exception для исключений фабрики. #13672.
  • Добавлен Phalcon\Filter\FilterInterface для пользовательских реализаций фильтров. #13672.
  • Добавлена Phalcon\Db\Adapter\PdoFactory: фабрика для создания адаптеров PDO. #13672.
  • Добавлена Phalcon\Image\ImageFactory: фабрика для создания фабрик изображений. #13672.
  • Добавлена Phalcon\Logger\LoggerFactory: фабрика для создания объектов логгера. #13672.
  • Добавлена Phalcon\Translate\InterpolatorFactory: фабрика для создания интерполяторов. #13672.
  • Добавлена Phalcon\Translate\TranslateFactory: фабрика для создания трансляторов. #13672.
  • Добавлен Phalcon\Domain\Payload для помощи в передаче сообщений между уровнями приложения. #14123.
  • Добавлена Phalcon\Domain\PayloadFactory: фабрика для создания полезных нагрузок. #14123.
  • Добавлен метод load в Phalcon\Http\Message\ServerRequestFactory для создания объекта ServerRequest из глобальных переменных. #14154.
  • Добавлено saslAuthData как опция к Phalcon\Storage\Adapter\Libmemcached для аутентификации с использованием SASL #13394.
  • Добавлена коллекция только для чтения Phalcon\Collection\ReadOnly. #14154.
  • В Phalcon\Helper\Arr добавлен метод whiteList(). #13954.
  • Добавлен метод newInstance() в Phalcon\Config\ConfigFactory: фабрика для создания конфигурационных объектов. #13201, #13768.
  • Добавлен тип данных Phalcon\Db\Enum. #14213.
  • Добавлен класс Phalcon\Dispatcher\Exception. #14213.

Изменено

  • Переименован Phalcon\Annotations\Adapter\Files в Phalcon\Annotations\Adapter\Stream. #13672.
  • Переименован Phalcon\Annotations\Adapter в Phalcon\Annotations\Adapter\AbstractAdapter. #13672.
  • Переименован интерфейс Phalcon\Annotations\AdapterInterface в Phalcon\Annotations\Adapter\AdapterInterface. #13672.
  • Переименована фабрика Phalcon\Annotations\Factory в Phalcon\Annotations\AnnotationsFactory. #13672.
  • Переименована фабрика Phalcon\Config\Factory в Phalcon\Config\ConfigFactory. #13672.
  • Переименован локатор фильтров Phalcon\Filter\FilterLocator в Phalcon\Filter\Filter. #13672.
  • Переименована фабрика локатора фильтров Phalcon\Filter\FilterLocatorFactory... orm.exception_on_failed_metadata_save установлен в значение true.

Исправлено:

Phalcon\Image\Adapter\Gd теперь выдаёт ошибку при использовании imagecolorat.

— Метод limit() класса Criteria из пространства имён Phalcon\Mvc\Model корректно обрабатывает отрицательные смещения.

— Класс Cli из пространства имён Phalcon\Di\FactoryDefault может использовать новую систему фильтров.

— Исправлена работа класса Router из пространства имён Phalcon\Mvc: теперь он анализирует и использует путь.

— Внесены исправления в различные области классов Adapter и Adapter\Memory из пространств имён Phalcon\Acl, включая комментарии, логику, методы denyComponentAccess и AdapterInterface. Добавлены тесты.

— Исправлено некорректное слияние числовых значений методом merge() класса Config из пространства имён Phalcon.

— Устранена проблема с разрешением свойства value в абстрактном классе File из пространства имён Phalcon\Validation\Validator\File.

— Исправлен класс Stream из пространства имён Phalcon\Storage\Adapter.

— Метод clear() класса Form из пространства имён Phalcon корректно очищает отдельные поля.

— Метод getValue() класса Form не вызывает метод getAttributes(), когда элемент назван «attributes».

— Преобразование массива в строку в методе delete() класса Model из пространства имён Phalcon работает корректно.

— Исключена ошибка сегментирования в методе callMethod() класса LazyLoader из пространства имён Phalcon\Mvc\Micro\LazyLoader, если обработчик содержит синтаксическую ошибку.

Удалённые изменения:

— Удалены классы Factory и FactoryInterface из пространства имён Phalcon, а также класс Session\Factory из того же пространства имён.

— Удалён класс Translate из пространства имён Phalcon.

— Из класса Column из пространства имён Phalcon\Db удалён метод getSchemaName(), так как он не является актуальным или устанавливаемым.

— Из метода __set_state() класса Config из пространства имён Phalcon удалены вызовы конструктора.

— Также удалены вызовы метода __set_state(): * для класса Reflection из пространства имён Phalcon\Annotations; * для интерфейсов ColumnInterface, IndexInterface, ReferenceInterface и классов Column, Index, Reference из пространства имён Phalcon\Db; * для интерфейса ServiceInterface и класса Service из пространства имён Phalcon\Di; * для интерфейса HeadersInterface и класса Headers из пространства имён Phalcon\Http\Response; * для класса Request из пространства имён Phalcon\Http\Request; * для класса Message из пространства имён Phalcon\Messages.

4.0.0-alpha.5 (2019-05-18)

Добавленные изменения:

— Методы setDescription() и getDescription() добавлены в класс Route из пространства имён Phalcon\Cli\Router: первый устанавливает описание маршрута, второй возвращает его.

— Добавлен метод getVersion() в класс Gd из пространства имён Phalcon\Image\Adapter.

— В класс Arr из пространства имён Helper добавлены методы chunk(), first(), firstKey(), flatten(), group(), isUnique(), last(), lastKey(), order(), pluck(), sliceLeft(), sliceRight(), split(), tail(), validateAll(), validateAny().

— В класс Str из пространства имён Helper добавлены методы camelize(), concat(), countVowels(), decapitalize(), dynamic(), endsWith(), firstStringBetween(), includes(), increment(), isAnagram(), isLower(), isPalindrome(), isUpper(), lower(), random(), reduceSlashes(), startsWith(), uncamelize(), underscore(), upper(). Phalcon\Mvc\Model\Query\BuilderInterface::getModels() возвращает модели, участвующие в запросе.

  • В Phalcon\Mvc\Router\Group и его интерфейс добавлены методы addConnect(), addPurge() и addTrace().

  • Добавлен метод throwRollbackException() в класс Phalcon\Mvc\Model\Transaction, который позволяет транзакции генерировать исключение или нет при откате.

  • Представлен класс Phalcon\Cache, реализующий PSR-16. Введены:

    • Phalcon\Cache\Adapter:
      • Apcu,
      • Libmemcached,
      • Memory,
      • Redis,
      • Stream;
    • фабрика для создания адаптеров Phalcon\Cache\AdapterFactory;
    • фабрика для создания объектов кэша Phalcon\Cache\CacheFactory.
  • Для обеспечения наличия завершающего слэша в пути добавлен метод Str::dirSeparator().

  • Методы Phalcon\Assets\Manager:addCss, Phalкон\Assets\Manager::addJs, Phalcon\Assets\Collection:addCss и Phalcon\Assets\Collection:addJs принимают два дополнительных параметра — version и autoVersion.

  • Установлена настройка orm.resultset_prefetch_records, которая указывает ORM (набору результатов) предварительно выбирать строки, если возвращаемые строки меньше или равны настройке.

  • Метод toString() добавлен в Phalcon\Mvc\View для возврата визуализированного представления в виде строки.

  • Phalcon\Helper\Arr::arrayToObject() преобразовывает массивы в объекты.

  • Добавлен компонент Phalcon\Firewall.

  • Опция orm.cast_last_insert_id_to_int для Phalcon\Mvc\Model::setup() (castLastInsertIdToInt) используется для преобразования lastInsertId в методе save() в тип int.

  • Коллекция классов Attributes представлена как новый компонент Html.

  • Классы Attributes добавлены в Phalcon\Forms\Form.

Изменения

  • Рефакторинг Phalcon\Events\Manager для использования только SplPriorityQueue для хранения событий.

  • Интерфейс Phalcon\Translate\InterpolatorInterface теперь принимает только массивы заполнителей.

  • Методам forward() и setParams() класса Phalcon\Dispatcher требуется параметр массива.

  • Исключения генерируются вместо подавления ошибок для маршрутов CLI с неправильными именами классов (например, MyApp\Tasks\).

  • Проведён рефакторинг классов Phalcon\Mvc\Collection\Behavior\SoftDelete и Phalcon\Mvc\Model\Behavior\SoftDelete.

  • Все методы модели, расширяющие функциональность Model Manager, теперь являются final.

  • Класс Phalcon\Text вызывает методы из Phalcon\Helper\Str.

  • Настройка каталога представлений больше не требует завершающего слэша при использовании Simple View.

  • Свойство viewParams класса Simple всегда является массивом.

  • Свойство params метода render() класса Simple теперь всегда массив.

  • Метод limit() интерфейса CriteriaInterface принимает offset как целое число.

  • Изменён метод getModelSource() класса Manager, чтобы использовать setModelSource() внутри вместо установки источника вручную.

  • Свойство options всегда является массивом в классе Relation. Фалканк: изменения и доработки

  • Метод Phalcon\Logger\Adapter\AbstractAdapter::process() теперь абстрактный.

  • Изменилось объявление типа возвращаемого значения для метода Phalcon\Mvc\ModelInterface::getRelated() (не всегда ResultsetInterface).

  • В классе Phalcon\Mvc\Model отношения, полученные с помощью магических методов, теперь обрабатываются методом Phalcon\Mvc\Model::getRelated() внутри.

  • У метода Phalcon\Mvc\Model\Transaction::rollback() по умолчанию не генерируется исключение транзакции.

  • Пространство имён Phalcon\Cache и соответствующие классы были изменены для обработки хранения данных в различных хранилищах. Представлены:

    • Phalcon\Storage\Serializer, предлагающий классы, реализующие интерфейс \Serializable.
      • Phalcon\Storage\Serializer\Base64.
      • Phalcan\Storage\Serializer\Igbinary.
      • Phalcon\Storage\Serializer\Json.
      • Phalcon\Storage\Serializer\Msgpack.
      • Phalcon\Storage\Serializer\None.
      • Phalcon\Storage\Serializer\Php.
      • Phalcon\Storage\SerializerInterface.
    • Phalcon\Storage\SerializerFactory: фабрика для создания сериализаторов.
    • Phalcon\Storage\Adapter, предлагающий классы, которые реализуют интерфейс Phalcon\Storage\Adapter\AdapterInterface.
      • Phalcon\Storage\Adapter\Apcu.
      • Phalcon\Storage\Adapter\Libmemcached.
      • Phalcon\Storage\Adapter\Memory.
      • Phalcon\Storage\Adapter\Redis.
      • Phalcon\Storage\Adapter\Stream.
    • Phalcon\Storage\AdapterFactory: фабрика для создания адаптеров.
  • Для метода Phalcon\Mvc\Model\Query больше не вызывается numRows при выборе данных.

  • Параметры привязки и типы привязки теперь всегда являются массивами в Phalcon\Mvc\Model\Query.

  • Метод Phalcon\Validation\Validator\Url теперь работает с переданными параметрами (FILTER_FLAG_PATH_REQUIRED, FILTER_FLAG_QUERY_REQUIRED).

  • Конструктор Phalcon\Mvc\Model\Query\Builder теперь будет опускать смещения, если они установлены равными 0.

  • Параметр службы __construct() для Phalcon\Mvc\Model\Transaction должен быть строкой или опущен.

  • Параметры службы __construct() для Phalcon\Logger\Formatter\Line должны быть строкой или опущены.

  • Параметры службы __construct() для Phalcon\Logger\Formatter\Json должны быть строкой или опущены.

  • Удалён устаревший код из Phalcon\Forms\Form::getMessages().

  • Загрузка модуля (MVC или CLI) теперь вызывает исключение, если путь не существует, независимо от того, загружен класс или нет.

  • Изменения в Phalcon\Crypt: теперь принимает тег аутентификации, длину тега и данные для режимов «gcm» и «ccm». Удалены небезопасные алгоритмы с режимами: des*, rc2*, rc4*, des*, ecb.

  • Изменение в Phalcon\Mvc\Model: после успешной вставки копируются неустановленные значения по умолчанию из метаданных в модель.

  • Изменение в Phalcon\Mvc\Model::findFirst(): теперь возвращает null. Phalcon\Mvc\Model::getRelated() для отношений один к одному также возвращает null.

Исправлено

  • Исправлен метод Mvc\Collection::isInitialized(), теперь он работает должным образом.

  • Обновлены докблоки, чтобы показать, что мы больше не можем присваивать свойства через save() в моделях (согласно #12317).

  • Исправление методов findFirst в Mvc\Model и Mvc\ModelInterface: теперь возвращают ModelInterface или bool.

  • Phalcon\Acl\Adapter\Memory::dropComponentAccess() теперь правильно сбрасывает значения.

  • Снова работают параметры Volt «separator» и «extension».

  • Поле GROUP BY конструктора запросов теперь всегда является массивом. # 13962

  • Переименовали Phalcon\Paginator\Adapter::getPaginate() в paginate() в документации/тестах (первоначально переименовано в 4.0.0-alpha.1). #13973

  • Исправили сообщение об исключении в Phalcon\Security::computeHmac(), удалив "%s" из вывода.

  • Phalcon\Mvc\Model\Relation::isForeignKey() теперь возвращает false, если для параметра foreignKey установлено значение false.

  • Исправлена ошибка, из-за которой Phalcon\Flash\Session::output() вызывала исключение при отсутствии сообщений, сохранённых в сессии. #14023

  • Исправлены ошибки в работе Phalcon\Config\Adapter\Ini(), связанные с обработкой массивов в файлах .ini. #14025

  • Исправлены проблемы с неиспользуемыми связями в Phalcon\Mvc\Model, теперь возвращаются свежие записи. #13531

  • Функция Phalcon\Mvc\Model::isRelationshipLoaded() теперь работает для всех типов связей. #14035

  • Исправлен код функции Phalcon\Mvc\Model::writeAttribute(), чтобы правильно обрабатывать ассоциативные массивы. #14021

  • Исправлены функции Phalcon\Html\Tag::appendTitle() и Phalcon\Html\Tag::prependTitle(), чтобы они соответствовали Phalcon\Tag. #14039

  • Исправлена работа функции Phalcon\Validation::validate() с параметром cancelOnFail. Валидатор будет проверять все элементы и прекратит обработку валидаторов для каждого элемента, если присутствует cancelOnFail. #13149

  • Исправлена функция Phalcon\Mvc\Models\Manager::getRelations(), которая теперь также возвращает отношения «многие ко многим». #10839

  • Исправлена функция Phalcon\Validation\Validator\Numericality::validate(), которая теперь может анализировать числа, отличные от локали en. #13843

  • Исправлена проблема с функцией Phalcon\Mvc\Model::save(), возникавшая после успешной вставки, когда поля по умолчанию в базе данных не обновлялись. #13781

Удалено

  • Удалено свойство arrayHelpers из компилятора Volt. #13925

  • Удалён устаревший код (PHP <5.5) из адаптера изображений GD.

  • Отменена поддержка заголовка HTTP_CONTENT_TYPE (ошибка в PHP 5). #14013

  • Удалена поддержка адаптера Mvc\Model\MetaData\Session (больше не поддерживается). #13439

  • Удалены классы кэша Phalcon\Cache, Phalcon\Cache\Backend, Phalcon\Cache\BackendInterface, Phalcon\Cache\Backend\Apcu, Phalcon\Cache\Backend\Factory, Phalcon\Cache\Backend\File, Phalcon\Cache\Backend\Libmemcached, Phalcon\Cache\Backend\Memory, Phalcon\Cache\Backend\Mongo, Phalcon\Cache\Backend\Redis, Phalcon\Cache\Frontend, Phalcon\Cache\Frontend\Base64, Phalcon\Cache\Frontend\Data, Phalcon\Cache\Frontend\Factory, Phalcon\Cache\Frontend\Igbinary, Phalcon\Cache\Frontend\Json, Phalcon\Cache\Frontend\Msgpack, Phalcon\Cache\Frontend\None, Phalcon\Cache\Frontend\Output, Phalcon\Cache\FrontendInterface, Phalcon\Cache\Multiple. #13439

  • Кэширование из представления (simple/view) удалено:

    • Phalcon\Mvc\View::cache();
    • Phalcon\Mvc\View::getCache();
    • Phalcon\Mvc\View\Simple::cache();
    • Phalcon\Mvc\View\Simple::getCache(). #13439
  • Удалён множественный адаптер кэша Phalcon\Cache\Multiple. #13439

  • Старые классы кэша удалены:

    • Phalcon\Cache\Backend;
    • Phalcon\Cache\BackendInterface;
    • Phalcon\Cache\Backend\Apcu;
    • Phalcon\Cache\Backend\Factory;
    • Phalcon\Cache\Backend\File;
    • Phalcon\Cache\Backend\Libmemcached;
    • Phalcon\Cache\Backend\Memory;
    • Phalcon\Cache\Backend\Mongo;
    • Phalcon\Cache\Backend\Redis;
    • Phalcon\Cache\Frontend;
    • Phalcon\Cache\FrontendInterface. Фалкон\Кэш\Фронтенд\Бэйз64
      — Фалкон\Кэш\Фронтенд\Дата,
      — Фалкон\Кэш\Фронтенд\Фабрика,
      — Фалкон\Кэш\Фронтенд\ИГбинари,
      — Фалкон\Кэш\Фронтенд\Джейсон,
      — Фалкон\Кэш\Фронтенд\Мсгпэк,
      — Фалкон\Кэш\Фронтенд\Ноун,
      — Фалкон\Кэш\Фронтенд\Оутпут.

Удалён псевдоним пространства имён модели
Фалкон\Модель\Менеджер::регистрНэймспейсЭлайас(),
Фалкон\Модель\Менеджер::гетНэймспейсЭлайас(),
Фалкон\Модель\Менеджер::гентНэймспейсАлис(),
Фалкон\Модель\МенефиндИнтерфейс::гетНэймспейсЭлайас(),
Фалкон\Модель\МенефиндИнтерфейс::регистрНэймспейсЭлайас().

4.0.0-alpha.4 (2019-03-31)

Добавлено

  • разделитель и ограждение — опции для конструктора Фалкон\Трэнслэйт\Эдждэктор\Csv;
  • добавлены следующие элементы в пространство имён *Фалкон\Http\Мессидж* для реализации PSR-7 и PSR-17:
    • Фалкон\Http\Мессидж\Риквест,
    • Фалкон\Http\Мессидж\РиквестФактори,
    • Фалкон\Http\Мессидж\Репонс,
    • Фалкон\Http\Мессидж\РепонсФактори,
    • Фалкон\Http\Мессидж\СерверРиквест,
    • Фалкон\Http\Мессидж\СерверРиквестФактори,
    • Фалкон\Http\Мессидж\Стрим,
    • Фалкон\Http\Мессидж\СтримФактори,
    • Фалкон\Http\Мессидж\АплудФайл,
    • Фалкон\Http\Мессидж\АплудФайлФактори,
    • Фалкон\Http\Мессидж\Ури,
    • Фалкон\Http\Мессидж\УриФактори,
    • Фалкон\Http\Мессидж\Стрим\Инпут,
    • Фалкон\Http\Мессидж\Стрим\Мемори,
    • Фалкон\Http\Мессидж\Стрим\Темп.

Реализация предлагает совместимые компоненты PSR-7/PSR-17 в другом пространстве имён, чтобы можно было использовать обе версии Риквеста и Репонса.

  • добавлено пространство имён *Фалкон\Хэлпер* с функциями для удобной работы с массивами, числами и т. д.:

    • Фалкон\Хэлпер\Арр,
    • Фалкон\Хэлпер\Нумбер.
  • добавлено Фалкон\Коллекшн — объект, реализующий ArrayAccess, Countable, IteratorAggregate, JsonSerializable, Сериализабл, который позволяет легко работать с коллекциями данных, такими как массивы, суперглобальные переменные и т. п.

  • добавлен Фалкон\Коллекшн в Фалкон\Http\Мессидж\Риквест и Фалкон\Http\Мессидж\СерверРиквест для обработки заголовков.

Исправлено

  • исправлен Фалкан\Имэдж\Эдждэктер\Имагик::_ватермарк, сэтИмэджАльфа() заполняет альфа-канал чёрным перед выполнением (эвалюэйтИмэдж()). Улучшена совместимость с Имагиком.
  • исправлена жёсткая ссылка Ассетс Менеджер на \Фалкон\Таг, следует использовать DI.
  • исправлено Аннотионс\Ридер::парс всегда возвращает массив.

Изменено

  • реорганизован Фалкон\Реестр для использования класса Фалкон\Коллекшн.
  • реорганизован Фалкон\Сессион\Баг для использования класса Фалкон\Коллекшн.
  • почти все файлы проекта были реорганизованы, чтобы соответствовать новому стандарту кодирования для Фалкона. Некоторые файлы намеренно оставлены без изменений, поскольку они будут заменены позже.

Удалено

  • удалён Фалкон\Сессион\БагИнтерфэйс.

4.0.0-alpha.3 (2019-02-31)

Добавленное

  • события вью:афтерКомпиле и вью:бифорКомпиле для компилятора Вольт;
  • добавлена поддержка слияния массивов в Фалкон\Конфиг::мэрдж;
  • добавлен метод сэтБлэклист в Фалкон\Деб для того, чтобы разработчик мог «занести в чёрный список» определённые переменные из суперглобальных переменных $_REQUEST или $_SERVER, которые не должны отображаться на экране. Фиксированные проблемы:
  • Исправлены несоответствия параметров маршрутизатора и контроллера (camelize и т. д.) (#13555).
  • Исправлен «invalid opcode» в phalcon.so при использовании docker (#13143).
  • Исправлено сохранение связанных данных модели в Phalcon\Messages\Message. Теперь метод называется setMetadata и может использоваться для хранения любых метаданных от любого компонента, который генерирует сообщения (#13811).
  • Исправлена ошибка, когда Dispatcher вызывал camelize дважды и выдавал неверные результаты (#12829).
  • Исправлено поведение Phalcon\Mvc\Model:findFirst, теперь он выбрасывает исключение, если переданный параметр для первичного ключа не является массивом, строкой или числом (#13336).
  • Добавлен Phalcon\Http\ResponseInterface::isSent, который уже использовался (#13836).

Изменения:

  • Изменены замыкания сервисов механизма представления, чтобы они больше не получали инжектор зависимостей в качестве второго параметра. Вместо этого используйте $this для DI (#11926).
  • Переименован Phalcon\Acl\Subject в Phalcon\Acl\Component (#13808).
  • Переименован интерфейс Phalcon\Acl\SubjectInterface в интерфейс Phalcon\Acl\ComponentInterface (#13808).
  • Переименовано Phalcon\Acl\SubjectAware в Phalcon\Acl\ComponentAware (#13808).
  • Переименована операция Phalcon\Acl\Operation в роль Phalcon\Acl\Role (#13808).
  • Переименован интерфейс операции Phalcon\Acl\OperationInterface в интерфейс роли Phalcon\Acl\RoleInterface (#13808).
  • Операция Phalcon\Acl\OperationAware переименована в роль Phalcon\Acl\RoleAware (#13808).
  • Метод addOperation интерфейса адаптера Phalcon\Acl\AdapterInterface переименован в метод addRole (#13808).
  • Метод isOperation интерфейса адаптера Phalcon\Acl\AdapterInterface переименован в isRole (#13808).
  • Метод isSubject интерфейса адаптера Phalcon\Acl\AdapterInterface переименован в isComponent (#13808).
  • Метод addSubject интерфейса адаптера Phalcon\Acl\AdapterInterface переименован в addComponent (#13808).
  • Метод addSubjectAccess интерфейса адаптера Phalcon\Acl\AdapterInterface переименован в addComponentAccess (#13808).
  • Метод dropSubjectAccess интерфейса адаптера Phalcon\Acl\AdapterInterface переименован в dropComponentAccess (#13808).
  • Метод getActiveOperation интерфейса адаптера Phalcon\Acl\AdapterInterface переименован в getActiveRole (#13808).
  • Метод getActiveSubject интерфейса адаптера Phalcon\Acl\AdapterInterface переименован в getActiveComponent (#13808).
  • Метод getOperationss интерфейса адаптера Phalcon\Acl\AdapterInterface переименован в getRoles (#13808).
  • Метод getSubjects интерфейса адаптера Phalcon\Acl\AdapterInterface переименован в getComponents (#13808).
  • Метод getActiveOperation адаптера Phalcon\Acl\Adapter переименован в getActiveRole (#13808).
  • Метод getActiveSubject адаптера Phalcon\Acl\Adapter переименован в getActiveComponent (#13808).
  • Метод addOperation адаптера памяти Phalcon\Acl\Adapter\Memory переименован в addRole (#13808). Переименовано:
  • Phalcon\Acl\Adapter\Memory::isOperation в Phalcon\Acl\Adapter\Memory::isRole;
  • Phalcon\Acl\Adapter\Memory::isSubject в Phalcon\Acl\Adapter\Memory::isComponent;
  • Phalcon\Acl\Adapter\Memory::addSubject в Phalcon\Acl\Adapter\Memory::addComponent;
  • Phalcon\Acl\Adapter\Memory::addSubjectAccess в Phalcon\Acl\Adapter\Memory::addComponentAccess;
  • Phalcon\Acl\Adapter\Memory::dropSubjectAccess в Phalcon\Acl\Adapter\Memory::dropComponentAccess;
  • Phalcon\Acl\Adapter\Memory::getOperationss в Phalcon\Acl\Adapter\Memory::getRoles;
  • Phalcon\Acl\Adapter\Memory::getSubjects в Phalcon\Acl\Adapter\Memory::getComponents;
  • Phalcon\Mvc\Url в Phalcon\Url;
  • Phalcon\Mvc\UrlInterface в Phalcon\UrlInterface;
  • Phalcon\Mvc\Url\Exception в Phalcon\Url\Exception.

Удалено:

  • CSS/JS minifiers. Это влияет на классы Assets\Filter. На данный момент классы возвращают исходный контент;
  • пространство имён Phalcon\Queue и тесты. Beanstalkd близок к тому, чтобы быть заброшенным. Новый компонент/адаптер очереди будет реализован для удовлетворения потребностей сообщества в очередях;

Добавлено:

  • метод notFound() в Phalcon\Translate\Adapter\NativeArray, который возвращает запрошенный ключ, если он не найден. Метод можно переопределить при расширении класса, возвращая то, что нужно разработчику;
  • классы Phalcon\Service\Locator, Phalcon\Service\LocatorInterface и Phalcon\Service\LocatorFactoryInterface для создания локаторов служб и фабрик в приложении;
  • функция Phalcon\Http\Request::setParameterFilters. Она позволяет предварительно установить фильтры для конкретного ввода (например, id, name и т. д.). Затем вы можете получить автоматически очищенные значения с помощью Phalcon\Http\Request::getFilteredQuery, Phalcon\Http\Request::getFilteredPost и Phalcon\Http\Request::getFilteredPut.

Исправлено:

  • ошибка Phalcon\Mvc\Micro::handle, из-за которой ответ возвращался неправильно;

  • ошибки в классах Phalcon\Cache\Backend\Libmemcached и Phalcon\Session\Manager;

  • ошибка, из-за которой класс Phalcon\Cli\Console не был найден при обработке одного и того же модуля дважды;

  • ошибка в классе Phalcon\Cache\Backend\Libmemcached, из-за которой «пустые» значения возвращались как null, когда они могли быть 0, false или пустой строкой. Следующие теги: select и select_static (#13459).

  • Исправлено: Phalcon\Tag\Select не рендерился без параметров.

Изменено

  • Изменён Phalcon\Tag::renderTitle() и параметры, такие как Phalcon\Tag::getTitle() (#13706).
  • Изменён Phalcon\Html\Tag::renderTitle() и параметры, такие как Phalcon\Html\Tag::getTitle() (#13706).
  • Изменена функция Phalcon\Version::get(), чтобы следовать семантическому версионированию (semantic versioning) (#13720).
  • В Phalcon\Translate\Adapter\NativeArray добавлен новый параметр в конструктор triggerError. Это вызовет ошибку, если ключ не найден (#13007).
  • По умолчанию действие Phalcon\Acl\Memory изменено на Acl::DENY вместо Acl::ALLOW (#13758).
  • Phalcon\Mvc\User\Plugin заменён на Phalcon\Plugin (#13749).
  • Phalcon\Exception реализует интерфейс \Throwable (#13750).
  • У Phalcon\Http\Cookie свойство httpOnly больше не инициализируется значением (#13464).
  • Действие по умолчанию для отсутствия аргументов Phalcon\Acl\Memory изменено на Acl::DENY вместо Acl::ALLOW (#13769).
  • Обработка Phalcon\Config\Adapter\Grouped::_construct(), когда конфигурационный файл поступает в виде строки из параметра arrayConfig, автоматически пытается определить адаптер из расширения файла, если параметр defaultAdapter установлен в пустую строку. Такое поведение аналогично Phalcon\Config\Factory::load() (#13762).

Удалено

  • Удалены Phalcon\Mvc\User\Component, Phalcon\Mvc\User\Module и Phalcon\Mvc\User\Plugin (#13749).

4.0.0-alpha1 (2018-12-25)

Добавлено

  • Добавлен CODE_OF_CONDUCT для проекта.
  • Добавлена функция Phalcon\Db\Adapter\Pdo\Postgresql::describeReferences для реализации пользовательских правил Postgresql (#438).
  • Добавлена функция convert в Phalcon\Mvc\Router\RouteInterface::convert, так что вызов Phalcon\Mvc\Router\Group::add возвращает экземпляр с методом convert (#13380).
  • Добавлена функция getModelsMetaData в Phalcon\Mvc\ModelInterface (#13070).
  • Добавлен класс Phalcon\Validation\Validator\Ip для проверки полей IP-адресов. Он позволяет проверять поле, выбирая IPv4 или IPv6, разрешая частные или зарезервированные диапазоны и пустые значения при необходимости (#13574).
  • Для обработки всех сообщений приложения (модель/проверка) добавлены Phalcon\Messages\MessageInterface, Phalcon\Messages\Message, Phalcon\Messages\Exception и Phalcon\Messages\Messages (#13114).
  • В Dispatcher добавлены функции getHandlerSuffix(), setHandlerSuffix(), а в CLI Dispatcher — getTaskSuffix(), setTaskSuffix() (#13468).
  • Возможность установить собственный шаблон для Flash Messenger (#13445).
  • В Sqlite диалект добавлена возможность переопределить метод из базового диалекта с помощью forUpdate (#13539).
  • Mysql адаптер поддерживает TYPE_ENUM (#11368).
  • Mysql адаптер поддерживает больше типов столбцов. Адаптер поддерживает TYPE_BIGINTEGER, TYPE_BIT, TYPE_BLOB, TYPE_BOOLEAN, TYPE_CHAR, TYPE_DATE. TYPE_DATETIME, TYPE_DECIMAL, TYPE_DOUBLE, TYPE_ENUM, TYPE_FLOAT, TYPE_INTEGER, TYPE_JSON, TYPE_JSONB, TYPE_LONGBLOB, TYPE_LONGTEXT, TYPE_MEDIUMBLOB, TYPE_MEDIUMINTEGER, TYPE_MEDIUMTEXT, TYPE_SMALLINTEGER, TYPE_TEXT, TYPE_TIME, TYPE_TIMESTAMP, TYPE_TINYBLOB, TYPE_TINYINTEGER, TYPE_TINYTEXT, TYPE_VARCHAR

  • Добавлена поддержка метода Phalcon\Acl\Adapter\Memory::addRole, который может работать с несколькими унаследованными ролями.
  • Добавлен метод renderTitle() в класс Phalcon\Tag, который отображает заголовок, заключённый в теги <title>.
  • В класс Phalcon\Http\Response добавлен метод hasHeader(), который позволяет проверить наличие заголовка.
  • Глобальная настройка orm.case_insensitive_column_map добавлена для поиска значений в карте столбцов без учёта регистра. Эту настройку также можно включить, установив ключ caseInsensitiveColumnMap в методе \Phalcon\Mvc\Model::setup().
  • Возможность использовать интерфейс FrontendInterface для сериализации модели и набора результатов — необходимо внедрить объект serializer, реализующий интерфейс FrontendInterface, в DI.
  • Метод offset добавлен в интерфейс Phalcon\Mvc\Model\Query\BuilderInterface.
  • Метод getCookies добавлен в класс Phalcon\Http\Response\Cookies.
  • Метод isRelationshipLoaded добавлен в класс Phalcon\Mvc\Model для проверки загрузки отношения.
  • Предоставлен простой способ работы с Phalcon и запуска тестов локально с использованием nanobox.io.
  • Ответственный обработчик добавлен в класс Phalcon\Mvc\Micro с помощью метода setResponseHandler. Это позволяет использовать пользовательский обработчик ответов.
  • Два новых события response::beforeSendHeaders и response::afterSendHeaders добавлены в класс Phalcon\Http\Response.
  • Для текущего токена добавлен фиксатор, который используется при вызовах Phalcon\Security::getToken, чтобы токен, используемый для проверок, не менялся.
  • Класс Phalcon\Html\Tag добавлен как компонент, создающий HTML-элементы. Этот компонент заменит Phalcon\Tag в будущей версии и не использует статические вызовы методов.
  • Интерфейс Phalcon\Paginator\RepositoryInterface добавлен для сохранения текущего состояния пагинатора и установки псевдонимов для свойств репозитория.
  • Поддержка привязки данных добавлена в класс Phalcon\Mvc\Model\Query\Builder. У класса есть те же методы, что и у Phalcon\Mvc\Model\Query: getBindParams, setBindParams, getBindTypes и setBindTypes.
  • Компонент Phalcan\Html\Breadcrumbs, создающий код HTML для хлебных крошек, добавлен.
  • Больше методов добавлено в интерфейсы:
    • Phalcon\Cli\Router\RouteInterface: delimiter, getDelimiter.
    • Phalcon\Cli\DispatcherInterface: setOptions, getOptions.
    • Phalcon\Db\AdapterInterface: fetchColumn, insertAsDict, updateAsDict.
    • Phalcon\Db\DialectInterface: —. registerCustomFunction, getCustomFunctions, getSqlExpression
      — Phalcon\Di\ServiceInterface — getParameter, isResolved
      — Phalcon\Events\ManagerInterface — hasListeners
      — Phalcon\Mvc\Model\Query\BuilderInterface — distinct, getDistinct, forUpdate, offset, getOffset
      — Phalcon\Mvc\Model\Transaction\ManagerInterface — setDbService, getDbService, setRollbackPendent, getRollbackPendent
      — Phalcon\Mvc\Model\CriteriaInterface — distinct, leftJoin, innerJoin, rightJoin, groupBy, having, cache, getColumns, getGroupBy, getHaving
      — Phalcon\Mvc\Model\ManagerInterface — isVisibleModelProperty, keepSnapshots, isKeepingSnapshots, useDynamicUpdate, isUsingDynamicUpdate, addHasManyToMany, existsHasManyToMany, getRelationRecords, getHasManyToMany
      — Phalcon\Mvc\Model\MessageInterface — setModel, getModel, setCode, getCode
      — Phalcon\Mvc\Model\QueryInterface — getSingleResult, setBindParams, getBindParams, setBindTypes, setSharedLock, getBindTypes, getSql
      — Phalcon\Mvc\Model\RelationInterface — getParams
      — Phalcon\Mvc\Model\ResultsetInterface — setHydrateMode, getHydrateMode, getMessages, update, delete, filter
      — Phalcon\Mvc\ModelInterface — getModelsMetaData
      — Phalcon\Session\AdapterInterface — setId, status
      — Phalcon\Validation\MessageInteraface — getCode, setCode
      — Phalcon\CryptInterface — setPadding
      — Phalcon\Mvc\RouterInterface — attach

Изменения:

  • Теперь Phalcon требует установки и включения расширения PSR PHP.
  • При настройке параметров prefix и statsKey метод Phalcon\Cache\Backend\Redis::queryKeys больше не возвращает префиксные ключи, теперь он возвращает оригинальные ключи без префикса.
  • Phalcon\Mvc\Application, Phalcon\Mvc\Micro и Phalcon\Mvc\Router теперь должны иметь URI для обработки.
  • Ответные заголовки и файлы cookie больше не отправляются преждевременно.
  • Нельзя присваивать данные моделям во время их сохранения.
  • Метод Phalcon\Mvc\Model\Manager::load больше не использует повторно уже инициализированные модели.
  • Изменён метод Phalcon\Db\Dialect\Postgresql::describeReferences для генерации корректного SQL, добавлены ограничения «on update» и «on delete».
  • Исключения заменены на Throwable.
  • Удалён третий параметр $with из метода Phalcon\Mvc\Model\Query\Builder::addFrom.
  • Метод Phalcon\Forms\Form::clear больше не вызывает метод Phalcon\Forms\Element::clear, вместо этого он очищает/устанавливает значение по умолчанию самостоятельно, а метод Phalcon\Forms\Element::clear теперь вызывает Phalcon\Forms\Form::clear, если он назначен форме, в противном случае он просто очищает себя.
  • Метод Phalcon\Forms\Form::getValue теперь также пытается получить значение, вызывая Tag::getValue или метод элемента getDefault перед возвратом null, а Phalcon\Forms\Element::getValue вызывает Tag::getDefault только в том случае, если элемент не добавлен в форму.
  • В Phalcon\Mvc\Model используется... В запросе представлен текст технической направленности из области разработки и тестирования программного обеспечения. Основной язык текста запроса — английский.

Объект Phalcon\Messages\Message для своих сообщений #13114.

  • Изменён Phalcon\Validation\* для использования объекта Phalcon\Messages\Message.

  • Коллекции теперь используют компонент Validation #12376.

  • Сделан необязательным специальный ключ (_PHCR) для адаптера Phalcon\Cache\Backend\Redis #10905, #11608.

  • Рефакторинг Phalcon\Db\Adapter\Pdo::query для использования PDO prepare и execute. Phalcon\Db\Adapter::fetchAll для использования PDO fetchAll #13515.

  • Исправлен \Phalcon\Http\Response::setFileToSend, имя файла в конце _ #13496.

  • Изменён метод Phalcon\Tag::getTitle. Теперь он возвращает только текст. Для добавления или удаления текста можно использовать логические значения prepend и append.

  • Изменён конструктор Phalcon\Di\Service. Теперь он не принимает имя сервиса.

  • Изменена функция Phalon\Tag::textArea для предотвращения XSS-инъекций с помощью htmlspecialchars.

  • Изменено использование Phalon\Cache\Backend\*::get. Теперь используются только положительные числа для lifetime 11759.

  • Изменён компонент Phalcon\Logger для соответствия стандарту PSR-3. Компонент был переписан для использования адаптеров, которые позволяют вести журнал в разных областях.

  • Пространство имён Phalcon\Assets\Resource переименовано в Phalcon\Assets\Asset #12082.

  • Переименован Phalcon\Assets\Resource в Phalcon\Assets\Asset.

  • Phalcon\Assets\ResourceInterface переименован в Phalcon\Assets\AssetInterface.

  • Метод Phalcon\Assets\Manager::addResource переименован в Phalcon\Assets\Manager::addAsset.

  • Функция Phalcon\Assets\Manager::addResourceByType переименована в Phalcon\Assets\Manager::addAssetByType.

  • Метод Phalcon\Assets\Manager::collectionResourcesByType переименован в Phalcon\Assets\Manager::collectionAssetsByType.

  • Вместо getPaginate используется paginate. Вместо before используется previous.

  • Область видимости SQL-алиасов столбцов (на уровне вложенности) в Phalcon\Mvc\Model\Query для предотвращения перезаписи _root_ запросов _sqlColumnAliases подзапросами.

  • Параметры CLI теперь работают как параметры MVC.

  • В методе Phalcon\Db\Dialect\Postgresql::addPrimaryKey сделано так, чтобы имена ограничений первичного ключа были уникальными путём добавления префикса имени таблицы.

  • Исправлено некорректное поведение метода Phalcon\Mvc\Model\Query::_prepareSelect, когда столбцы перезаписывались при наличии одинаковых алиасов.

  • Компоненты Phalcon\Http\RequestInterface приведены в соответствие с Phalcon\Http\Request.

  • Объект Phalcon\Acl\Resource переименован в Phalcon\Acl\Subject.

  • Интерфейс Phalcon\Acl\ResourceInterface переименован в Phalcon\Acl\SubjectInterface.

  • Класс Phalcon\Acl\ResourceAware переименован в Phalcon\Acl\SubjectAware. Phalcon\Acl\Operation

Переименовано Phalcon\Acl\RoleInterface в Phalcon\Acl\OperationInterface.

Переименовано Phalcon\Acl\RoleAware в Phalcon\Acl\OperationAware.

Переименована функция Phalcon\Acl\AdapterInterface::addRole в функцию Phalcon\Acl\AdapterInterface::addOperation.

Переименована функция Phalcon\Acl\AdapterInterface::isRole в функцию Phalcon\Acl\AdapterInterface::isOperation.

Переименована функция Phalcon\Acl\AdapterInterface::isResource в функцию Phalcon\Acl\AdapterInterface::isSubject.

Переименована функция Phalcon\Acl\AdapterInterface::addResource в функцию Phalcon\Acl\AdapterInterface::addSubject.

Переименована функция Phalcon\Acl\AdapterInterface::addResourceAccess в функцию Phalcon\Acl\AdapterInterface::addSubjectAccess.

Переименована функция Phalcon\Acl\AdapterInterface::dropResourceAccess в функцию Phalcon\Acl\AdapterInterface::dropSubjectAccess.

Переименована функция Phalcon\Acl\AdapterInterface::getActiveRole в функцию Phalcon\Acl\AdapterInterface::getActiveOperation.

Переименована функция Phalcon\Acl\AdapterInterface::getActiveResource в функцию Phalcon\Acl\AdapterInterface::getActiveSubject.

Переименована функция Phalcon\Acl\AdapterInterface::getRoless в функцию Phalcon\Acl\AdapterInterface::getOperations.

Переименована функция Phalcon\Acl\AdapterInterface::getResources в функцию Phalcon\Acl\AdapterInterface::getSubjects.

Переименована функция Phalcon\Acl\Adapter::getActiveRole в функцию Phalcon\Acl\AdapterInterface::getActiveOperation.

Переименована функция Phalcon\Acl\Adapter::getActiveResource в функцию Phalcon\Acl\AdapterInterface::getActiveSubject.

Переименована функция Phalcon\Acl\Adapter\Memory::addRole в функцию Phalcon\Acl\Adapter\Memory::addOperation.

Переименована функция Phalcon\Acl\Adapter\Memory::isRole в функцию Phalcon\Acl\Adapter\Memory::isOperation.

Переименована функция Phalcon\Acl\Adapter\Memory::isResource в функцию Phalcon\Acl\Adapter\Memory::isSubject.

Переименована функция Phalcon\Acl\Adapter\Memory::addResource в функцию Phalcon\Acl\Adapter\Memory::addSubject.

Переименована функция Phalcon\Acl\Adapter\Memory::addResourceAccess в функцию Phalcon\Acl\Adapter\Memory::addSubjectAccess.

Переименована функция Phalcon\Acl\Adapter\Memory::dropResourceAccess в функцию Phalcon\Acl\Adapter\Memory::dropSubjectAccess.

Переименована функция Phalcon\Acl\Adapter\Memory::getRoless в функцию Phalcon\Acl\Adapter\Memory::getOperations.

Переименована функция Phalcon\Acl\Adapter\Memory::getResources в функцию Phalcon\Acl\Adapter\Memory::getSubjects.

Изменено Phalcon\Http\Response::setHeaders

Теперь заголовки объединяются с уже существующими во внутренней коллекции.

Изменён Phalcon\Di\FactoryDefault

По умолчанию не загружаются:

  • Phalcon\Session\Adapter\Files, используя имя session;
  • Phalcon\Session\Bag, используя имя sessionBag.

Это перевод исходного текста. Если у вас есть дополнительные вопросы или уточнения, пожалуйста, сообщите мне. Рефакторинг компонента. Phalcon\Session\Manager теперь является единственным компонентом, предлагающим манипуляции с сеансами с использованием адаптеров. Каждый адаптер реализует PHP-интерфейс SessionHandlerInterface. Доступные адаптеры: Phalcon\Session\Adapter\Files, Phalcon\Session\Adapter\Libmemcached, Phalcon\Session\Adapter\Noop и Phalcon\Session\Adapter\Redis.

Исправления: — Исправлен магический метод Phalcon\Mvc\Models (сеттер) для массивов. — Исправлены методы Phalcon\Mvc\Model::skipAttributes и Phalcon\Mvc\Model::allowEmptyColumns, которые учитывают сопоставление столбцов.

Удалено

— Больше не поддерживается PHP < 7.2. — Из адаптеров удалена поддержка xcache (#13628). — Из адаптеров удалена поддержка apc (используйте apcu) (#13628). — Из адаптеров удалена поддержка memcache (используйте libmemcached) (#13628).

И так далее... — Удалены Phalcon\Validation\Message и Phalcon\Mvc\Model\Message в пользу Phalcon\Messages\Message. — Удалён Phalкон\Validation\Message\Group в пользу Phalcon\Messages\Messages. — Прекращено использование метода validate из класса Phalcon\Mvc\Collection с объектом типа Phalcon\Mvc\Model\ValidatorInterface.

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/iszmxw-cphalcon.git
git@api.gitlife.ru:oschina-mirror/iszmxw-cphalcon.git
oschina-mirror
iszmxw-cphalcon
iszmxw-cphalcon
master