Skip to content

Releases: phalcon/cphalcon

v5.0.0-alpha.1

31 Mar 17:21
b08eab7
Compare
Choose a tag to compare

Supported PHP Versions: 7.4, 8.0

Fixed

  • Support for PHP 7.4 and PHP 8.0
  • Fixed Logger\Log::log() log to recognize all log levels #15214
  • Changed setClaims to be protected so that the Phalcon\Security\JWT\Builder class can be properly extended. #15322
  • Fixed Phalcon\Mvc\Model::average() to return float value when is string #15287
  • Fixed Phalcon\Storage\Serializer\Igbinary to store is_numeric and bool values properly #15240
  • Fixed Phalcon\Validation\Validator\Confirmation was failing to compare cases such as 000123 = 123 #15347
  • Fixed Phalcon\Storage\Adapter failing to retrieve empty like stored data (such as [], 0, false) 15125
  • Fixed declarations for function getEventsManager() to allow null return 15010
  • Removed underscore from method names (starting) to abide with PSR-12 15345
  • Fixed Phalcon\Flash\Session::has() to properly check if any messages are existing 15204

v4.1.0

31 Oct 15:57
81561d8
Compare
Choose a tag to compare

Supported PHP Versions: 7.2, 7.3, 7.4

Added

  • Added JWT (JSON Web Tokens) support under Phalcon\Security\JWT. Offers support for:
    • Token
    • Parser
    • Builder
    • Validator
    • Signers (None, HMAC)
    • Base64 encode/decodeUrl helper class
      #13856
  • Added additional HTML helpers under Phalcon\Html\Helper: Anchor, Base, Body, Button, Close, Element, Form, Img, Input\Color, Input\Date, Input\DateTime, Input\DateTimeLocal, Input\Email, Input\File, Input\Hidden, Input\Image, Input\Input, Input\Month, Input\Numeric, Input\Password, Input\Range, Input\Select, Input\Search, Input\Submit, Input\Tel, Input\Text, Input\Textarea, Input\Time, Input\Url, Input\Week, Label, Link, Meta, Ol, Script, Style, Title, Ul
    #14696
  • Added Phalcon\Http\Request::getPreferredIsoLocaleVariant() to return the base language if this is a specific one (en vs en-US) #3135
  • Added preload for Volt, which will send a HTTP/2 preload header #13128
  • Added Phalcon\Helper\Arr::blackList() to exclude elements of an array by the keys obtained from the elements of a blacklist #14801 @TimurFlush
  • Added Phalcon\Debug::renderHtml() to get a HTML representation of the exception #14794 @TimurFlush
  • Added Phalcon\Mvc\Router\Annotations->setActionPreformatCallback($callback) to set a callback which pre-formats actions to custom pattern #14819
  • Added new PDO wrapper for the Data Mapper implementation, with decorated instance, locator and profiler
    • Phalcon\DataMapper\Pdo\Connection
    • Phalcon\DataMapper\Pdo\Connection\Decorated
    • Phalcon\DataMapper\Pdo\Profiler\Profiler
    • Phalcon\DataMapper\Pdo\Profiler\MemoryLogger
    • Phalcon\DataMapper\Pdo\ConnectionLocator
      This component will be used in the Data Mapper implementation but can be used as a stand alone component for PDO connections. #14733
  • Added new Query Builder, as well as a factory, for the Data Mapper implementation supporting CRUD with bound parameters
    • Phalcon\DataMapper\Query\Bind
    • Phalcon\DataMapper\Query\Delete
    • Phalcon\DataMapper\Query\Insert
    • Phalcon\DataMapper\Query\Select
    • Phalcon\DataMapper\Query\Update
    • Phalcon\DataMapper\Query\QueryFactory
      This component can be used to create SQL statements using a fluent interface. Optionally the statements can be executed from the builder itself using the DataMapper\Pdo connection. #14734
  • Added Phalcon\Mvc\Micro\LazyLoader::getHandler() to return real handler when using lazy loaded controllers for Phalcon\Mvc\Micro #14871 @Jurigag
  • Added Phalcon\Collection\CollectionInterface and Phalcon\Config\ConfigInterface to use as typehints when extending or implementing custom classes #15106 @BeMySlaveDarlin
  • Added Phalcon\Db\Adapter\AdapterInterface::getDefaultValue() and supportsDefaultValue() methods to properly support the DEFAULT keyword #15180
  • Added Phalcon\Db\Adapter\AbstractAdapter::supportsDefaultValue() method to properly support the DEFAULT keyword #15180

