Phalcon v4.0.0-rc.2 Release Notes

Release Date: 2019-10-26 // over 4 years ago
  • ➕ Added

    • ➕ Added cast parameter to Phalcon\Collection::get and Phalcon\Helper\Arr::get allowing developers to cast the result returned to the type they want to. #14465
    • ➕ Added Phalcon\Paginator\Repository::jsonSerialize() implementing JsonSerializable #14475
    • ➕ Added Phalcon\Logger::getLogLevel() and Phalcon\Logger::setLogLevel() setting the minimum log level for the logger #14480

    🔄 Changed

    • Changed all calls to new <object> to use the create_instance or create_instance_params for better performance. #14419
    • ⚡️ Changed the exception text for Phalcon\Mvc\Model::getChangedFields and Phalcon\Mvc\Model::getUpdatedFields when there is no snapshot setup #14468
    • 🔄 Changed Phalcon\Mvc\Model::__callStatic() to throw an exception if the called method is unknown. #14467
    • 🔄 Changed Phalcon\Mvc\Model to accept 0, null and "" as valid parameter for findByField(), findFirstByField() and countByField(). #14467

    🛠 Fixed

    • 🛠 Fixed Phalcon\Mvc\View\Engine\Volt\Compiler::parse() Corrected syntax recognize for "set" keyword. #14288
    • 🛠 Fixed Phalcon\Mvc\View\Engine\Volt\Compiler::parse() Corrected syntax recognize for "is" keyword. #11683
    • 🛠 Fixed Phalcon\Cache\Adapter\AbstractAdapter use AdapterInterface instead of non existing AbstractAdapter #14414
    • 🛠 Fixed Phalcon\Cache\CacheFactory use Psr\SimpleCache\CacheInterface instead of non existing Phalcon\Cache\CacheInterface #14414
    • 🛠 Fixed Phalcon\Cache\CacheFactory use Psr\SimpleCache\CacheInterface instead of non existing Phalcon\Cache\CacheInterface #14414
    • 🛠 Fixed Phalcon\Cli\Router add missing Phalcon\Cli\Router\RouteInterface #14414
    • 🛠 Fixed Phalcon\Dispatcher\AbstractDispatcher::setModelBinder() to return DispatcherInterface instead of non existing Dispatcher: #14414
    • Phalcon\Firewall\Adapter\Acl
    • Phalcon\Firewall\Adapter\Annotations
    • 🛠 Fixed Phalcon\Filter\FilterFactory::newInstance() to return FilterInterface instead of non existing LocatorInterface #14414
    • 🛠 Fixed Phalcon\Forms\Element\Select::addOption() and Phalcon\Forms\Element\Select::setOption() to return ElementInterface instead of non existing Element #14414
    • 🛠 Fixed Phalcon\Forms\Manager::set() to return Manager instead of non existing FormManager #14414
    • 🛠 Fixed
    • Phalcon\Paginator\Adapter\AbstractAdapter::setCurrentPage()
    • Phalcon\Paginator\Adapter\AbstractAdapter::setLimit()
    • Phalcon\Paginator\Adapter\AbstractAdapter::setRepository() to return AdapterInterface instead of non existing Adapter #14414
    • 🛠 Fixed Phalcon\Translate\TranslateFactory::set() to return AdapterInterface instead of non existing AbstractAdapter #14414
    • 🛠 Fixed Phalcon\Filter to properly work with closures #14417
    • 🛠 Fixed Phalcon\Form::setAction() throwing error when called in Form::initialize() #14421
    • 🛠 Fixed Phalcon\Mvc\Model\Query\Lang::parsePHQL return type hint from string to array
    • 🛠 Fixed NOT BETWEEN support in PHQL #14253
    • 🛠 Fixed Phalcon\Storage\Adapter\Stream to correctly serialize and unserialize data #14408
    • 🛠 Fixed Phalcon\Storage\Serializer\Json to throw an exception if storing an object #14408
    • 🛠 Fixed Phalcon\Http\Message\ServerRequestFactory::load to correctly handle superglobals that have not been defined #14426
    • 🛠 Fixed Phalcon\Forms\Form to initialize attributes object if not initialized #14430
    • 🛠 Fixed Phalcon\Http\Message\ServerRequestFactory::load to correctly detect the protocol passed from $_SERVER #14432
    • 🛠 Fixed Phalcon\Cli\Router\Route added missing Phalcon\Cli\Router\RouteInterface
    • 🛠 Fixed incorrect return types on Phalcon\Mvc\View\Engine\AbstractEngine::partial and Phalcon\Mvc\View\Engine\EngineInterface::partial #14429
    • 🛠 Fixed Phalcon\Firewall\Adapter\AbstractAdapter::getRoleCallback and Phalcon\Firewall\Adapter\AbstractAdapter::setRoleCallback to correctly accept and return a Closure #14450
    • 🛠 Fixed Phalcon\Firewall\Adapter\AdapterInterface::getRoleCallback and Phalcon\Firewall\Adapter\AbstractAdapter::setRoleCallback to correctly accept and return a Closure #14450
    • 🛠 Fixed Phalcon\Events\Event::__constructor to correctly accept an object as the source parameter #14449
    • 🛠 Fixed Phalcon\Cache::checkKey() added . to key characters pattern #14457
    • 🛠 Fixed Phalcon\Mvc\Model\Manager to store reusable related records correctly. #14444
    • 🛠 Fixed Phalcon\Mvc\Model::__call() not to throw an exception when the return value is null for related records. #14444
    • 🛠 Fixed Phalcon\Logger\Adapter\Syslog::__construct() incorrect receipt of the option from the options parameter. #14470
    • 🛠 Fixed Phalcon\Events\Manager::fire and Phalcon\Events\ManagerInterface::fire correctly aligning parameters and types. #14477
    • 🛠 Fixed Phalcon\Translate\* aligning parameters as array with the interpolator calls. #14477
    • 🛠 Fixed Phalcon\Storage\AdapterFactory:newInstance to return the correct interface #14481
    • 🛠 Fixed Phalcon\Mvc\Dispatcher:forward to accept an array vs a mixed variable #14481
    • ⚡️ Fixed Phalcon\Mvc\Model::_doLowUpdate and Phalcon\Mvc\Model::_doLowInsert throwing errors about column mapping when phalcon.orm.ignore_unknown_columns is set On #14485

    ✂ Removed

    • ✂ Removed Phalcon\Application\AbstractApplication::handle() as it does not serve any purpose and causing issues with type hinting. #14407
    • ✂ Removed getEventsManager and setEventsManager from Phalcon\Di\Injectable to the classes that utilise the methods or eventsManager property. #14269