Volt::convertEncoding
, чтобы больше не использовать iconv
в качестве запасного варианта, так как он вызывает проблемы с macOS #14912.Phalcon\Db\Dialect\Mysql
— отмена кавычек числовых значений по умолчанию #14888, #14974.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.{{ ... }}
) #14476.Tag::friendlyTitle
, чтобы корректно преобразовывать заголовки под MacOS и Windows #14866.cache
и, следовательно, не ищет службу viewCache
(устарело для версии 4) #14907.IN
в Volt #14816.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\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:
Приведение целых чисел при 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\Storage\Serializer\Json
для сериализации объектов, реализующих интерфейс JsonSerializable
#14528.Phalcon\Collection
, чтобы корректно возвращать объекты с одним уровнем вложенности, которые реализуют JsonSerializable
#14528.Phalcon\Mvc\View
, чтобы при использовании нескольких каталогов представлений включался только первый найденный экземпляр представления #12977.Phalcon\Logger\Formatter\Syslog
— на самом деле он мало что делал #14523.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\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).
Типы возвращаемых значений методов приведены в соответствие с объявлением интерфейса:
Удалённые элементы:
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.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.
— Методы 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. Введены:
Для обеспечения наличия завершающего слэша в пути добавлен метод 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Удалён псевдоним пространства имён модели
Фалкон\Модель\Менеджер::регистрНэймспейсЭлайас(),
Фалкон\Модель\Менеджер::гетНэймспейсЭлайас(),
Фалкон\Модель\Менеджер::гентНэймспейсАлис(),
Фалкон\Модель\МенефиндИнтерфейс::гетНэймспейсЭлайас(),
Фалкон\Модель\МенефиндИнтерфейс::регистрНэймспейсЭлайас().
Реализация предлагает совместимые компоненты PSR-7/PSR-17 в другом пространстве имён, чтобы можно было использовать обе версии Риквеста и Репонса.
добавлено пространство имён *Фалкон\Хэлпер* с функциями для удобной работы с массивами, числами и т. д.:
добавлено Фалкон\Коллекшн — объект, реализующий ArrayAccess, Countable, IteratorAggregate, JsonSerializable, Сериализабл, который позволяет легко работать с коллекциями данных, такими как массивы, суперглобальные переменные и т. п.
добавлен Фалкон\Коллекшн в Фалкон\Http\Мессидж\Риквест и Фалкон\Http\Мессидж\СерверРиквест для обработки заголовков.
Изменения:
Удалено:
Добавлено:
Исправлено:
ошибка 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).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).getHandlerSuffix()
, setHandlerSuffix()
, а в CLI Dispatcher — getTaskSuffix()
, setTaskSuffix()
(#13468).forUpdate
(#13539).TYPE_ENUM
(#11368).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()
.serializer
, реализующий интерфейс FrontendInterface, в DI.offset
добавлен в интерфейс Phalcon\Mvc\Model\Query\BuilderInterface
.getCookies
добавлен в класс Phalcon\Http\Response\Cookies
.isRelationshipLoaded
добавлен в класс Phalcon\Mvc\Model
для проверки загрузки отношения.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\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\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 )