Changed

  • Added service checks for the session. Now cookies will be saved in the session only when the session service is defined #11770, #14649
  • Changed Phalcon\Db\Adapter\*::getRawSQLStatement() to return the full SQL query with parameters #12196
  • Changed Phalcon\Filter::sanitize to throw a E_USER_NOTICE when a filter does not exist. #14679
  • PHQL now supports the use of any printable characters from the extended ASCII table for escaped identifiers. The exception characters are [ and ]. To use [ and ] escape they (\[, \]) #14535
  • Removed UTF-8 charset when using Phalcon\Http\Response::setJsonContent to apply with rfc7159
  • Changed the visibility of properties in Phalcon\Http\Message\Uri to work with clone. #15040
  • Change Phalcon\Validation\AbstractValidator::__construct. Save custom validator message in options. #15053 @ivan-zolotavin
  • Add proxy methods without _ prefix in methods names: getRelatedRecords(), groupResult(), exists(), preSaveRelatedRecords(), preSave(), doLowUpdate(), postSaveRelatedRecords(), postSave(), cancelOperation(), doLowInsert(), getConnection(), getConnectionService(), getVersion(), getSpecial() #14971
  • Modified Phalcon\Mvc\Model\Relation to accept callable params for model relations. #15158

Fixed

  • Fixed Phalcon\Db\Dialect\Mysql::getColumnDefinition to recognize size for DATETIME, TIME and TIMESTAMP columns #13297
  • Fixed Phalcon\Events\Manager to provide callable support #13322, #15045
  • Fixed Phalcon\Validation\Validator\Uniqueness fixed except query #15084
  • Fixed Phalcon\Mvc\Model to also check the params option in cascade relations when deleting #15098
  • Fixed Phalcon\Mvc\Model to also check the params option in restricted relations when deleting #15172
  • Fixed Phalcon\Mvc\Model::findFirst() to return correct value #15077
  • Fixed Phalcon\Mvc\Model\CriteriaInterface::where() parameters #15144
  • Fixed Phalcon\Http\Response\Cookies::set() to utilize the options parameter correctly #15129
  • Fixed Phalcon\Http\Cookie::send() to define options parameter #15142
  • Fixed Phalcon\Crypt performance issues. #15118
  • Fixed Phalcon\Mvc\Router\Route unicode support in patterns #15102
  • Fixed fatal error in Phalcon\Mvc\Model::cloneResultMap() when column map is used with orm.cast_on_hydrate turned on. #14617
  • Fixed Phalcon\Mvc\Model::sum(), average(), minimum(), maxmium(), count() to utilize the transaction parameter. #15113
  • Fixed Phalcon\Mvc\Model::__set() to clear dirtyRelated when empty array is set. #14822
  • Fixed Phalcon\Mvc\Model to skip columns with default values when the DEFAULT keyword is not supported by the database adapter (SQLite) #15180
  • Fixed Phalcon\Mvc\Router to handle numeric routes properly #14926
  • Fixed Phalcon\Session\Adapter\Redis and Phalcon\Session\Adapter\Libmemcached to utilize the prefix option #15184
  • Fixed Phalcon\Mvc\Model to save the modified properties of previously queried single related records. #15148

