Releases: phalcon/cphalcon
Releases · phalcon/cphalcon
v4.0.0-alpha.5
Added
- Added
Phalcon\Cli\Router\Route::setDescription()to sets the route's description #13936 - Added
Phalcon\Cli\Router\Route::getDescription()returns the route's description #13936 - Added
Phalcon\Image\Adapter\Gd::getVersion(). - Added
chunk(),first(),firstKey(),flatten(),group(),isUnique(),last(),lastKey(),order(),pluck(),sliceLeft(),sliceRight(),split(),tail(),validateAll(),validateAny()toPhalcon\Helper\Arr#13954 - Added
camelize(),concat(),countVowels(),decapitalize(),dynamic(),endsWith(),firstStringBetween(),includes(),increment(),isAnagram(),isLower(),isPalindrome(),isUpper(),lower(),random(),reduceSlashes(),startsWith(),uncamelize(),underscore(),upper()toPhalcon\Helper\Str#13954 - Added
Phalcon\Mvc\Model\Query\BuilderInterface::getModels()returns the models involved in the query - Added
addConnect(),addPurge()andaddTrace()toPhalcon\Mvc\Router\Groupand its interface. #14001 - Added
Phalcon\Mvc\Model\Transaction::throwRollbackException()which allows a transaction to throw an exception or not on a rollback. #13949 - Added
Phalcon\Cache\Cacheclass implementing PSR-16. Introducing:Phalcon\Cache\AdapterPhalcon\Cache\Adapter\ApcuPhalcon\Cache\Adapter\LibmemcachedPhalcon\Cache\Adapter\MemoryPhalcon\Cache\Adapter\RedisPhalcon\Cache\Adapter\Stream
Phalcon\Cache\AdapterFactory: Factory to create adaptersPhalcon\Cache\CacheFactory: Factory to create cache objects
#13439
- Added
Str::dirSeparator()to ensure a path has a trailing slash #13439 - Added assets versioning
Phalcon\Assets\Manager:addCss,Phalcon\Assets\Manager::addJs,Phalcon\Assets\Collection:addCss,Phalcon\Assets\Collection:addJsaccepts two additional parameters -versionandautoVersion#12591 - Added setting
orm.resultset_prefetch_recordsinstructing the ORM (resultset) to prefetch the rows if the rows returned are less or equal to the setting. #13387 - Added
Phalcon\Mvc\View::toString()to return the rendered view as a string #13825 - Added
Phalcon\Helper\Arr::arrayToObject()to convert arrays to objects. - Added
Phalcon\Firewallcomponent #13648 - Added
orm.cast_last_insert_id_to_intoption forPhalcon\Mvc\Model::setup()(castLastInsertIdToInt) to cast thelastInsertIdonsave()toint#13002 - Added
Attributescollection class like a new Html component #13646 - Added
AttributesintoPhalcon\Forms\Form#13646
Changed
- Refactored
Phalcon\Events\Managerto only useSplPriorityQueueto store events. #13924 Phalcon\Translate\InterpolatorInterfacenow only accepts placeholder arrays. #13939Phalcon\Dispatcher::forward()andPhalcon\Dispatcher::setParams()now require an array as a parameter. #13935- CLI Routes with bad class names (eg.
MyApp\\Tasks\\) now throw an exception instead of suppressing the error. #13936 - Refactored
Phalcon\Mvc\Collection\Behavior\SoftDeleteandPhalcon\Mvc\Model\Behavior\SoftDelete. #13930 - Model methods that extend Model Manager functionality are now
final. #13950 - Changed
Phalcon\Textto call methods fromPhalcon\Helper\Str#13954 - Setting the views directory no longer requires a trailing slash when using Simple View.
Phalcon\Mvc\View\Simple::viewParamsis now always an array.Phalcon\Mvc\View\Simple::render()paramsproperty is now always an array.Phalcon\Mvc\Model\CriteriaInterface::limit()now takesoffsetas an integer. #13977- Changed
Phalcon\Mvc\Model\Manager::getModelSource()to usesetModelSource()internally instead of setting the source manually #13987 - The property
optionsis always an array inPhalcon\Mvc\Model\Relation. #13989 Phalcon\Logger\Adapter\AbstractAdapter::process()is now actually abstract. #14012Phalcon\Mvc\ModelInterface::getRelated()return type declaration has changed (not alwaysResultsetInterface) #14035- In
Phalcon\Mvc\Model, relations fetched using magic methods are now handled byPhalcon\Mvc\Model::getRelated()internally. #14035 - Changed
Phalcon\Mvc\Model\Transaction::rollback()to not throw a transaction by default. #13949 - Changed
Phalcon\Cachenamespace and relevant classes to handle storing data to different stores. Introducing:Phalcon\Storage\Serializeroffering classes that implement the\Serializableinterface.Phalcon\Storage\Serializer\Base64Phalcon\Storage\Serializer\IgbinaryPhalcon\Storage\Serializer\JsonPhalcon\Storage\Serializer\MsgpackPhalcon\Storage\Serializer\NonePhalcon\Storage\Serializer\PhpPhalcon\Storage\Serializer\SerializerInterface
Phalcon\Storage\SerializerFactory: Factory to create serializersPhalcon\Storage\Adapteroffering classes that implement thePhalcon\Storage\Adapter\AdapterInterfaceinterface.Phalcon\Storage\Adapter\ApcuPhalcon\Storage\Adapter\LibmemcachedPhalcon\Storage\Adapter\MemoryPhalcon\Storage\Adapter\RedisPhalcon\Storage\Adapter\Stream
Phalcon\Storage\AdapterFactory: Factory to create adapters
#13439
- Changed
Phalcon\Mvc\Model\Queryto not callnumRowswhen selecting data #13387 - Bind parameters and bind types are now always arrays in
Phalcon\Mvc\Model\Query. - Changed
Phalcon\Validation\Validator\Urlto work with passed options. (FILTER_FLAG_PATH_REQUIRED,FILTER_FLAG_QUERY_REQUIRED) #13548 Phalcon\Mvc\Model\Query\Builderwill 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.- Removed deprecated code from
Phalcon\Forms\Form::getMessages(). - Loading a Module (either MVC or CLI) now throws an exception if the path does not exists regardless of whether the class is already loaded.
- Changed
Phalcon\Cryptto accept auth tag, tag length and data for "gcm" and "ccm" modes. Removed insecure algorithms with modes:des*,rc2*,rc4*,des*,*ecb#13869 - Changed
Phalcon\Mvc\Modelto copy the unset default values from theMetaDatato theModelafter a successful insert. #13781 - Changed
Phalcon\Mvc\Model::findFirst()now returnsnull.Phalcon\Mvc\Model::getRelated()for one to one relationships returnsnull#14044
Fixed
- Fixed
Mvc\Collection::isInitialized()now works as intended. #13931 - Update docblocks to show that we can no longer assign properties via
save()in models (as per #12317). #13945 - Fixed
Mvc\ModelandMvc\ModelInterfacefindFirstto returnModelInterfaceorbool#13947 Phalcon\Acl\Adapter\Memory::dropComponentAccess()now properly unsets values.- Volt options 'separator' and 'extension' now work again. #13971
- Query Builder's
GROUP BYfield is now always an array. #13962 - Renamed
Phalcon\Paginator\Adapter::getPaginate()topaginate()in documentation/tests (originally renamed in 4.0.0-alpha.1). #13973 - Fixed the exception message in
Phalcon\Security::computeHmac()by removing"%s"from output. Phalcon\Mvc\Model\Relation::isForeignKey()now returns false if theforeignKeyoption is set tofalse.- Fixed
Phalcon\Flash\Session::output()not to throw an exception when there are no messages stored in session. #14023 - Fixed
Phalcon\Config\Adapter\Ini()to handle arrays correctly in .ini files. [#14025](https://gi...
v4.0.0-alpha.4
Added
- Added
delimiterandenclosureoptions toPhalcon\Translate\Adapter\Csvconstructor - Added
Phalcon\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 bothRequestandResponseimplementations for this version. #11789
- Added
Phalcon\Helper\*namespace, offering easy manipulations for arrays, numbers etc..Phalcon\Helper\ArrPhalcon\Helper\Number
#13889
- Added
Phalcon\Collection, an object implementingArrayAccess,Countable,IteratorAggregate,JsonSerializable,Serializable, offering an easy way to handle collections of data such as arrays, superglobals etc. #13886 - Added
Phalcon\Collection, inPhalcon\Http\Message\RequestandPhalcon\Http\Message\ServerRequestto handle the headers #13907
Fixed
- Fixed
Phalcon\Image\Adapter\Imagick::_watermark,setImageAlpha()fills the alpha channel with black before execution (replaced byevaluateImage()). Improved imagick compatibility. #13911 - Fixed Assets Manager hard reference to \Phalcon\Tag, should use DI #12261
Changed
- Refactored
Phalcon\Registryto use thePhalcon\Collectionclass #13893 - Refactored
Phalcon\Session\Bagto use thePhalcon\Collectionclass #13893 - Refactored almost all files of the project to abide by the new coding standard for Phalcon. Certain files have been intentionally left untouched because they will be relaced later on. #13915
Removed
- Removed
Phalcon\Session\BagInterface#13893
v4.0.0-alpha.3
Added
- Added
view:afterCompileandview:beforeCompileevents for the Volt compiler #2182 - Added array merge support to
Phalcon\Config::merge - Added
setBlacklistinPhalcon\Debugto allow the developer to "blacklist" certain variables from the$_REQUESTor$_SERVERsuperglobals being displayed on screen #13687 - Changed view engine service closures to no longer receive the dependency injector as the second parameter. Instead use
$thisfor the DI. #11926
Fixed
- Fixed router and controller parameter inconsistencies (camelize etc.) #13555
- Fixed
invalid opcodeinphalcon.sowhen using docker #13143 - Fixed storing related model data in
Phalcon\Messages\Message. The method is nowsetMetadataand can be used to store any metadata from any component that emits messages #13811 - Fixed Dispatcher calling camelize twice and producing incorrect results #12829
- Fixed
Phalcon\Mvc\Model:findFirstto throw an exception when the passed parameter for a primary key is not an array, string or numeric #13336 - Added
Phalcon\Http\ResponseInterface::isSent, that was already used. #13836
Changed
- Renamed
Phalcon\Acl\SubjecttoPhalcon\Acl\Component#13808 - Renamed
Phalcon\Acl\SubjectInterfacetoPhalcon\Acl\ComponentInterface#13808 - Renamed
Phalcon\Acl\SubjectAwaretoPhalcon\Acl\ComponentAware#13808 - Renamed
Phalcon\Acl\OperationtoPhalcon\Acl\Role#13808 - Renamed
Phalcon\Acl\OperationInterfacetoPhalcon\Acl\RoleInterface#13808 - Renamed
Phalcon\Acl\OperationAwaretoPhalcon\Acl\RoleAware#13808 - Renamed
Phalcon\Acl\AdapterInterface::addOperationtoPhalcon\Acl\AdapterInterface::addRole#13808 - Renamed
Phalcon\Acl\AdapterInterface::isOperationtoPhalcon\Acl\AdapterInterface::isRole#13808 - Renamed
Phalcon\Acl\AdapterInterface::isSubjecttoPhalcon\Acl\AdapterInterface::isComponent#13808 - Renamed
Phalcon\Acl\AdapterInterface::addSubjecttoPhalcon\Acl\AdapterInterface::addComponent#13808 - Renamed
Phalcon\Acl\AdapterInterface::addSubjectAccesstoPhalcon\Acl\AdapterInterface::addComponentAccess#13808 - Renamed
Phalcon\Acl\AdapterInterface::dropSubjectAccesstoPhalcon\Acl\AdapterInterface::dropComponentAccess#13808 - Renamed
Phalcon\Acl\AdapterInterface::getActiveOperationtoPhalcon\Acl\AdapterInterface::getActiveRole#13808 - Renamed
Phalcon\Acl\AdapterInterface::getActiveSubjecttoPhalcon\Acl\AdapterInterface::getActiveComponent#13808 - Renamed
Phalcon\Acl\AdapterInterface::getOperationsstoPhalcon\Acl\AdapterInterface::getRoles#13808 - Renamed
Phalcon\Acl\AdapterInterface::getSubjectstoPhalcon\Acl\AdapterInterface::getComponents#13808 - Renamed
Phalcon\Acl\Adapter::getActiveOperationtoPhalcon\Acl\AdapterInterface::getActiveRole#13808 - Renamed
Phalcon\Acl\Adapter::getActiveSubjecttoPhalcon\Acl\AdapterInterface::getActiveComponent#13808 - Renamed
Phalcon\Acl\Adapter\Memory::addOperationtoPhalcon\Acl\Adapter\Memory::addRole#13808 - Renamed
Phalcon\Acl\Adapter\Memory::isOperationtoPhalcon\Acl\Adapter\Memory::isRole#13808 - Renamed
Phalcon\Acl\Adapter\Memory::isSubjecttoPhalcon\Acl\Adapter\Memory::isComponent#13808 - Renamed
Phalcon\Acl\Adapter\Memory::addSubjecttoPhalcon\Acl\Adapter\Memory::addComponent#13808 - Renamed
Phalcon\Acl\Adapter\Memory::addSubjectAccesstoPhalcon\Acl\Adapter\Memory::addComponentAccess#13808 - Renamed
Phalcon\Acl\Adapter\Memory::dropSubjectAccesstoPhalcon\Acl\Adapter\Memory::dropComponentAccess#13808 - Renamed
Phalcon\Acl\Adapter\Memory::getOperationsstoPhalcon\Acl\Adapter\Memory::getRoles#13808 - Renamed
Phalcon\Acl\Adapter\Memory::getSubjectstoPhalcon\Acl\Adapter\Memory::getComponents#13808 - Renamed
Phalcon\Mvc\UrltoPhalcon\Url#13742 - Renamed
Phalcon\Mvc\UrlInterfacetoPhalcon\UrlInterface#13742 - Renamed
Phalcon\Mvc\Url\ExceptiontoPhalcon\Url\Exception#13742
Removed
- Removed the CSS/JS minifiers. This affects the Assets\Filter classes. For now the classes return the original content. #13819, #10118
- Removed
Phalcon\Queuenamespace and tests. Beanstalkd is near being abandoned. A new Queue component/adapter will be implemented for queueing needs of the community. #13364
v3.4.3
v4.0.0-alpha.2
Added
- Added
notFound()method inPhalcon\Translate\Adapter\NativeArraywhich returns the key requested if not found. The method can be overriden when extending the class, returning what the developer needs #13007 - Added
Phalcon\Service\Locator,Phalcon\Service\LocatorInterfaceandPhalcon\Service\LocatorFactoryInterfaceto allow for the creation of service locators and factories throughout the application #13771 - Added
Phalcon\Http\Request::setParameterFilters. It allows you to preset filters for specific input (i.e.id,nameetc.). You can then retrieve the automatcally sanitized values usingPhalcon\Http\Request::getFilteredQuery,Phalcon\Http\Request::getFilteredPostandPhalcon\Http\Request::getFilteredPut#13488
Fixed
- Fixed
Phalcon\Mvc\Micro::handleto properly return a response object #13712 - Fixed
Phalcon\Cache\Backend\Libmemcachedreturning "empty" values being asnullwhen they could be0,falseor emptystring. #13497 - Fixed session adapters to properly implement
SessionHandlerInterface::write - Fixed
Phalcon\Session\Managerto not interact with$_SESSIONvariable if the session has not been started #13718, #13520 - Fixed
Phalcon\Cli\Consoleclass not found error if handling the same module twice #13724 - Fixed
Phalcon\Cache\Backend\Libmemcachedreturning "empty" values being asnullwhen they could be0,falseor emptystring. #13497 - Fixed
Phalcon\Mvc\View\Engine\Volt\Compiler::functionCallbuilding the incorrect code for the following tags;select, andselect_static#13459 - Fixed
Phalcon\Tag\Selectnot rendering without any options.
Changed
- Changed the
Phalcon\Tag::renderTitle()parameters such asPhalcon\Tag::getTitle()#13706 - Changed the
Phalcon\Html\Tag::renderTitle()parameters such asPhalcon\Html\Tag::getTitle()#13706 - Changed the
Phalcon\Version::get()to follow semantic versioning #13720 - Changed the
Phalcon\Translate\Adapter\NativeArrayto accept a new parameter in the constructortriggerError. This will trigger an error if the key is not found #13007 - Changed the default action of
Phalcon\Acl\Memoryto beAcl::DENYinstead ofAcl::ALLOW#13758 - Changed
Phalcon\Mvc\User\PlugintoPhalcon\Plugin#13749 - Changed
Phalcon\Exceptionto implement\Throwableinterface.#13750 - Changed
Phalcon\Http\Cookie. ThehttpOnlyproperty is no longer initialised with a value #13464 - Changed the default action for no arguments of
Phalcon\Acl\Memoryto beAcl::DENYinstead ofAcl::ALLOW#13769 - Changed the implementation of
Phalcon\Filter. It uses a service locator and a service locator factory now. It has more sanitizers now. #13060
v4.0.0-alpha1
THIS RELEASE IS NOT BACKWARDS COMPATIBLE
Added
- Added Code of Conduct for the project
- Added
Phalcon\Db\Adapter\Pdo\Postgresql::describeReferencesto implement custom Postgresql rules 438 - Added
Phalcon\Mvc\Router\RouteInterface::convertso that callingPhalcon\Mvc\Router\Group::addwill return an instance that hasconvertmethod #13380 - Added
Phalcon\Mvc\ModelInterface::getModelsMetaData#13070 - Added
Phalcon\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. #13574 - Added
Phalcon\Messages\MessageInterface,Phalcon\Messages\Message,Phalcon\Messages\ExceptionandPhalcon\Messages\Messagesto handle all messages for the application (model/validation) #13114 - Added
getHandlerSuffix(),setHandlerSuffix()in Dispatcher,getTaskSuffix(),setTaskSuffix()in the CLI Dispatcher #13468 - Added ability to set a custom template for the Flash Messenger. #13445
- Added
forUpdatein the Sqlite dialect to override the method from the base dialect. #13539 - Added
TYPE_ENUMin the Mysql adapter. #11368 - Added more column types for the Mysql adapter. The adapter supports
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#13151, #12223, #524, #13225 @zGaron, #12523 @Studentsov, #12471 @ruudboon - Added
Phalcon\Acl\Adapter\Memory::addRolesupport multiple inherited #13557 - Added
Phalcon\Tag::renderTitle()that renders the title enclosed in<title>tags. #13547 - Added
hasHeader()method toPhalcon\Http\Responseto provide the ability to check if a header exists. #12189 - Added global setting
orm.case_insensitive_column_mapto attempt to find value in the column map case-insensitively. Can be also enabled by settingcaseInsensitiveColumnMapkey in\Phalcon\Mvc\Model::setup(). #11802 - Added the ability to use FrontendInterface to serialize Model and ResultSet - Inject a
serializerobject which implementsFrontendInterfacein DI to use it. #12808 - Added
Phalcon\Mvc\Model\Query\BuilderInterface::offset#13599 - Added
Phalcon\Http\Response\Cookies::getCookies#13591 - Added
Phalcon\Mvc\Model::isRelationshipLoadedto check if relationship is loaded #12772 - Added an easy way to work with Phalcon and run the tests locally, using nanobox.io #13578
- Added response handler to
Phalcon\Mvc\Micro,Phalcon\Mvc\Micro::setResponseHandler, to allow use of a custom response handler. #12452 - Added two new events
response::beforeSendHeadersandresponse::afterSendHeaderstoPhalcon\Http\Response#10689 - Added a retainer for the current token to be used during the checkings, so when
Phalcon\Security::getTokenis called the token used for checkings don't change. #12392 - Added
Phalcon\Html\Tag, a component that creates HTML elements. It will replacePhalcon\Tagin a future version. This component does not use static method calls. #12392 - Added
Phalcon\Paginator\RepositoryInterfacefor repository the current state ofpaginatorand also optional sets the aliases for properties repository #10985, #10957 - Added bind support to
Phalcon\Mvc\Model\Query\Builder. The Query Builder has the same methods asPhalcon\Mvc\Model\Query;getBindParams,setBindParams,getBindTypesandsetBindTypes. #13368 - Added
Phalcon\Html\Breadcrumbs, a component that creates HTML code for breadcrumbs. #13680 - Added more methods to interfaces.
Phalcon\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,getHasManyToMany,registerNamespaceAlias,getNamespaceAliasPhalcon\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#12676
- Added
Phalcon\Container, a proxy container class to thePhalcon\DIimplementing PSR-11 #12295 - Added
Phalcon\Acl\Adapter\Memory::getActiveKey,Phalcon\Acl\Adapter\Memory::activeFunctionCustomArgumentsCountandPhalcon\Acl\Adapter\Memory::getActiveFunctionto get latest key, number of custom arguments, and function used to acquire access #12547
Changed
- Now Phalcon requires the PSR PHP extension to be installed and enabled
- By configuring
prefixandstatsKeythePhalcon\Cache\Backend\Redis::queryKeysno longer returns prefixed keys, now it returns original keys without prefix. #13656 - The
Phalcon\Mvc\Application,Phalcon\Mvc\MicroandPhalcon\Mvc\Routernow must have a URI to process #12380 - Response headers and cookies are no longer prematurely sent #12378
- You can no longer assign data to models whilst saving them #12317
- The
Phalcon\Mvc\Model\Manager::loadno longer reuses already initialized models #12317 - Changed
Phalcon\Db\Dialect\Postgresql::describeReferencesto generate correct SQL, added "on update" and "on delete" constraints 438 - Changed catch
ExceptiontoThrowable#12288 - Changed
Phalcon\Mvc\Model\Query\Builder::addFromto remove third parameter$with#13109 Phalcon\Forms\Form::clearwill no longer callPhalcon\Forms\Element::clear, instead it will clear/set default value itself, andPhalcon\Forms\Element::clearwill now callPhalcon\Forms\Form::clearif it's assigned to the form, otherwise it will just clear itself. [#13500](https://gith...
v3.4.2
- Added missing Volt tags to array helper in
Phalcon\Mvc\View\Engine\Volt\Compiler::functionCall#13447 - Added the ability to explicitly define nullable columns (especially timestamp ones) #13099
- Refactored
Phalcon\Db\Adapter\Pdo::queryto use PDO'sprepareandexecuteandPhalcon\Db\Adapter::fetchAllto use PDO'sfetchAll - Fixed
Phalcon\Validation\Validator\Numericalityto accept float numbers on locales with comma decimal point #13450 - Fixed
Phalcon\Tagso it unsetsparametersbefore passing options array toself::renderAttributes - Fixed
Phalcon\Http\Response::setFileToSendfilename; when file downloaded it had an extra_ - Fixed
Phalcon\Mvc\Model\Query::executeto properly bind parameters to sub queries #11605 - Fixed
Phalcon\Http\Request::getJsonRawBody#13501. It will now return false when the body content is empty, as well as when it encounters an error whilst decoding the JSON content - Fixed
Phalcon\Validation::preCheckingto allow usePhalcon\Db\RawValueas an empty container forisAllowEmptyoption #13549, #13573, #12519 - Fixed object binding and placeholder creation in
Phalcon\Db\Adapter::insertandPhalcon\Db\Adapter::update#13058 - Fixed
Phalcon\Config\Adapter\Ininot building config objects properly for numerical keys #12725, #13604 - Fixed incorrect scope of view variables #12176, #12385, #12648, #12705, #13288
- Fixed
Phalcon\Config::_mergenot merging config with numeric properties properly #13351.
v3.4.1
- Changed
Phalcon\Cache\Backend\Redisto support connection timeout parameter - Fixed
Phalcon\Validaiton\Validator\Uniqueness::isUniquenessModelto properly get value of primary key when it has different name in column map #13398 - Fixed bad performance for repeated
Phalcon\Mvc\Router::getRouteByNameandPhalcon\Mvc\Router::getRouteByIdcalls for applications with many routes - Fixed incorrect tinyblob bind type in
Phalcon\Db\Adapter\Pdo\Mysql::describeColumns#13423 - Fixed
Phalcon\Http\Request::getPutto provide json content-type support #12892, #13418
v3.4.0
- Added
Phalcon\Mvc\Router::attachto addRouteobject directly intoRouter#13326 - Added the ability to listen
request:beforeAuthorizationResolveandrequest:afterAuthorizationResolveevents. This ability enables using custom authorization resolvers #13327 - Added call event
afterFetchinPhalcon\Mvc\Model:refresh#12220 - Added
Phalcon\Http\Response::getReasonPhraseto retrieve the reason phrase from theStatusheader #13314 - Added
Phalcon\Loader::setFileCheckingCallbackto set internal file existence resolver #13360 - Added ability to pass aggregation options for
Phalcon\Mvc\Collection::aggregate#12302 - Added
Phalcon\Crypt::setHashAlgoto set the name of hashing algorithm used to the calculating message digest #13379 - Added
Phalcon\Crypt::getHashAlgoto get the name of hashing algorithm used to the calculating message digest #13379 - Added
Phalcon\Crypt::useSigningto set if the calculating message digest must used (NOTE: This feature will be enabled by default in Phalcon 4.0.0) #13379 - Added
Phalcon\Crypt::getAvailableHashAlgosto get a list of registered hashing algorithms suitable for calculating message digest #13379 - Added
Phalcon\Crypt::__constructso now the cipher can be set at object construction and the calculating message digest can be enabled without the need to callsetCipheroruseSigningexplicitly #13379 - Added
Phalcon\Crypt\Mismatch. Exceptions thrown inPhalcon\Cryptwill use this class #13379 - Added
Phalcon\Http\Cookie::setSignKeyto set sign key used to generate a message authentication code (eg. message digest) - Added
Phalcon\Http\Response\Cookies::setSignKeyto set sign key used to generate a message authentication code (eg. message digest) - Changed
Phalcon\Crypt::setCipherso that IV length will be reconfigured during setting the cipher algorithm - Changed
Phalcon\Crypt::setCipherso that method will throwPhalcon\Crypt\Exceptionif a cipher is unavailable - Fixed regression (#13308) for
Phalcon\Debug\Dump::outputto correctly work with detailed mode #13315 - Fixed
Phalcon\Mvc\Model\Query\Builder::havingandPhalcon\Mvc\Model\Query\Builder::whereto correctly merge the bind types #11487 - Fixed
Phalcon\Mvc\Model::setSnapshotDatato properly sets the old snapshot - Do not throw Exception when superglobal does not exist #13252, #13254, #12918
v3.3.2
- Fixed
Phalcon\Db\Dialect\Mysql::modifyColumnto produce valid SQL for renaming the column #13012 - Fixed
Phalcon\Forms\Form::getMessagesto return back previous behaviour: return array of messages with element name as key #13294 - Fixed
Phalcon\Mvc\Model\Behavior\SoftDelete::notifyto solve the exception that soft deletion renamed model #13302, #13306 - Fixed
E_DEPRECATEDerror foreach()inPhalcon\Debug\Dump#13253