resources/CHANGELOG-4.0.md
Volt::convertEncoding to no longer using iconv for a fallback since it causes issues with macOS #14912Phalcon\Db\Dialect\Mysql - unquote numerical defaults #14888, #14974FALSE to Enum::DENY #14974Phalcon\Http\Response::__construct checks content data type. Now a TypeError will be thrown if incompatible data type was passed #14983Phalcon\Flash\FlashInterface's methods: error, message, notice, success and warning #14994Phalcon\Mvc\ModelInterface::sum #15000Phalcon\Mvc\Model\Criteria::getLimit so that integer, NULL or array will be returned #15004Phalcon\Mvc\Model\Manager::getCustomEventsManager to return NULL instead of boolean FALSE if there is no special events manager #15008Phalcon\Mvc\Model\MetaData::getDI so that now it will throw a Phalcon\Mvc\Model\Exception if there is no DiInterface instance #15011Phalcon\Http\Request::getJsonRawBody to use json_decode instead of Phalcon\Json::decode #14936Phalcon\Factory\AbstractFactory to expose getService which will throw an exception if it does not exist. Removed checkService and adjusted all references in newInstance() calls. #15038Phalcon\Http\Message\Response, Phalcon\Http\Message\ServerRequest and Phalcon\Http\Message\Uri to work with clone. #15040Phalcon\Mvc\Model\Query\Builder::getPhql to add single quote between string value on a simple condition #14874{{ ... }}) #14476Tag::friendlyTitle to correctly convert titles under MacOS and Windows #14866cache fragments and thus searching for the viewCache service (deprecated for v4) #14907IN operator precedence in Volt #14816Phalcon\Acl\AbstractAdapter's methods: getActiveAccess, getActiveRole and getActiveComponent #14974Phalcon\Annotations\Annotation's properties: $arguments and $exprArguments #14977Phalcon\Annotations\Annotation's methods: getArgument, getName and getNamedArgument #14977Phalcon\Http\Response\Cookies::setSignKey #14982Phalcon\Config\ConfigFactory::load and Phalcon\Config\ConfigFactory::newInstance to explicitly indicate the return type as Phalcon\Config instance #14978Phalcon\Dispatcher\AbstractDispatcher::dispatchPhalcon\Dispatcher\DispatcherInterface::dispatchPhalcon\Filter::getPhalcon\Http\Message\AbstractCommon::cloneInstancePhalcon\Http\Message\AbstractCommon::processWithPhalcon\Http\Message\AbstractMessage::withAddedHeaderPhalcon\Http\Message\AbstractMessage::withBodyPhalcon\Http\Message\AbstractMessage::withHeaderPhalcon\Http\Message\AbstractMessage::withProtocolVersionPhalcon\Http\Message\AbstractMessage::withoutHeaderPhalcon\Http\Message\AbstractRequest::withMethodPhalcon\Http\Message\AbstractRequest::withRequestTargetPhalcon\Http\Message\AbstractRequest::withUriPhalcon\Mvc\Model\Binder::findBoundModelPhalcon\Validation::getEntityPhalcon\Validation\ValidationInterface::getEntityPhalcon\Crypt::$key to satisfy the interface #14989Phalcon\Di::getInternalEventsManager #14992Phalcon\Flash\AbstractFlash's methods: error, notice, success and warning #14994Phalcon\Translate\InterpolatorFactory::newInstance #14996Phalcon\Mvc\Model::sum #15000Phalcon\Mvc\Model\CriteriaInterface::getLimit and Phalcon\Mvc\Model\Criteria::getLimit to follow documentation and original purpose #15004Phalcon\Mvc\Model::count and Phalcon\Mvc\ModelInterface::count to reflect original behavior #15006Phalcon\Mvc\Model::getEventsManager to reflect original behavior #15008Phalcon\Mvc\Model::average and Phalcon\Mvc\ModelInterface::average to reflect original behavior #15013Phalcon\Mvc\Model\MetaData::getColumnMap and Phalcon\Mvc\Model\MetaData::getReverseColumnMap to reflect original behavior #15015Phalcon\Mvc\Model\MetaDataInterface::getColumnMap and Phalcon\Mvc\Model\MetaDataInterface::getReverseColumnMap to reflect original behavior #15015Phalcon\Mvc\Model\CriteriaInterface::getColumns and Phalcon\Mvc\Model\Criteria::getColumns to reflect original behavior #15017Phalcon\Db\Column::getSize and Phalcon\Db\ColumnInterface::getSize to reflect original behavior #15019Phalcon\Db\Column::getAfterPosition and Phalcon\Db\ColumnInterface::getAfterPosition to reflect original behavior #15021Phalcon\Mvc\Model\Manager::executeQuery and Phalcon\Mvc\Model\Manager::ManagerInterface to reflect original behavior #15024Phalcon\Mvc\Model\Resultset::getFirst and Phalcon\Mvc\Model\ResultsetInterface::getFirst to reflect original behavior #15027Phalcon\Mvc\Model\Query::_prepareSelect to properly prepare a SQL SELECT statement from a PHQL one #14657SerializerInterface usage for Phalcon\Mvc\Model\Resultset\Complex::unserialize as well as Phalcon\Mvc\Model\Resultset\Complex::unserialize #14942Phalcon\Translate\InterpolatorFactory::$mapper as well as Phalcon\Translate\InterpolatorFactory::$services in favor of Phalcon\Factory\AbstractFactory ones #15036Phalcon\Db::fetchAll to correctly return data when Enum::FETCH_COLUMN is supplied #13321CURRENT_TIMESTAMP #14880Str::dirFromFile() to replace . with - to avoid issues with Windows environments #14858Phalcon\Db\Adapter\Pdo\Postgresql to correctly identify bool fields instead of treating them as tinyint #14722 @tidytraxPhalcon\Cli\Console to pass current container to the Phalcon\Mvc\ModuleDefinitionInterface::registerAutoloaders() #14787 @TimurFlushPhalcon\Db\Dialect\Mysql::createTable() to create default value with CURRENT_TIMESTAMP ON UPDATE/DELETE [#14797]Phalcon\Storage\Adapter\* to no longer accept the serializer option as it was clashing with the factory #14828Phalcon\Http\Request to return the correct host on an UnexpectedValueException #14763Phalcon\Assets\Collection to initialize position to 0 #14848Phalcon\Db\Adapter\Pdo\Mysql Tinyint(1) is handled as boolean under MySql #14708Phalcon\Mvc\View\Engine\Volt to produce the correct order of variables for the join filter #14771Phalcon\Storage\Adapter\Stream::getKeys() bug in the absence of a directory with a prefix name #14725, #14721Phalcon\Debug::onUncaughtException Should accept \Throwable instead of \Exception as an argument #14738Phalcon\Validation\ValidatorFactory Should return Phalcon\Validation\ValidatorInterface 14749Phalcon\Mvc\Model\Binder to now correctly call has and set on the cache object #14743Phalcon\Session\Adapter\Stream and Phalcon\Storage\Adapter\Stream to correctly handle simultaneous read/write #14694Phalcon\Config\ConfigFactory to always add the correct extension #14756Phalcon\Logger to use DateTimeImmutable so as to handle microseconds if necessary. #2893Phalcon\Http\Cookie::send and Phalcon\Http\Cookie::delete to allow for samesite to be passed in the options when using PHP > 7.3 #14627Phalcon\Mvc\Model\Criteria Di isn't set when using Criteria::fromInput() #14538Phalcon\Db\Dialect\Mysql removing unnecessary parentheses for double and float #14645 @pfzPhalcon\Http\Cookie::delete to parse the correct parameters - cannot use alternative syntax until PHP 7.3 #14643Phalcon\Mvc\Model::__isset to take into account non visible properties by checking the getter if it exists #13518 #13900Phalcon\Mvc\Model::__set to return a more informative message if we are tying to access a non visible property #13518 #13900Phalcon\Mvc\Model\Resultset\Simple::toArray to correctly process virtual fields #14669Phalcon\Session\Manager::getUniqueKey to prefix the key only if uniqueId is present #14688Phalcon\Db\Adapter\Pdo::describeColumns to correctly detect ENUM columns #14691Phalcon\Db\Dialect\Mysql::getColumnDefinition to recognize size for DATETIME, TIME and TIMESTAMP columns #13297Phalcon\Model::findFirstBy* and Phalcon\Model::findBy* to process passed parameters (for order etc.) #14573Phalcon\Helper\Str::decrement to remove a number from a string or decrements that number if it already is defined #14599Phalcon\Domain\Payload\* #14575Phalcon\Http\Cookie in the constructor as well as getOptions and setOptions (ref #14627 - future work) #14575Phalcon\Http\Response\Cookies in the set() (ref #14627 - future work) #14575Phalcon\Mvc\Router\Annotations to use converters instead of conversors #14532Phalcon\Di::setRaw to Phalcon\Di::setService to align more with the use of the method #14555Phalcon\Http\CookieInterface to Phalcon\Http\Cookie\CookieInterface to avoid confusion #14602Phalcon\Storage\Adapter\*::getKeys to accept an optional $prefix so as to filter the keys returned #14575"c" date mask for better sorting #14575Phalcon\Storage\Adapter\* constructors to require the Phalcon\Storage\SerializerFactory object #14575Phalcon\Mvc\Model to ignore internal setters if properties have the same name as the setter #14538Phalcon\Logger\Formatter\Line to not add PHP_EOL at the end of the message and added it to the Phalcon\Logger\Adapter\Stream #14547Phalcon\Mvc\Model\MetaData\Apcu and Phalcon\Mvc\Model\MetaData\Redis to allow setting the prefix and lifetime using the options or use the default. #14549Phalcon\Storage\Adapter\AbstractAdapter, Phalcon\Storage\Adapter\AbstractInterface getters to contain a default valuePhalcon\Storage\Adapter\Memory initializing the array store correctly #14551Phalcon\Storage\Adapter\Stream to capture notice if the stream is not opened properly #14551Phalcon\Security::getRandomBytes to return int #14551Phalcon\Security to use 10 as the default work factor #14551Phalcon\Helper\Arr::validateAny and Phalcon\Helper\Arr::validateAllto use null as default for the callback method #14551Phalcon\Escaper::escapeHtml and Phalcon\Escaper::escapeHtmlAttr to allow null values #14553Phalcon\Mvc\Model::cloneResultMap to correctly recognize aliased fields and include them in the resultset #14488Phalcon\Http\Request::getQuery,Phalcon\Http\Request::getPut,Phalcon\Http\Request::getPost to treat 0 as non empty for allowNoEmpty #14556Phalcon\Router::handle() to use the / route on empty string #14559Phalcon\Storage\Adapter\Libmemcached::getKeys and Phalcon\Storage\Adapter\Redis::getKeys to return the keys that are prefixed only for that adapter #14575newInstance and not a cached one from the internal mapper #14584
Phalcon/Annotations/AnnotationsFactoryPhalcon/Cache/AdapterFactoryPhalcon/Config/ConfigFactoryPhalcon/Db/Adapter/PdoFactoryPhalcon/Image/ImageFactoryPhalcon/Logger/AdapterFactoryPhalcon/Paginator/PaginatorFactoryPhalcon/Storage/AdapterFactoryPhalcon/Storage/SerializerFactoryPhalcon/Translate/InterpolatorFactoryPhalcon/Translate/TranslateFactoryPhalcon/Validation/ValidatorFactoryPhalcon\Mvc\Model::cloneResultMap to cast integers when fields are TYPE_BIGINTEGER, TYPE_INTEGER, TYPE_MEDIUMINTEGER, TYPE_SMALLINTEGER, TYPE_TINYINTEGER #14584Phalcon\Http\Response::setCookies to use the correct interface #14602Phalcon\Test\Unit\Image\Adapter\Gd::processBackground to correctly calculate the alpha value #14609Phalcon\Logger\Adapter\AdapterInterface adding missing inTransaction() #14575Phalcon\Mvc\Model::cloneResultsetMap to remove fatal error when looking up the columnMap. #14619Phalcon\Http\Request\FileInterface by adding getError that was missing. #14633Phalcon\Html\Link\LinkPhalcon\Html\Link\LinkProviderPhalcon\Html\Link\EvolvableLinkPhalcon\Html\Link\EvolvableLinkProviderPhalcon\Html\Link\Serializer\HeaderPhalcon\Html\Link\Serializer\SerializerInterfacePhalcon\Collection:getKeys and Phalcon\Collection\getValues for getting data from the collection #14507Phalcon\Mvc\Model and Phalcon\Mvc\Model\Manager #14511Phalcon\Mvc\Model::hasOneThrough()Phalcon\Mvc\Model\Manager::addHasOneThrough()Phalcon\Mvc\Model\Manager::existsHasOneThrough()Phalcon\Mvc\Model\Manager::getHasOneThrough()Phalcon\Mvc\Model\ManagerInterface::addHasOneThrough()Phalcon\Mvc\Model\ManagerInterface::existsHasOneThrough()Phalcon\Mvc\Model\ManagerInterface::getHasOneThrough()Phalcon\Http\Request::numFiles to return the number of files in the request #14519Phalcon\Paginator\Adapter\Model
data parametermodel parameter to pass model classparameters which is used as the parameter Model::find()Phalcon\Annotations\AnnotationsFactory:newInstance to return the correct object back #14494Phalcon\Db\Adapter\PdoFactory::load() now returns Phalcon\Db\Adapter\AdapterInterfacePhalcon\Db\Adapter\PdoFactory::newInstance() now returns Phalcon\Db\Adapter\AdapterInterfacePhalcon\Logger\LoggerFactory::load() now returns Phalcon\LoggerPhalcon\Validation\ValidatorFactory::newInstance now returns Phalcon\Factory\ValidatorInterfacePhalcon\Container:get to use getShared transparently #14502Phalcon\Mvc\Model to include correct model instances in messages metadata #14510Phalcon\Di\Injectable::__get() to return shared instance by default #14491Phalcon\Mvc\View::loadTemplateEngines() to not share engine with other views by default #14491Phalcon\Mvc\Model\Manager::getRelations() and getRelationsBetween() to return many-to-many relations correctly #14509Phalcon\Logger to correctly allow transactional logging #14514Phalcon\Annotations\Adapter\Stream::read and Phalcon\Annotations\Adapter\Stream::write to use serialize/unserialize vs. var_export #14515Phalcon\Http\Request::hasFiles to return boolean and true if files are present #14519Phalcon\Logger\Adapter\Syslog to correctly log Syslog messages #14522Phalcon\Mvc\Model\MetaDataInterface::getIdentityField and Phalcon\Mvc\Model\MetaData::getIdentityField to also return null if the identity field is not present #14523Phalcon\Storage\Serializer\Json to serialize objects that implement the JsonSerializable interface #14528Phalcon\Collection to correctly return one level nested objects that implement JsonSerializable #14528Phalcon\Mvc\View to only include first found instance of view when using multiple view directories #12977Phalcon\Logger\Formatter\Syslog - really did not do much #14523cast parameter to Phalcon\Collection::get and Phalcon\Helper\Arr::get allowing developers to cast the result returned to the type they want to. #14465Phalcon\Paginator\Repository::jsonSerialize() implementing JsonSerializable #14475Phalcon\Logger::getLogLevel() and Phalcon\Logger::setLogLevel() setting the minimum log level for the logger #14480new <object> to use the create_instance or create_instance_params for better performance. #14419Phalcon\Mvc\Model::getChangedFields and Phalcon\Mvc\Model::getUpdatedFields when there is no snapshot setup #14468Phalcon\Mvc\Model::__callStatic() to throw an exception if the called method is unknown. #14467Phalcon\Mvc\Model to accept 0, null and "" as valid parameter for findByField(), findFirstByField() and countByField(). #14467Phalcon\Mvc\View\Engine\Volt\Compiler::parse() Corrected syntax recognize for "set" keyword. #14288Phalcon\Mvc\View\Engine\Volt\Compiler::parse() Corrected syntax recognize for "is" keyword. #11683Phalcon\Cache\Adapter\AbstractAdapter use AdapterInterface instead of non existing AbstractAdapter #14414Phalcon\Cache\CacheFactory use Psr\SimpleCache\CacheInterface instead of non existing Phalcon\Cache\CacheInterface #14414Phalcon\Cache\CacheFactory use Psr\SimpleCache\CacheInterface instead of non existing Phalcon\Cache\CacheInterface #14414Phalcon\Cli\Router add missing Phalcon\Cli\Router\RouteInterface #14414Phalcon\Dispatcher\AbstractDispatcher::setModelBinder() to return DispatcherInterface instead of non existing Dispatcher: #14414Phalcon\Firewall\Adapter\AclPhalcon\Firewall\Adapter\AnnotationsPhalcon\Filter\FilterFactory::newInstance() to return FilterInterface instead of non existing LocatorInterface #14414Phalcon\Forms\Element\Select::addOption() and Phalcon\Forms\Element\Select::setOption() to return ElementInterface instead of non existing Element #14414Phalcon\Forms\Manager::set() to return Manager instead of non existing FormManager #14414Phalcon\Paginator\Adapter\AbstractAdapter::setCurrentPage()Phalcon\Paginator\Adapter\AbstractAdapter::setLimit()Phalcon\Paginator\Adapter\AbstractAdapter::setRepository() to return AdapterInterface instead of non existing Adapter #14414Phalcon\Translate\TranslateFactory::set() to return AdapterInterface instead of non existing AbstractAdapter #14414Phalcon\Filter to properly work with closures #14417Phalcon\Form::setAction() throwing error when called in Form::initialize() #14421Phalcon\Mvc\Model\Query\Lang::parsePHQL return type hint from string to arrayNOT BETWEEN support in PHQL #14253Phalcon\Storage\Adapter\Stream to correctly serialize and unserialize data #14408Phalcon\Storage\Serializer\Json to throw an exception if storing an object #14408Phalcon\Http\Message\ServerRequestFactory::load to correctly handle superglobals that have not been defined #14426Phalcon\Forms\Form to initialize attributes object if not initialized #14430Phalcon\Http\Message\ServerRequestFactory::load to correctly detect the protocol passed from $_SERVER #14432Phalcon\Cli\Router\Route added missing Phalcon\Cli\Router\RouteInterfacePhalcon\Mvc\View\Engine\AbstractEngine::partial and Phalcon\Mvc\View\Engine\EngineInterface::partial #14429Phalcon\Firewall\Adapter\AbstractAdapter::getRoleCallback and Phalcon\Firewall\Adapter\AbstractAdapter::setRoleCallback to correctly accept and return a Closure #14450Phalcon\Firewall\Adapter\AdapterInterface::getRoleCallback and Phalcon\Firewall\Adapter\AbstractAdapter::setRoleCallback to correctly accept and return a Closure #14450Phalcon\Events\Event::__constructor to correctly accept an object as the source parameter #14449Phalcon\Cache::checkKey() added . to key characters pattern #14457Phalcon\Mvc\Model\Manager to store reusable related records correctly. #14444Phalcon\Mvc\Model::__call() not to throw an exception when the return value is null for related records. #14444Phalcon\Logger\Adapter\Syslog::__construct() incorrect receipt of the option from the options parameter. #14470Phalcon\Events\Manager::fire and Phalcon\Events\ManagerInterface::fire correctly aligning parameters and types. #14477Phalcon\Translate\* aligning parameters as array with the interpolator calls. #14477Phalcon\Storage\AdapterFactory:newInstance to return the correct interface #14481Phalcon\Mvc\Dispatcher:forward to accept an array vs a mixed variable #14481Phalcon\Mvc\Model::_doLowUpdate and Phalcon\Mvc\Model::_doLowInsert throwing errors about column mapping when phalcon.orm.ignore_unknown_columns is set On #14485Phalcon\Application\AbstractApplication::handle() as it does not serve any purpose and causing issues with type hinting. #14407getEventsManager and setEventsManager from Phalcon\Di\Injectable to the classes that utilise the methods or eventsManager property. #14269Phalcon\Http\Request::getURI() (as well as its interface) which indicates whether or not the method should return only the path without the query stringPhalcon\Url::get to use implementation behind Phalcon\Helper\Str::reduceSlashes to reduce slashes #14331Phalcon\Http\Headers\set() to return self for a more fluent interfacePhalcon\Assets\Manager, Phalcon\Cli\Router, Phalcon\Dispatcher\AbstractDispatcher, Phalcon\Html\Tag, Phalcon\Http\Cookie, Phalcon\Http\Request, Phalcon\Http\Response\Cookies, Phalcon\Mvc\Model, Phalcon\Mvc\Router, Phalcon\Security, Phalcon\Session\Manager to use Phalcon\Di\AbstractDiAware for container functionality #14351Phalcon\Security to allow session and request in the constructor #14351Phalcon\Session\Manager to allow router in the constructor #14351Phalcon\Flash\Direct to allow escaper in the constructor #14349Phalcon\Flash\Session to allow escaper in the constructor #14349Phalcon\Di\AbstractDIAware to Phalcon\Di\AbstractInjectionAware #14359Phalcon\Di\Service to use DI to initialize string based services when possible #14342Phalcon\Mvc\Router\Annotations to be able to handle patterns az prefixes #14259Phalcon\Mvc\Router\Group::routes to an array as default #14259Phalcon\Mvc\Model::assign changed order of parameters to $data, $whiteList, $dataColumnMap #14386Phalcon\Helper\Arr::arrayToObject to toObject #14389Phalcon\Events\EventsAwareInterface::getEventsManager and Phalcon\Di\Injectable::getEventsManager to return also null #14404Phalcon\Logger\Adapter\AbstractAdapter::add to now return this #14404Phalcon\Mvc\RouterInterface methods signature to return RouteInterface instead of void:
Phalcon\Mvc\RouterInterface::setDefaultActionPhalcon\Mvc\RouterInterface::setDefaultActionPhalcon\Mvc\RouterInterface::setDefaultControllerPhalcon\Mvc\RouterInterface::setDefaultModulePhalcon\Mvc\RouterInterface::setDefaultsPhalcon\Mvc\Router\RouteInterface::setName from void to RouteInterfacePhalcon\Mvc\Router\RouteInterface::via from void to RouteInterfacePhalcon\Session\ManagerInterface::__get from void to varPhalcon\Helper\Str::includes to return correct result #14301Phalcon\Logger moved to correct namespace #14263Phalcon\Session\Adapter\AbstractAdapter::read() to return ""(empty string) when Session/Adapter/*::get() returns null #14314Phalcon\Cache\Exception to extend Phalcon\ExceptionPhalcon\Cache\InvalidArgumentException to extend Phalcon\ExceptionPhalcon\Collection\Exception to extend Phalcon\ExceptionPhalcon\Storage\Adapter\AbstractAdapter::initSerializer to throw exception if null === $this->serializerFactory && null === $this->serializer #14324Phalcon\Storage\Adapter\Redis::getAdapter() to provide a persistent id for redis persistent connection #14334Phalcon\Session\Adapter\Stream to not override configured save path #14265Phalcon\Http\Response::setFileToSend to properly handle non-ASCII filenames #13919Phalcon\Security::getSessionToken return value #14346Phalcon\Flash\* interfaces for message() to return string/null #14349Phalcon\Paginator\Adapter\AbstractAdapter throw exception if limit <= 0 #14303Phalcon\Mvc\Model\Query\Builder Empty table alias in query #14366Phalcon\Db\Adapter\PdoFactory to reference the correct interface #14381Phalcon\Db\Dialect\Mysql Fixed missing schema in constraint for create table #14378Phalcon\Mvc\Model::hasChanged() and getChangedFields() returning false values when castOnHydrate option is on. #14376Phalcon\Mvc\Model::create() Using write connection to prevent replica lag #14256Phalcon\Acl\Adapter\AbstractAdapter::setDefaultActionPhalcon\Application\AbstractApplication::setEventsManagerPhalcon\Firewall\Adapter\AbstractAdapter::setAlwaysResolvingRolePhalcon\Firewall\Adapter\AbstractAdapter::setEventsManagerPhalcon\Mvc\Router::handlePhalcon\Storage\Serializer\AbstractSerializer::getDataPhalcon\Storage\Serializer\AbstractSerializer::setDataPhalcon\Mvc\Dispatcher::forwardPhalcon\Mvc\Model::setConnectionServicePhalcon\Mvc\Model::setReadConnectionServicePhalcon\Mvc\Model::setWriteConnectionServicePhalcon\Mvc\Model\Query\Builder::setDIPhalcon\Mvc\Router\Annotations::handlePhalcon\Session\Bag::setPhalcon\Session\Manager::removePhalcon\Di::remove() to remove service. #14396Phalcon\Plugin - duplicate of Phalcon\Di\Injectable #14359Phalcon\Mvc\Collection and all related references. 4.0 will not support mongo as it is being re-implemented to take advantage of the latest Mongo driver (see #13697) #14361Phalcon\Session\Manager::registerHandler - duplicate functionality #14381Phalcon\Html\Tag - duplicate functionality #14381void return type for all constructors #14401Phalcon\Db\Adapter\AbstractAdapter, Phalcon\Db\Adapter\AdapterInterface, Phalcon\Db\Result\Pdo, Phalcon\Html\Tag and Phalcon\Tag\Select. #14249isSerializable in Phalcon\Storage\Serializer\AbstractSerializer to return true when the data is seriazable and false when it's not.Phalcon\Storage\Adapter\Redis::delete() and Phalcon\Storage\Adapter\Redis::getKeys() deprecated warning from php-redis #14281Phalcon\Mvc\Model\ResultSet::Update() to return correct status #14291Phalcon\Mvc\Collection::cancelOperation() now returns true on success.Phalcon\Application\AbstractApplication interfaces for registerModules(), setDefaultModule() and setEventsManager() #14293Phalcon\Paginator\Adapter\QueryBuilder to throw exception on incorrect parameter #14299Phalcon\Factory\Exception for factory exceptions. #13672Phalcon\Filter\FilterInterface for custom filter implementations. #13672Phalcon\Db\Adapter\PdoFactory: Factory to create PDO adapters. #13672Phalcon\Image\ImageFactory: Factory to create image adapters. #13672Phalcon\Logger\LoggerFactory: Factory to create logger objects. #13672Phalcon\Translate\InterpolatorFactory: Factory to create interpolator objects. #13672Phalcon\Translate\TranslateFactory: Factory to create translate objects. #13672Phalcon\Domain\Payload to help in transferring messages between layers of the application. #14123Phalcon\Domain\PayloadFactory: Factory to create payload objects. #14123Phalcon\Http\Message\ServerRequestFactory::load: Method to create a ServerRequest object from globals. #14154saslAuthData as option to Phalcon\Storage\Adapter\Libmemcached to authenticate using SASL #13394Phalcon\Collection\ReadOnly: Read only collection. #14154whiteList() to Phalcon\Helper\Arr #13954Phalcon\Config\ConfigFactory::newInstance(): Factory to create config objects. #13201, #13768Phalcon\Db\Enum #14213Phalcon\Dispatcher\Exception #14213Phalcon\Annotations\Adapter\Files to Phalcon\Annotations\Adapter\Stream. #13672Phalcon\Annotations\Adapter to Phalcon\Annotations\Adapter\AbstractAdapter. #13672Phalcon\Annotations\AdapterInterface to Phalcon\Annotations\Adapter\AdapterInterface. #13672Phalcon\Annotations\Factory to Phalcon\Annotations\AnnotationsFactory. #13672Phalcon\Config\Factory to Phalcon\Config\ConfigFactory. #13672Phalcon\Filter\FilterLocator to Phalcon\Filter\Filter. #13672Phalcon\Filter\FilterLocatorFactory to Phalcon\Filter\FilterFactory. #13672Phalcon\Image\Adapter to Phalcon\Image\Adapter\AbstractAdapter. #13672Phalcon\Image\AdapterInterface to Phalcon\Image\Adapter\AdapterInterface. #13672Phalcon\Paginator\Adapter to Phalcon\Paginator\Adapter\AbstractAdapter. #13672Phalcon\Paginator\AdapterInterface to Phalcon\Paginator\Adapter\AdapterInterface. #13672Phalcon\Paginator\Factory to Phalcon\Paginator\PaginatorFactory. #13672Phalcon\Translate\Adapter to Phalcon\Translate\Adapter\AbstractAdapter. #13672Phalcon\Translate\AdapterInterface to Phalcon\Translate\Adapter\AdapterInterface. #13672Phalcon\Plugin is now abstract.method parameter in Phalcon\Mvc\Model\Manager::getRelationRecords() to the last position. #14115method parameter in Phalcon\Mvc\Model\Manager::getBelongsToRecords() to the last position. #14115method parameter in Phalcon\Mvc\Model\Manager::getHasOneRecords() to the last position. #14115method parameter in Phalcon\Mvc\Model\Manager::getHasManyRecords() to the last position. #14115Phalcon\Paginator\Repository::getProperty() now uses Phalcon\Helper\Arr::get().Phalcon\Collection to allow conditional key case sensitivity. #14154Phalcon\Registry to align with the Phalcon\Collection interface. #14154Phalcon\Mvc\Micro::setModelBinder() now uses the Factory Default DI if none is set. #14171Phalcon\Mvc\Model\ValidationFailed now works with ModelInterface.Phalcon\Config to extend Phalcon\Collection #13201, #13768Phalcon\Config to extend Phalcon\Config\Config #13201, #13768Phalcon\Acl to Phalcon\Acl\Enum #14213Phalcon\Acl\Adapter to Phalcon\Acl\Adapter\AbstractAdapter #14213Phalcon\Acl\AdapterInterface to Phalcon\Acl\Adapter\AdapterInterface #14213Phalcon\Application to Phalcon\Application\AbstractApplication #14213Phalcon\CryptInterface to Phalcon\Crypt\CryptInterface #14213Phalcon\Db\Adapter to Phalcon\Db\Adapter\AbstractAdapter #14213Phalcon\Db\AdapterInterface to Phalcon\Db\Adapter\AdapterInterface #14213Phalcon\Db to Phalcon\Db\AdapterDb #14213Phalcon\Db\Adapter\Pdo to Phalcon\Db\Adapter\Pdo\AbstractPdo #14213Phalcon\Dispatcher to Phalcon\Dispatcher\AbstractDispatcher #14213Phalcon\DispatcherInterface to Phalcon\Dispatcher\DispatcherInterface #14213Phalcon\EscaperInterface to Phalcon\Escaper\EscaperInterface #14213Phalcon\Firewall\Adapter to Phalcon\Firewall\Adapter\AbstractAdapter #14213Phalcon\Firewall\AdapterInterface to Phalcon\Firewall\Adapter\AdapterInterface #14213Phalcon\Flash to Phalcon\Flash\AbstractFlash #14213Phalcon\FlashInterface to Phalcon\Flash\FlashInterface #14213Phalcon\Forms\Element to Phalcon\Forms\Element\AbstractElement #14213Phalcon\Forms\ElementInterface to Phalcon\Forms\Element\ElementInterface #14213Phalcon\Image to Phalcon\Image\Enum #14213Phalcon\Mvc\View\Engine to Phalcon\Mvc\View\Engine\AbstractEngine #14213Phalcon\Mvc\View\EngineInterface to Phalcon\Mvc\View\Engine\EngineInterface #14213Phalcon\UrlInterface to Phalcon\Url\UrlInterfacePhalcon\Validator to Phalcon\Validation\Validator #14213Phalcon\Validator\Validator to Phalcon\Validation\AbstractValidator #14213Phalcon\Validator\ValidatorComposite to Phalcon\Validation\AbstractValidatorComposite #14213Phalcon\Validator\CombinedFieldsValidator to Phalcon\Validation\AbstractCombinedFields #14213Phalcon\Validator\Validator\File\FileAbstract to Phalcon\Validation\Validator\File\AbstractFile #14213Phalcon\Mvc\View::getRender() to call view->finish() instead of ob_end_clean(). #14095Phalcon\Cache\Adapter\Libmemcached failing to set values when Phalcon\Mvc\Model\MetaData\Libmemcached was in use. #14100Phalcon\Db\Column to recognize tinyint, smallint, mediumint, integer as valid autoIncrement columns. #14102method parameter in Phalcon\Mvc\Model\Manager::getRelationRecords(), it's not always a string, null by default. #14115method parameter in Phalcon\Mvc\Model\Manager::getBelongsToRecords(), it's not always a string, null by default. #14115method parameter in Phalcon\Mvc\Model\Manager::getHasOneRecords(), it's not always a string, null by default. #14115method parameter in Phalcon\Mvc\Model\Manager::getHasManyRecords(), it's not always a string, null by default. #14115handlers property in Phalcon\Mvc\Micro\Collection to now always an array.Phalcon\Mvc\Model::save() when saving a circular model relation. #13354Phalcon\Db\Dialect\Postgresql::truncateTable() to now escape table names. #14125Phalcon\Mvc\Model\MetaData::write() to throw an exception if orm.exception_on_failed_metadata_save is set to true. #13433Phalcon\Image\Adapter\Gd to throw an error with imagecolorat. #14139Phalcon\Mvc\Model\Criteria::limit() now corrects negative offsets.Phalcon\Di\FactoryDefault\Cli can now use the new Filter system.Phalcon\Mvc\Router now parses and uses path. #14087Phalcon\Acl\Adapter and Phalcon\Acl\Adapter\Memory including comments, logic, denyComponentAccess and AdapterInterface. Added tests. #13870Phalcon\Config::merge() not merging numeric values properly #13201, #13768Phalcon\Validation\Validator\File\AbstractFile missing the resolution of the value property #14198Phalcon\Storage\Adapter\Stream #14190Phalcon\Form\Form::clear() now correctly clears single fields. #14217Phalcon\Form\Form::getValue() not to call getAttributes() when an element is named "attributes" #14226Phalcon\Model::delete() array to string conversion #14080Phalcon\Mvc\Micro\LazyLoader::callMethod() when handler contains syntax error.Phalcon\Session\Factory. #13672Phalcon\Factory and Phalcon\FactoryInterface. #13672Phalcon\Translate. #13672Phalcon\Db\Column::getSchemaName() as its not relevant or settable.Phalcon\Config::__set_state() as it does not serve any purpose and skipped the constructor. #13201, #13768Phalcon\Annotations\Reflection::__set_state(), Phalcon\Db\ColumnInterface::__set_state(), Phalcon\Db\Column::__set_state(), Phalcon\Db\IndexInterface::__set_state(), Phalcon\Db\Index::__set_state(), Phalcon\Db\ReferenceInterface::__set_state(), Phalcon\Db\Reference::__set_state(), Phalcon\Di\ServiceInterface::__set_state(), Phalcon\Di\Service::__set_state(), Phalcon\Http\Response\HeadersInterface::__set_state(), Phalcon\Http\Response\Headers::__set_state(), Phalcon\Http\Request::__set_state(), Phalcon\Messages\Message::__set_state() #14212Phalcon\Cli\Router\Route::setDescription() to sets the route's description #13936Phalcon\Cli\Router\Route::getDescription() returns the route's description #13936Phalcon\Image\Adapter\Gd::getVersion().chunk(), first(), firstKey(), flatten(), group(), isUnique(), last(), lastKey(), order(), pluck(), sliceLeft(), sliceRight(), split(), tail(), validateAll(), validateAny() to Phalcon\Helper\Arr #13954camelize(), concat(), countVowels(), decapitalize(), dynamic(), endsWith(), firstStringBetween(), includes(), increment(), isAnagram(), isLower(), isPalindrome(), isUpper(), lower(), random(), reduceSlashes(), startsWith(), uncamelize(), underscore(), upper() to Phalcon\Helper\Str #13954Phalcon\Mvc\Model\Query\BuilderInterface::getModels() returns the models involved in the queryaddConnect(), addPurge() and addTrace() to Phalcon\Mvc\Router\Group and its interface. #14001Phalcon\Mvc\Model\Transaction::throwRollbackException() which allows a transaction to throw an exception or not on a rollback. #13949Phalcon\Cache class implementing PSR-16. Introducing:
Phalcon\Cache\Adapter
Phalcon\Cache\Adapter\ApcuPhalcon\Cache\Adapter\LibmemcachedPhalcon\Cache\Adapter\MemoryPhalcon\Cache\Adapter\RedisPhalcon\Cache\Adapter\StreamPhalcon\Cache\AdapterFactory: Factory to create adaptersPhalcon\Cache\CacheFactory: Factory to create cache objects
#13439Str::dirSeparator() to ensure a path has a trailing slash #13439Phalcon\Assets\Manager:addCss, Phalcon\Assets\Manager::addJs, Phalcon\Assets\Collection:addCss, Phalcon\Assets\Collection:addJs accepts two additional parameters - version and autoVersion #12591orm.resultset_prefetch_records instructing the ORM (resultset) to prefetch the rows if the rows returned are less or equal to the setting. #13387Phalcon\Mvc\View::toString() to return the rendered view as a string #13825Phalcon\Helper\Arr::arrayToObject() to convert arrays to objects.Phalcon\Firewall component #13648orm.cast_last_insert_id_to_int option for Phalcon\Mvc\Model::setup() (castLastInsertIdToInt) to cast the lastInsertId on save() to int #13002Attributes collection class like a new Html component #13646Attributes into Phalcon\Forms\Form #13646Phalcon\Events\Manager to only use SplPriorityQueue to store events. #13924Phalcon\Translate\InterpolatorInterface now only accepts placeholder arrays. #13939Phalcon\Dispatcher::forward() and Phalcon\Dispatcher::setParams() now require an array as a parameter. #13935MyApp\\Tasks\\) now throw an exception instead of suppressing the error. #13936Phalcon\Mvc\Collection\Behavior\SoftDelete and Phalcon\Mvc\Model\Behavior\SoftDelete. #13930final. #13950Phalcon\Text to call methods from Phalcon\Helper\Str #13954Phalcon\Mvc\View\Simple::viewParams is now always an array.Phalcon\Mvc\View\Simple::render() params property is now always an array.Phalcon\Mvc\Model\CriteriaInterface::limit() now takes offset as an integer. #13977Phalcon\Mvc\Model\Manager::getModelSource() to use setModelSource() internally instead of setting the source manually #13987options is always an array in Phalcon\Mvc\Model\Relation. #13989Phalcon\Logger\Adapter\AbstractAdapter::process() is now actually abstract. #14012Phalcon\Mvc\ModelInterface::getRelated() return type declaration has changed (not always ResultsetInterface) #14035Phalcon\Mvc\Model, relations fetched using magic methods are now handled by Phalcon\Mvc\Model::getRelated() internally. #14035Phalcon\Mvc\Model\Transaction::rollback() to not throw a transaction by default. #13949Phalcon\Cache namespace and relevant classes to handle storing data to different stores. Introducing:
Phalcon\Storage\Serializer offering classes that implement the \Serializable interface.
Phalcon\Storage\Serializer\Base64Phalcon\Storage\Serializer\IgbinaryPhalcon\Storage\Serializer\JsonPhalcon\Storage\Serializer\MsgpackPhalcon\Storage\Serializer\NonePhalcon\Storage\Serializer\PhpPhalcon\Storage\Serializer\SerializerInterfacePhalcon\Storage\SerializerFactory: Factory to create serializersPhalcon\Storage\Adapter offering classes that implement the Phalcon\Storage\Adapter\AdapterInterface interface.
Phalcon\Storage\Adapter\ApcuPhalcon\Storage\Adapter\LibmemcachedPhalcon\Storage\Adapter\MemoryPhalcon\Storage\Adapter\RedisPhalcon\Storage\Adapter\StreamPhalcon\Storage\AdapterFactory: Factory to create adapters
#13439Phalcon\Mvc\Model\Query to not call numRows when selecting data #13387Phalcon\Mvc\Model\Query.Phalcon\Validation\Validator\Url to work with passed options. (FILTER_FLAG_PATH_REQUIRED, FILTER_FLAG_QUERY_REQUIRED) #13548Phalcon\Mvc\Model\Query\Builder will now omit offsets if they are set as 0.Phalcon\Mvc\Model\Transaction::__construct() service parameter must be a string or omitted.Phalcon\Logger\Formatter\Line::__construct() service parameters must be a string or omitted.Phalcon\Logger\Formatter\Json::__construct() service parameters must be a string or omitted.Phalcon\Forms\Form::getMessages().Phalcon\Crypt to accept auth tag, tag length and data for "gcm" and "ccm" modes. Removed insecure algorithms with modes: des*, rc2*, rc4*, des*, *ecb #13869Phalcon\Mvc\Model to copy the unset default values from the MetaData to the Model after a successful insert. #13781Phalcon\Mvc\Model::findFirst() now returns null. Phalcon\Mvc\Model::getRelated() for one to one relationships returns null #14044Mvc\Collection::isInitialized() now works as intended. #13931save() in models (as per #12317). #13945Mvc\Model and Mvc\ModelInterface findFirst to return ModelInterface or bool #13947Phalcon\Acl\Adapter\Memory::dropComponentAccess() now properly unsets values.GROUP BY field is now always an array. #13962Phalcon\Paginator\Adapter::getPaginate() to paginate() in documentation/tests (originally renamed in 4.0.0-alpha.1). #13973Phalcon\Security::computeHmac() by removing "%s" from output.Phalcon\Mvc\Model\Relation::isForeignKey() now returns false if the foreignKey option is set to false.Phalcon\Flash\Session::output() not to throw an exception when there are no messages stored in session. #14023Phalcon\Config\Adapter\Ini() to handle arrays correctly in .ini files. #14025Phalcon\Mvc\Model, now returning fresh records. #13531Phalcon\Mvc\Model::isRelationshipLoaded() is now working for every type of relations. #14035Phalcon\Mvc\Model::writeAttribute() to handle associative arrays correctly. #14021Phalcon\Html\Tag::appendTitle() and Phalcon\Html\Tag::prependTitle()to mirror Phalcon\Tag. #14039Phalcon\Validation::validate() with cancelOnFail. The validator will validate all elements and will stop processing validators on a per element basis if cancelOnFail is present. #13149Phalcon\Mvc\Models\Manager::getRelations() to return the many-to-many relationships also. #10839Phalcon\Validation\Validator\Numericality::validate() to parse non en locale numbers. #13843Phalcon\Mvc\Model::save() failing after a successful insert when default database fields are not updated. #13781arrayHelpers property from the Volt compiler. #13925Mvc\Model\MetaData\Session adapter (no longer supported) #13439Phalcon\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 #13439Phalcon\Mvc\View::cache()Phalcon\Mvc\View::getCache()Phalcon\Mvc\View\Simple::cache()Phalcon\Mvc\View\Simple::getCache()
#13439Phalcon\Cache\Multiple #13439Phalcon\Cache\BackendPhalcon\Cache\BackendInterfacePhalcon\Cache\Backend\ApcuPhalcon\Cache\Backend\FactoryPhalcon\Cache\Backend\FilePhalcon\Cache\Backend\LibmemcachedPhalcon\Cache\Backend\MemoryPhalcon\Cache\Backend\MongoPhalcon\Cache\Backend\RedisPhalcon\Cache\FrontendPhalcon\Cache\FrontendInterfacePhalcon\Cache\Frontend\Base64Phalcon\Cache\Frontend\DataPhalcon\Cache\Frontend\FactoryPhalcon\Cache\Frontend\IgbinaryPhalcon\Cache\Frontend\JsonPhalcon\Cache\Frontend\MsgpackPhalcon\Cache\Frontend\NonePhalcon\Cache\Frontend\Output
#13439Phalcon\Model\Manager::registerNamespaceAlias()Phalcon\Model\Manager::getNamespaceAlias()Phalcon\Model\Manager::getNamespaceAliases()Phalcon\Model\ManagerInterface::getNamespaceAlias()Phalcon\Model\ManagerInterface::registerNamespaceAlias()delimiter and enclosure options to Phalcon\Translate\Adapter\Csv constructorPhalcon\Http\Message\* namespace implementing PSR-7 and PSR-17. Introducing:
Phalcon\Http\Message\RequestPhalcon\Http\Message\RequestFactoryPhalcon\Http\Message\ResponsePhalcon\Http\Message\ResponseFactoryPhalcon\Http\Message\ServerRequestPhalcon\Http\Message\ServerRequestFactoryPhalcon\Http\Message\StreamPhalcon\Http\Message\StreamFactoryPhalcon\Http\Message\UploadedFilePhalcon\Http\Message\UploadedFileFactoryPhalcon\Http\Message\UriPhalcon\Http\Message\UriFactoryPhalcon\Http\Message\Stream\InputPhalcon\Http\Message\Stream\MemoryPhalcon\Http\Message\Stream\Temp
The implementation offers PSR-7/PSR-17 compatible components in a different namespace to allow usage of both Request and Response implementations for this version. #11789Phalcon\Helper\* namespace, offering easy manipulations for arrays, numbers etc..
Phalcon\Helper\ArrPhalcon\Helper\Number
#13889Phalcon\Collection, an object implementing ArrayAccess, Countable, IteratorAggregate, JsonSerializable, Serializable, offering an easy way to handle collections of data such as arrays, superglobals etc. #13886Phalcon\Collection, in Phalcon\Http\Message\Request and Phalcon\Http\Message\ServerRequest to handle the headers #13907Phalcon\Image\Adapter\Imagick::_watermark, setImageAlpha() fills the alpha channel with black before execution (replaced by evaluateImage()). Improved imagick compatibility. #13911Annotations\Reader::parse to always return an array #13923Phalcon\Registry to use the Phalcon\Collection class #13893Phalcon\Session\Bag to use the Phalcon\Collection class #13893Phalcon\Session\BagInterface #13893view:afterCompile and view:beforeCompile events for the Volt compiler #2182Phalcon\Config::mergesetBlacklist in Phalcon\Debug to allow the developer to "blacklist" certain variables from the $_REQUEST or $_SERVER superglobals being displayed on screen #13687invalid opcode in phalcon.so when using docker #13143Phalcon\Messages\Message. The method is now setMetadata and can be used to store any metadata from any component that emits messages #13811Phalcon\Mvc\Model:findFirst to throw an exception when the passed parameter for a primary key is not an array, string or numeric #13336Phalcon\Http\ResponseInterface::isSent, that was already used. #13836$this for the DI. #11926Phalcon\Acl\Subject to Phalcon\Acl\Component #13808Phalcon\Acl\SubjectInterface to Phalcon\Acl\ComponentInterface #13808Phalcon\Acl\SubjectAware to Phalcon\Acl\ComponentAware #13808Phalcon\Acl\Operation to Phalcon\Acl\Role #13808Phalcon\Acl\OperationInterface to Phalcon\Acl\RoleInterface #13808Phalcon\Acl\OperationAware to Phalcon\Acl\RoleAware #13808Phalcon\Acl\AdapterInterface::addOperation to Phalcon\Acl\AdapterInterface::addRole #13808Phalcon\Acl\AdapterInterface::isOperation to Phalcon\Acl\AdapterInterface::isRole #13808Phalcon\Acl\AdapterInterface::isSubject to Phalcon\Acl\AdapterInterface::isComponent #13808Phalcon\Acl\AdapterInterface::addSubject to Phalcon\Acl\AdapterInterface::addComponent #13808Phalcon\Acl\AdapterInterface::addSubjectAccess to Phalcon\Acl\AdapterInterface::addComponentAccess #13808Phalcon\Acl\AdapterInterface::dropSubjectAccess to Phalcon\Acl\AdapterInterface::dropComponentAccess #13808Phalcon\Acl\AdapterInterface::getActiveOperation to Phalcon\Acl\AdapterInterface::getActiveRole #13808Phalcon\Acl\AdapterInterface::getActiveSubject to Phalcon\Acl\AdapterInterface::getActiveComponent #13808Phalcon\Acl\AdapterInterface::getOperationss to Phalcon\Acl\AdapterInterface::getRoles #13808Phalcon\Acl\AdapterInterface::getSubjects to Phalcon\Acl\AdapterInterface::getComponents #13808Phalcon\Acl\Adapter::getActiveOperation to Phalcon\Acl\AdapterInterface::getActiveRole #13808Phalcon\Acl\Adapter::getActiveSubject to Phalcon\Acl\AdapterInterface::getActiveComponent #13808Phalcon\Acl\Adapter\Memory::addOperation to Phalcon\Acl\Adapter\Memory::addRole #13808Phalcon\Acl\Adapter\Memory::isOperation to Phalcon\Acl\Adapter\Memory::isRole #13808Phalcon\Acl\Adapter\Memory::isSubject to Phalcon\Acl\Adapter\Memory::isComponent #13808Phalcon\Acl\Adapter\Memory::addSubject to Phalcon\Acl\Adapter\Memory::addComponent #13808Phalcon\Acl\Adapter\Memory::addSubjectAccess to Phalcon\Acl\Adapter\Memory::addComponentAccess #13808Phalcon\Acl\Adapter\Memory::dropSubjectAccess to Phalcon\Acl\Adapter\Memory::dropComponentAccess #13808Phalcon\Acl\Adapter\Memory::getOperationss to Phalcon\Acl\Adapter\Memory::getRoles #13808Phalcon\Acl\Adapter\Memory::getSubjects to Phalcon\Acl\Adapter\Memory::getComponents #13808Phalcon\Mvc\Url to Phalcon\Url #13742Phalcon\Mvc\UrlInterface to Phalcon\UrlInterface #13742Phalcon\Mvc\Url\Exception to Phalcon\Url\Exception #13742Phalcon\Queue namespace and tests. Beanstalkd is near being abandoned. A new Queue component/adapter will be implemented for queueing needs of the community. #13364notFound() method in Phalcon\Translate\Adapter\NativeArray which returns the key requested if not found. The method can be overridden when extending the class, returning what the developer needs #13007Phalcon\Service\Locator, Phalcon\Service\LocatorInterface and Phalcon\Service\LocatorFactoryInterface to allow for the creation of service locators and factories throughout the application #13771Phalcon\Http\Request::setParameterFilters. It allows you to preset filters for specific input (i.e. id, name etc.). You can then retrieve the automatically sanitized values using Phalcon\Http\Request::getFilteredQuery, Phalcon\Http\Request::getFilteredPost and Phalcon\Http\Request::getFilteredPut #13488Phalcon\Mvc\Micro::handle to properly return a response object #13712Phalcon\Cache\Backend\Libmemcached returning "empty" values being as null when they could be 0, false or empty string. #13497SessionHandlerInterface::writePhalcon\Session\Manager to not interact with $_SESSION variable if the session has not been started #13718, #13520Phalcon\Cli\Console class not found error if handling the same module twice #13724Phalcon\Cache\Backend\Libmemcached returning "empty" values being as null when they could be 0, false or empty string. #13497Phalcon\Mvc\View\Engine\Volt\Compiler::functionCall building the incorrect code for the following tags; select, and select_static #13459Phalcon\Tag\Select not rendering without any options.Phalcon\Tag::renderTitle() parameters such as Phalcon\Tag::getTitle() #13706Phalcon\Html\Tag::renderTitle() parameters such as Phalcon\Html\Tag::getTitle() #13706Phalcon\Version::get() to follow semantic versioning #13720Phalcon\Translate\Adapter\NativeArray to accept a new parameter in the constructor triggerError. This will trigger an error if the key is not found #13007Phalcon\Acl\Memoryto be Acl::DENY instead of Acl::ALLOW #13758Phalcon\Mvc\User\Plugin to Phalcon\Plugin #13749Phalcon\Exception to implement \Throwable interface.#13750Phalcon\Http\Cookie. The httpOnly property is no longer initialised with a value #13464Phalcon\Acl\Memoryto be Acl::DENY instead of Acl::ALLOW #13769Phalcon\Config\Adapter\Grouped::_construct() when receiving an configuration file as a string from the arrayConfig parameter
to automatically attempt and the parameter defaultAdapter is set to an empty string, to determine the adapter from the file extension,
producing the same behaviour as Phalcon\Config\Factory::load() #13762Phalcon\Mvc\User\Component, Phalcon\Mvc\User\Module and Phalcon\Mvc\User\Plugin #13749Phalcon\Db\Adapter\Pdo\Postgresql::describeReferences to implement custom Postgresql rules 438Phalcon\Mvc\Router\RouteInterface::convert so that calling Phalcon\Mvc\Router\Group::add will return an instance that has convert method #13380Phalcon\Mvc\ModelInterface::getModelsMetaData #13070Phalcon\Validation\Validator\Ip, class used to validate ip address fields. It allows to validate a field selecting IPv4 or IPv6, allowing private or reserved ranges and empty values if necessary. #13574Phalcon\Messages\MessageInterface, Phalcon\Messages\Message, Phalcon\Messages\Exception and Phalcon\Messages\Messages to handle all messages for the application (model/validation) #13114getHandlerSuffix(), setHandlerSuffix() in Dispatcher, getTaskSuffix(), setTaskSuffix() in the CLI Dispatcher #13468forUpdate in the Sqlite dialect to override the method from the base dialect. #13539TYPE_ENUM in the Mysql adapter. #11368TYPE_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 #13151, #12223, #524, #13225 @zGaron, #12523 @Studentsov, #12471 @ruudboonPhalcon\Acl\Adapter\Memory::addRole support multiple inherited #13557Phalcon\Tag::renderTitle() that renders the title enclosed in <title> tags. #13547hasHeader() method to Phalcon\Http\Response to provide the ability to check if a header exists. #12189orm.case_insensitive_column_map to attempt to find value in the column map case-insensitively. Can be also enabled by setting caseInsensitiveColumnMap key in \Phalcon\Mvc\Model::setup(). #11802serializer object which implements FrontendInterface in DI to use it. #12808Phalcon\Mvc\Model\Query\BuilderInterface::offset #13599Phalcon\Http\Response\Cookies::getCookies #13591Phalcon\Mvc\Model::isRelationshipLoaded to check if relationship is loaded #12772Phalcon\Mvc\Micro, Phalcon\Mvc\Micro::setResponseHandler, to allow use of a custom response handler. #12452response::beforeSendHeaders and response::afterSendHeaders to Phalcon\Http\Response #10689Phalcon\Security::getToken is called the token used for checkings don't change. #12392Phalcon\Html\Tag, a component that creates HTML elements. It will replace Phalcon\Tag in a future version. This component does not use static method calls. #12392Phalcon\Paginator\RepositoryInterface for repository the current state of paginator and also optional sets the aliases for properties repository #10985, #10957Phalcon\Mvc\Model\Query\Builder. The Query Builder has the same methods as Phalcon\Mvc\Model\Query; getBindParams, setBindParams, getBindTypes and setBindTypes. #13368Phalcon\Html\Breadcrumbs, a component that creates HTML code for breadcrumbs. #13680Phalcon\Cli\Router\RouteInterface - delimiter, getDelimiterPhalcon\Cli\DispatcherInterface - setOptions, getOptionsPhalcon\Db\AdapterInterface - fetchColumn, insertAsDict, updateAsDictPhalcon\Db\DialectInterface - registerCustomFunction, getCustomFunctions, getSqlExpressionPhalcon\Di\ServiceInterface - getParameter, isResolvedPhalcon\Events\ManagerInterface - hasListenersPhalcon\Mvc\Model\Query\BuilderInterface - distinct, getDistinct, forUpdate, offset, getOffsetPhalcon\Mvc\Model\Transaction\ManagerInterface - setDbService, getDbService, setRollbackPendent, getRollbackPendentPhalcon\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, getHasManyToManyPhalcon\Mvc\Model\MessageInterface - setModel, getModel, setCode, getCodePhalcon\Mvc\Model\QueryInterface - getSingleResult, setBindParams, getBindParams, setBindTypes, setSharedLock, getBindTypes, getSqlPhalcon\Mvc\Model\RelationInterface - getParamsPhalcon\Mvc\Model\ResultsetInterface - setHydrateMode, getHydrateMode, getMessages, update, delete, filterPhalcon\Mvc\ModelInterface - getModelsMetaDataPhalcon\Session\AdapterInterface - setId, statusPhalcon\Validation\MessageInteraface - getCode, setCodePhalcon\CryptInterface - setPaddingPhalcon\Mvc\RouterInterface - attach #12676Phalcon\Container, a proxy container class to the Phalcon\Di implementing PSR-11 #12295Phalcon\Acl\Adapter\Memory::getActiveKey, Phalcon\Acl\Adapter\Memory::activeFunctionCustomArgumentsCount and Phalcon\Acl\Adapter\Memory::getActiveFunction to get latest key, number of custom arguments, and function used to acquire access #12547prefix and statsKey the Phalcon\Cache\Backend\Redis::queryKeys no longer returns prefixed keys, now it returns original keys without prefix. #13656Phalcon\Mvc\Application, Phalcon\Mvc\Micro and Phalcon\Mvc\Router now must have a URI to process #12380Phalcon\Mvc\Model\Manager::load no longer reuses already initialized models #12317Phalcon\Db\Dialect\Postgresql::describeReferences to generate correct SQL, added "on update" and "on delete" constraints 438Exception to Throwable #12288Phalcon\Mvc\Model\Query\Builder::addFrom to remove third parameter $with #13109Phalcon\Forms\Form::clear will no longer call Phalcon\Forms\Element::clear, instead it will clear/set default value itself, and Phalcon\Forms\Element::clear will now call Phalcon\Forms\Form::clear if it's assigned to the form, otherwise it will just clear itself. #13500Phalcon\Forms\Form::getValue will now also try to get the value by calling Tag::getValue or element's getDefault method before returning null, and Phalcon\Forms\Element::getValue calls Tag::getDefault only if it's not added to the form. #13500Phalcon\Mvc\Model to use the Phalcon\Messages\Message object for its messages #13114Phalcon\Validation\* to use the Phalcon\Messages\Message object for its messages #13114specialKey (_PHCR) optional for the Phalcon\Cache\Backend\Redis adapter #10905, #11608Phalcon\Db\Adapter\Pdo::query to use PDO's prepare and execute. Phalcon\Db\Adapter::fetchAll to use PDO's fetchAll #13515\Phalcon\Http\Response::setFileToSend filename last much _ #13496Phalcon\Tag::getTitle. It returns only the text. It accepts prepend, append booleans to prepend or append the relevant text to the title. #13547Phalcon\Di\Service constructor to no longer takes the name of the service. #13590Phalon\Tag::textArea to use htmlspecialchars to prevent XSS injection. #12428Phalon\Cache\Backend\*::get to use only positive numbers for lifetime 11759Phalcon\Logger to comply with PSR-3. The component has been rewritten to use adapters that alllow logging to different areas. The #13438Phalcon\Assets\Resource namespace to Phalcon\Assets\Asset #12082Phalcon\Assets\Resource to Phalcon\Assets\Asset #12082Phalcon\Assets\ResourceInterface to Phalcon\Assets\AssetInterface #12082Phalcon\Assets\Manager::addResource to Phalcon\Assets\Manager::addAsset #12082Phalcon\Assets\Manager::addResourceByType to Phalcon\Assets\Manager::addAssetByType #12082Phalcon\Assets\Manager::collectionResourcesByType to Phalcon\Assets\Manager::collectionAssetsByType #12082paginate in the place of getPaginate. Added previous in the place of before. #13492Phalcon\Mvc\Model\Query, to prevent overwrite root query's _sqlColumnAliases by sub-queries. #13006, #12548 and #1731Phalcon\Db\Dialect\Postgresql::addPrimaryKey to make primary key constraints names unique by prefixing them with the table name. #12629Phalcon\Mvc\Model\Query::_prepareSelect overwriting columns with the same alias #13552Phalcon\Http\RequestInterface to align with Phalcon\Http\Request #13061Phalcon\Acl\Resource to Phalcon\Acl\Subject #13639Phalcon\Acl\ResourceInterface to Phalcon\Acl\SubjectInterface #13639Phalcon\Acl\ResourceAware to Phalcon\Acl\SubjectAware #13639Phalcon\Acl\Role to Phalcon\Acl\Operation #13639Phalcon\Acl\RoleInterface to Phalcon\Acl\OperationInterface #13639Phalcon\Acl\RoleAware to Phalcon\Acl\OperationAware #13639Phalcon\Acl\AdapterInterface::addRole to Phalcon\Acl\AdapterInterface::addOperation #13639Phalcon\Acl\AdapterInterface::isRole to Phalcon\Acl\AdapterInterface::isOperation #13639Phalcon\Acl\AdapterInterface::isResource to Phalcon\Acl\AdapterInterface::isSubject #13639Phalcon\Acl\AdapterInterface::addResource to Phalcon\Acl\AdapterInterface::addSubject #13639Phalcon\Acl\AdapterInterface::addResourceAccess to Phalcon\Acl\AdapterInterface::addSubjectAccess #13639Phalcon\Acl\AdapterInterface::dropResourceAccess to Phalcon\Acl\AdapterInterface::dropSubjectAccess #13639Phalcon\Acl\AdapterInterface::getActiveRole to Phalcon\Acl\AdapterInterface::getActiveOperation #13639Phalcon\Acl\AdapterInterface::getActiveResource to Phalcon\Acl\AdapterInterface::getActiveSubject #13639Phalcon\Acl\AdapterInterface::getRoless to Phalcon\Acl\AdapterInterface::getOperations #13639Phalcon\Acl\AdapterInterface::getResources to Phalcon\Acl\AdapterInterface::getSubjects #13639Phalcon\Acl\Adapter::getActiveRole to Phalcon\Acl\AdapterInterface::getActiveOperation #13639Phalcon\Acl\Adapter::getActiveResource to Phalcon\Acl\AdapterInterface::getActiveSubject #13639Phalcon\Acl\Adapter\Memory::addRole to Phalcon\Acl\Adapter\Memory::addOperation #13639Phalcon\Acl\Adapter\Memory::isRole to Phalcon\Acl\Adapter\Memory::isOperation #13639Phalcon\Acl\Adapter\Memory::isResource to Phalcon\Acl\Adapter\Memory::isSubject #13639Phalcon\Acl\Adapter\Memory::addResource to Phalcon\Acl\Adapter\Memory::addSubject #13639Phalcon\Acl\Adapter\Memory::addResourceAccess to Phalcon\Acl\Adapter\Memory::addSubjectAccess #13639Phalcon\Acl\Adapter\Memory::dropResourceAccess to Phalcon\Acl\Adapter\Memory::dropSubjectAccess #13639Phalcon\Acl\Adapter\Memory::getRoless to Phalcon\Acl\Adapter\Memory::getOperations #13639Phalcon\Acl\Adapter\Memory::getResources to Phalcon\Acl\Adapter\Memory::getSubjects #13639Phalcon\Http\Response::setHeaders now merges the headers with any pre-existing ones in the internal collection #12836Phalcon\Di\FactoryDefault to not load by default
Phalcon\Session namespace by refactoring the component. Phalcon\Session\Manager is now the single component offering session manipulation by using adapters. Each adapter implements PHP's SessionHandlerInterface. Available adapters are Phalcon\Session\Adapter\Files, Phalcon\Session\Adapter\Libmemcached, Phalcon\Session\Adapter\Noop and Phalcon\Session\Adapter\Redis. #12833, #11341, #13535Phalcon\Mvc\Models magic method (setter) is fixed for arrays #13661Phalcon\Mvc\Model::skipAttributes and Phalcon\Mvc\Model::allowEmptyColumns allowEmptyStrings & skipAttributes repsect the column mapping. #12975, #13477xcache support from adapters #13628apc support from adapters (use apcu) #13628memcache support from adapters (use libmemcached) #13628Phalcon\Annotations\Adapter\ApcPhalcon\Annotations\Adapter\XcachePhalcon\Cache\Backend\ApcPhalcon\Cache\Backend\MemcachePhalcon\Cache\Backend\XcachePhalcon\Cli\Console::addModulesPhalcon\Debug::getMajorVersionPhalcon\Mvc\Model\Criteria::addWherePhalcon\Mvc\Model\Criteria::orderPhalcon\Mvc\Model\Metadata\ApcPhalcon\Mvc\Model\Metadata\MemcachePhalcon\Mvc\Model\Metadata\XcachePhalcon\Mvc\View::getParamsPhalcon\Mvc\ViewInterface::getParamsPhalcon\Paginator\Adapter\Model::getPaginatePhalcon\Paginator\Adapter\Model - $beforePhalcon\Paginator\Adapter\Model - $total_pagesPhalcon\Paginator\Adapter\NativeArray::getPaginatePhalcon\Paginator\Adapter\NativeArray - $beforePhalcon\Paginator\Adapter\NativeArray - $total_pagesPhalcon\Paginator\Adapter\QueryBuilder::getPaginatePhalcon\Paginator\Adapter\QueryBuilder - $beforePhalcon\Paginator\Adapter\QueryBuilder - $total_pagesPhalcon\Security::hasLibreSslPhalcon\Security::getSslVersionNumberPhalcon\Validation\Validator::isSetOptionPhalcon\Cli\Console::addModules in favor of Phalcon\Cli\Console::registerModulesPhalcon\Debug::getMajorVersion due to the fact that we never use this methodPhalcon\Dispatcher::setModelBinding in favor of Phalcon\Dispatcher::setModelBinderPhalcon\Http\RequestInterface::isSecureRequest in favor of Phalcon\Http\RequestInterface::isSecurePhalcon\Http\RequestInterface::isSoapRequested in favor of Phalcon\Http\Request::isSoapPhalcon\Logger\MultiplePhalcon\Mvc\Collection::validationHasFailedPhalcon\Mvc\Model\Criteria::order in favor of Phalcon\Mvc\Model\Criteria::orderByPhalcon\Mvc\Model\Validator\* in favor of Phalcon\Validation\Validator\*Phalcon\Mvc\Micro\Lazyloader::__call in favor of Phalcon\Mvc\Micro\Lazyloader::callMethodPhalcon\Model::reset #12317Phalcon\Validation\Message and Phalcon\Mvc\Model\Message in favor of Phalcon\Messages\MessagePhalcon\Validation\MessageInterface and Phalcon\Mvc\Model\MessageInterface in favor of Phalcon\Messages\MessageInterfacePhalcon\Validation\Message and Phalcon\Mvc\Model\Message in favor of Phalcon\Messages\MessagePhalcon\Validation\Message\Group in favor of Phalcon\Messages\MessagesPhalcon\Mvc\Collection::validate with object of type Phalcon\Mvc\Model\ValidatorInterface