Removed

  • Removed Phalcon\Http\Cookie binding to session #11770
    • Phalcon\Http\Cookie no longer depends on the session service and data will not be duplicated in the session. This made it difficult to use cookies in stateless applications (SPA).
  • Removed unused property Phalcon\Mvc\Router::uriSource. #15123

v4.0.6

16 May 17:34
Compare
Choose a tag to compare

Supported PHP Versions: 7.2, 7.3, 7.4

Changed

  • Changed Volt::convertEncoding to no longer using iconv for a fallback since it causes issues with macOS #14912
  • Changed schema manipulation in Phalcon\Db\Dialect\Mysql - unquote numerical defaults #14888, #14974
  • Changed the default ACL access level from boolean FALSE to Enum::DENY #14974
  • Changed the way Phalcon\Http\Response::__construct checks content data type. Now a TypeError will be thrown if incompatible data type was passed #14983
  • Changed return type hints of the following Phalcon\Flash\FlashInterface's methods: error, message, notice, success and warning #14994
  • Changed return type hint for Phalcon\Mvc\ModelInterface::sum #15000
  • Changed return type for Phalcon\Mvc\Model\Criteria::getLimit so that integer, NULL or array will be returned #15004
  • Changed return type hint for Phalcon\Mvc\Model\Manager::getCustomEventsManager to return NULL instead of boolean FALSE if there is no special events manager #15008
  • Changed Phalcon\Mvc\Model\MetaData::getDI so that now it will throw a Phalcon\Mvc\Model\Exception if there is no DiInterface instance #15011
  • Changed Phalcon\Http\Request::getJsonRawBody to use json_decode instead of Phalcon\Json::decode #14936
  • Changed Phalcon\Factory\AbstractFactory to expose getService which will throw an exception if it does not exist. Removed checkService and adjusted all references in newInstance() calls. #15038
  • Changed the visibility of methods and properties in Phalcon\Http\Message\Response, Phalcon\Http\Message\ServerRequest and Phalcon\Http\Message\Uri to work with clone. #15040

Fixed

  • Fixed Phalcon\Mvc\Model\Query\Builder::getPhql to add single quote between string value on a simple condition #14874
  • Fixed recognizing language operators inside Volt's echo mode ({{ ... }}) #14476
  • Fixed Tag::friendlyTitle to correctly convert titles under MacOS and Windows #14866
  • Fixed the Volt compiler to no longer parse cache fragments and thus searching for the viewCache service (deprecated for v4) #14907
  • Fixed IN operator precedence in Volt #14816
  • Fixed testing suite to work with PHPUnit 9 when we upgrade #14837
  • Fixed return type hints of the following Phalcon\Acl\AbstractAdapter's methods: getActiveAccess, getActiveRole and getActiveComponent #14974
  • Fixed default value of the following Phalcon\Annotations\Annotation's properties: $arguments and $exprArguments #14977
  • Fixed return type hints of the following Phalcon\Annotations\Annotation's methods: getArgument, getName and getNamedArgument #14977
  • Fixed incorrect return type hint for Phalcon\Http\Response\Cookies::setSignKey #14982
  • Fixed return type hints for Phalcon\Config\ConfigFactory::load and Phalcon\Config\ConfigFactory::newInstance to explicitly indicate the return type as Phalcon\Config instance #14978
  • Fixed return type hints for the following methods #14987:
    • 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
  • Fixed default value of Phalcon\Crypt::$key to satisfy the interface #14989
  • Fixed return type hint for Phalcon\Di::getInternalEventsManager #14992
  • Fixed return type hints of the following Phalcon\Flash\AbstractFlash's methods: error, notice, success and warning #14994
  • Fixed return type hint for Phalcon\Translate\InterpolatorFactory::newInstance #14996
  • Fixed return type hint for Phalcon\Mvc\Model::sum #15000
  • Fixed return type hint for Phalcon\Mvc\Model\CriteriaInterface::getLimit and Phalcon\Mvc\Model\Criteria::getLimit to follow documentation and original purpose #15004
  • Fixed return type hint for Phalcon\Mvc\Model::count and Phalcon\Mvc\ModelInterface::count to reflect original behavior #15006
  • Fixed return type hint for Phalcon\Mvc\Model::getEventsManager to reflect original behavior #15008
  • Fixed return type hint for Phalcon\Mvc\Model::average and Phalcon\Mvc\ModelInterface::average to reflect original behavior #15013
  • Fixed return type hint for Phalcon\Mvc\Model\MetaData::getColumnMap and Phalcon\Mvc\Model\MetaData::getReverseColumnMap to reflect original behavior #15015
  • Fixed return type hint for Phalcon\Mvc\Model\MetaDataInterface::getColumnMap and Phalcon\Mvc\Model\MetaDataInterface::getReverseColumnMap to reflect original behavior #15015
  • Fixed return type hint for Phalcon\Mvc\Model\CriteriaInterface::getColumns and Phalcon\Mvc\Model\Criteria::getColumns to reflect original behavior #15017
  • Fixed return type hint for Phalcon\Db\Column::getSize and Phalcon\Db\ColumnInterface::getSize to reflect original behavior #15019
  • Fixed return type hint for Phalcon\Db\Column::getAfterPosition and Phalcon\Db\ColumnInterface::getAfterPosition to reflect original behavior #15021
  • Fixed return type hint for Phalcon\Mvc\Model\Manager::executeQuery and Phalcon\Mvc\Model\Manager::ManagerInterface to reflect original behavior #15024
  • Fixed return type hint for Phalcon\Mvc\Model\Resultset::getFirst and Phalcon\Mvc\Model\ResultsetInterface::getFirst to reflect original behavior #15027
  • Rollback the regression changes for Phalcon\Mvc\Model\Query::_prepareSelect to properly prepare a SQL SELECT statement from a PHQL one #14657
  • Fixed SerializerInterface usage for Phalcon\Mvc\Model\Resultset\Complex::unserialize as well as Phalcon\Mvc\Model\Resultset\Complex::unserialize #14942

Removed

  • Removed Phalcon\Translate\InterpolatorFactory::$mapper as well as Phalcon\Translate\InterpolatorFactory::$services in favor of Phalcon\Factory\AbstractFactory ones #15036

v4.0.5

07 Mar 19:09
Compare
Choose a tag to compare

Supported PHP Versions: 7.2, 7.3, 7.4

Added

Changed

Fixed

  • Fixed Phalcon\Db::fetchAll to correctly return data when Enum::FETCH_COLUMN is supplied. #13321
  • Fixed Postgres NULL values to not be required during model update. #14862
  • Fixed MySQL alter column when default value contains not only CURRENT_TIMESTAMP #14880
  • Fixed MySQL default value with ON UPDATE expression #14887
  • Fixed Str::dirFromFile() to replace . with - to avoid issues with Windows environments #14858

v4.0.4

15 Feb 22:01
b28b0a2
Compare
Choose a tag to compare

Supported PHP Versions: 7.2, 7.3, 7.4

Added

  • Added a way to utilize GitHub actions to run database tests against each RDBMS and reworked the testing suite. #14779
  • Added the latest version of Codeception (v4) and utilized the phalcon4 module. #14779

Changed

  • Changed Column 'notNull' definition to make possible create nullable (NULL) columns #14804

Fixed

  • Fixed Phalcon\Db\Adapter\Pdo\Postgresql to correctly identify bool fields instead of treating them as tinyint #14722 @tidytrax
  • Fixed Phalcon\Cli\Console to pass current container to the Phalcon\Mvc\ModuleDefinitionInterface::registerAutoloaders() #14787 @TimurFlush
  • Fixed Phalcon\Db\Dialect\Mysql::createTable() to create default value with CURRENT_TIMESTAMP ON UPDATE/DELETE [#14797]
  • Fixed Phalcon\Storage\Adapter\* to no longer accept the serializer option as it was clashing with the factory #14828
  • Fixed Phalcon\Http\Request to return the correct host on an UnexpectedValueException #14763
  • Fixed Phalcon\Assets\Collection to initialize position to 0 #14848

v4.0.3

25 Jan 22:14
Compare
Choose a tag to compare

Supported PHP Versions: 7.2, 7.3, 7.4

Fixed

  • Fixed Phalcon\Db\Adapter\Pdo\Mysql Tinyint(1) is handled as boolean under MySql #14708
  • Fixed Phalcon\Mvc\View\Engine\Volt to produce the correct order of variables for the join filter #14771
  • Fixed Phalcon\Storage\Adapter\Stream::getKeys() bug in the absence of a directory with a prefix name #14725, #14721
  • Fixed Phalcon\Debug::onUncaughtException Should accept \Throwable instead of \Exception as an argument #14738
  • Fixed Phalcon\Validation\ValidatorFactory Should return Phalcon\Validation\ValidatorInterface 14749
  • Fixed Phalcon\Mvc\Model\Binder to now correctly call has and set on the cache object #14743
  • Fixed Phalcon\Session\Adapter\Stream and Phalcon\Storage\Adapter\Stream to correctly handle simultaneous read/write #14694
  • Fixed Phalcon\Config\ConfigFactory to always add the correct extension #14756

v4.0.2

11 Jan 23:35
Compare
Choose a tag to compare

Supported PHP Versions: 7.2, 7.3, 7.4

Fixed

  • Fixed Phalcon version number incorrectly set in the previous release

v4.0.1

11 Jan 18:15
55577fd
Compare
Choose a tag to compare

Supported PHP Versions: 7.2, 7.3, 7.4

Changed

  • Changed the logic when logging times for Phalcon\Logger to use DateTimeImmutable so as to handle microseconds if necessary. #2893
  • Changed Phalcon\Http\Cookie::send and Phalcon\Http\Cookie::delete to allow for samesite to be passed in the options when using PHP > 7.3 #14627

Fixed

  • Fixed Phalcon\Mvc\Model\Criteria Di isn't set when using Criteria::fromInput() #14538
  • Fixed Phalcon\Db\Dialect\Mysql removing unnecessary parentheses for double and float #14645 @pfz
  • Fixed Phalcon\Http\Cookie::delete to parse the correct parameters - cannot use alternative syntax until PHP 7.3 #14643
  • Fixed Phalcon\Mvc\Model::__isset to take into account non visible properties by checking the getter if it exists #13518 #13900
  • Fixed Phalcon\Mvc\Model::__set to return a more informative message if we are tying to access a non visible property #13518 #13900
  • Fixed Phalcon\Mvc\Model\Resultset\Simple::toArray to correctly process virtual fields #14669
  • Fixed Phalcon\Session\Manager::getUniqueKey to prefix the key only if uniqueId is present #14688
  • Fixed Phalcon\Db\Adapter\Pdo::describeColumns to correctly detect ENUM columns #14691

v4.0.0

21 Dec 19:10
fe17e3a
Compare
Choose a tag to compare

Supported PHP Versions: 7.2, 7.3, 7.4

Added

  • Added the ability to Phalcon\Model::findFirstBy* and Phalcon\Model::findBy* to process passed parameters (for order etc.) #14573
  • Added Phalcon\Helper\Str::decrement to remove a number from a string or decrements that number if it already is defined #14599
  • Added Exception storing and getting in the Phalcon\Domain\Payload\* #14575
  • Added options array in Phalcon\Http\Cookie in the constructor as well as getOptions and setOptions (ref #14627 - future work) #14575
  • Added options array in Phalcon\Http\Response\Cookies in the set() (ref #14627 - future work) #14575

Changed

  • Changed Phalcon\Mvc\Router\Annotations to use converters instead of conversors #14532
  • Changed Phalcon\Di::setRaw to Phalcon\Di::setService to align more with the use of the method #14555
  • Changed Phalcon\Http\CookieInterface to Phalcon\Http\Cookie\CookieInterface to avoid confusion #14602
  • Changed Phalcon\Storage\Adapter\*::getKeys to accept an optional $prefix so as to filter the keys returned #14575
  • Changed dates reported by the logger to use the "c" date mask for better sorting #14575
  • Changed the Phalcon\Storage\Adapter\* constructors to require the Phalcon\Storage\SerializerFactory object #14575

Fixed

  • Fixed PhalconMvc\Model to ignore internal setters if properties have the same name as the setter #14538
  • Fixed Phalcon\Logger\Formatter\Line to not add PHP_EOL at the end of the message and added it to the Phalcon\Logger\Adapter\Stream #14547
  • Fixed Phalcon\Mvc\Model\MetaData\Apcu and Phalcon\Mvc\Model\MetaData\Redis to allow setting the prefix and lifetime using the options or use the default. #14549
  • Fixed Phalcon\Storage\Adapter\AbstractAdapter, Phalcon\Storage\Adapter\AbstractInterface getters to contain a default value
  • Fixed Phalcon\Storage\Adapter\Memory initializing the array store correctly #14551
  • Fixed Phalcon\Storage\Adapter\Stream to capture notice if the stream is not opened properly #14551
  • Fixed Phalcon\Security::getRandomBytes to return int #14551
  • Fixed Phalcon\Security to use 10 as the default work factor #14551
  • Fixed Phalcon\Helper\Arr::validateAny and Phalcon\Helper\Arr::validateAllto use null as default for the callback method #14551
  • Fixed Phalcon\Escaper::escapeHtml and Phalcon\Escaper::escapeHtmlAttr to allow null values #14553
  • Fixed Phalcon\Mvc\Model::cloneResultMap to correctly recognize aliased fields and include them in the resultset #14488
  • Fixed Phalcon\Http\Request::getQuery,Phalcon\Http\Request::getPut,Phalcon\Http\Request::getPost to treat 0 as non empty for allowNoEmpty #14556
  • Fixed Phalcon\Router::handle() to use the / route on empty string #14559
  • Fixed Phalcon\Storage\Adapter\Libmemcached::getKeys and Phalcon\Storage\Adapter\Redis::getKeys to return the keys that are prefixed only for that adapter #14575
  • Fixed factories to return a new instance when calling newInstance and not a cached one from the internal mapper #14584
    • Phalcon/Annotations/AnnotationsFactory
    • Phalcon/Cache/AdapterFactory
    • Phalcon/Config/ConfigFactory
    • Phalcon/Db/Adapter/PdoFactory
    • Phalcon/Image/ImageFactory
    • Phalcon/Logger/AdapterFactory
    • Phalcon/Paginator/PaginatorFactory
    • Phalcon/Storage/AdapterFactory
    • Phalcon/Storage/SerializerFactory
    • Phalcon/Translate/InterpolatorFactory
    • Phalcon/Translate/TranslateFactory
    • Phalcon/Validation/ValidatorFactory
  • Fixed Phalcon\Mvc\Model::cloneResultMap to cast integers when fields are TYPE_BIGINTEGER, TYPE_INTEGER, TYPE_MEDIUMINTEGER, TYPE_SMALLINTEGER, TYPE_TINYINTEGER #14584
  • Fixed Phalcon\Http\Response::setCookies to use the correct interface #14602
  • Fixed Phalcon\Test\Unit\Image\Adapter\Gd::processBackground to correctly calculate the alpha value #14609
  • Fixed Phalcon\Logger\Adapter\AdapterInterface adding missing inTransaction() #14575
  • Fixed Phalcon\Mvc\Model::cloneResultsetMap to remove fatal error when looking up the columnMap. #14619
  • Fixed Phalcon\Http\Request\FileInterface by adding getError that was missing. #14633

Removed

  • Removed ACL Firewall component from 4.0.x branch #14630

v4.0.0-rc.3

16 Nov 18:15
c4a804a
Compare
Choose a tag to compare
v4.0.0-rc.3 Pre-release
Pre-release

Added

  • Added support for PSR-13 links and evolvable links #14507
    • Added Phalcon\Html\Link\Link
    • Added Phalcon\Html\Link\LinkProvider
    • Added Phalcon\Html\Link\EvolvableLink
    • Added Phalcon\Html\Link\EvolvableLinkProvider
    • Added Phalcon\Html\Link\Serializer\Header
    • Added Phalcon\Html\Link\Serializer\SerializerInterface
  • Added Phalcon\Collection:getKeys and Phalcon\Collection\getValues for getting data from the collection #14507
  • Added has-one-through relations to Phalcon\Mvc\Model and Phalcon\Mvc\Model\Manager #14511
  • Added Phalcon\Mvc\Model::hasOneThrough()
  • Added Phalcon\Mvc\Model\Manager::addHasOneThrough()
  • Added Phalcon\Mvc\Model\Manager::existsHasOneThrough()
  • Added Phalcon\Mvc\Model\Manager::getHasOneThrough()
  • Added Phalcon\Mvc\Model\ManagerInterface::addHasOneThrough()
  • Added Phalcon\Mvc\Model\ManagerInterface::existsHasOneThrough()
  • Added Phalcon\Mvc\Model\ManagerInterface::getHasOneThrough()
  • Added Phalcon\Http\Request::numFiles to return the number of files in the request #14519

Changed

  • Changed Phalcon\Paginator\Adapter\Model
    • Removed the data parameter
    • Added model parameter to pass model class
    • Added optional parameter parameters which is used as the parameter Model::find()

Fixed

  • Fixed Phalcon\Annotations\AnnotationsFactory:newInstance to return the correct object back #14494
  • Fixed return types:
    • Phalcon\Db\Adapter\PdoFactory::load() now returns Phalcon\Db\Adapter\AdapterInterface
    • Phalcon\Db\Adapter\PdoFactory::newInstance() now returns Phalcon\Db\Adapter\AdapterInterface
    • Phalcon\Logger\LoggerFactory::load() now returns Phalcon\Logger
    • Phalcon\Validation\ValidatorFactory::newInstance now returns Phalcon\Factory\ValidatorInterface
  • Fixed Phalcon\Container:get to use getShared transparently #14502
  • Fixed Phalcon\Mvc\Model to include correct model instances in messages metadata #14510
  • Fixed Phalcon\Di\Injectable::__get() to return shared instance by default #14491
  • Fixed Phalcon\Mvc\View::loadTemplateEngines() to not share engine with other views by default #14491
  • Fixed Phalcon\Mvc\Model\Manager::getRelations() and getRelationsBetween() to return many-to-many relations correctly #14509
  • Fixed Phalcon\Logger to correctly allow transactional logging #14514
  • Fixed Phalcon\Annotations\Adapter\Stream::read and Phalcon\Annotations\Adapter\Stream::write to use serialize/unserialize vs. var_export #14515
  • Fixed Phalcon\Http\Request::hasFiles to return boolean and true if files are present #14519
  • Fixed Phalcon\Logger\Adapter\Syslog to correctly log Syslog messages #14522
  • Fixed Phalcon\Mvc\Model\MetaDataInterface::getIdentityField and Phalcon\Mvc\Model\MetaData::getIdentityField to also return null if the identity field is not present #14523
  • Fixed Phalcon\Storage\Serializer\Json to serialize objects that implement the JsonSerializable interface #14528
  • Fixed Phalcon\Collection to correctly return one level nested objects that implement JsonSerializable #14528
  • Fixed Phalcon\Mvc\View to only include first found instance of view when using multiple view directories #12977

Removed

  • Removed Phalcon\Logger\Formatter\Syslog - really did not do much #14523