Phalcon v4.0.0-rc.1 Release Notes

Release Date: 2019-09-23 // over 4 years ago
  • ➕ Added

    • ➕ Added optional boolean parameter to Phalcon\Http\Request::getURI() (as well as its interface) which indicates whether or not the method should return only the path without the query string

    🔄 Changed

    • 🔄 Changed Phalcon\Url::get to use implementation behind Phalcon\Helper\Str::reduceSlashes to reduce slashes #14331
    • 🔄 Changed Phalcon\Http\Headers\set() to return self for a more fluent interface
    • 🔒 Changed Phalcon\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 #14351
    • 🔒 Changed Phalcon\Security to allow session and request in the constructor #14351
    • 🔄 Changed Phalcon\Session\Manager to allow router in the constructor #14351
    • 🔄 Changed Phalcon\Flash\Direct to allow escaper in the constructor #14349
    • 🔄 Changed Phalcon\Flash\Session to allow escaper in the constructor #14349
    • 🔄 Changed Phalcon\Di\AbstractDIAware to Phalcon\Di\AbstractInjectionAware #14359
    • 🔄 Changed Phalcon\Di\Service to use DI to initialize string based services when possible #14342
    • 🔄 Changed Phalcon\Mvc\Router\Annotations to be able to handle patterns az prefixes #14259
    • 🔄 Changed Phalcon\Mvc\Router\Group::routes to an array as default #14259
    • 🔄 Changed Phalcon\Mvc\Model::assign changed order of parameters to $data, $whiteList, $dataColumnMap #14386
    • 🔄 Changed Phalcon\Helper\Arr::arrayToObject to toObject #14389
    • 🔄 Changed Phalcon\Events\EventsAwareInterface::getEventsManager and Phalcon\Di\Injectable::getEventsManager to return also null #14404
    • 🔄 Changed Phalcon\Logger\Adapter\AbstractAdapter::add to now return this #14404
    • 🔄 Changed Phalcon\Mvc\RouterInterface methods signature to return RouteInterface instead of void:
      • Phalcon\Mvc\RouterInterface::setDefaultAction
      • Phalcon\Mvc\RouterInterface::setDefaultAction
      • Phalcon\Mvc\RouterInterface::setDefaultController
      • Phalcon\Mvc\RouterInterface::setDefaultModule
      • Phalcon\Mvc\RouterInterface::setDefaults
    • 🔄 Changed return types for following interfaces:
      • Phalcon\Mvc\Router\RouteInterface::setName from void to RouteInterface
      • Phalcon\Mvc\Router\RouteInterface::via from void to RouteInterface
      • Phalcon\Session\ManagerInterface::__get from void to var

    🛠 Fixed

    • 🛠 Fixed Phalcon\Helper\Str::includes to return correct result #14301
    • 🛠 Fixed Phalcon\Logger moved to correct namespace #14263
    • 🛠 Fixed Phalcon\Session\Adapter\AbstractAdapter::read() to return ""(empty string) when Session/Adapter/*::get() returns null #14314
    • 🛠 Fixed Phalcon\Cache\Exception to extend Phalcon\Exception
    • 🛠 Fixed Phalcon\Cache\InvalidArgumentException to extend Phalcon\Exception
    • 🛠 Fixed Phalcon\Collection\Exception to extend Phalcon\Exception
    • 🛠 Fixed Phalcon\Storage\Adapter\AbstractAdapter::initSerializer to throw exception if null === $this->serializerFactory && null === $this->serializer #14324
    • 🛠 Fixed Phalcon\Storage\Adapter\Redis::getAdapter() to provide a persistent id for redis persistent connection #14334
    • 🛠 Fixed Phalcon\Session\Adapter\Stream to not override configured save path #14265
    • 🛠 Fixed Phalcon\Http\Response::setFileToSend to properly handle non-ASCII filenames #13919
    • 🛠 Fixed Phalcon\Security::getSessionToken return value #14346
    • 🛠 Fixed Phalcon\Flash\* interfaces for message() to return string/null #14349
    • 🛠 Fixed Phalcon\Paginator\Adapter\AbstractAdapter throw exception if limit <= 0 #14303
    • 🛠 Fixed Phalcon\Mvc\Model\Query\Builder Empty table alias in query #14366
    • 🛠 Fixed Phalcon\Db\Adapter\PdoFactory to reference the correct interface #14381
    • 🛠 Fixed Phalcon\Db\Dialect\Mysql Fixed missing schema in constraint for create table #14378
    • 🛠 Fixed Phalcon\Mvc\Model::hasChanged() and getChangedFields() returning false values when castOnHydrate option is on. #14376
    • 🛠 Fixed Phalcon\Mvc\Model::create() Using write connection to prevent replica lag #14256
    • 🛠 Fixed return types for following methods to satisfy interface declaration:
      • Phalcon\Acl\Adapter\AbstractAdapter::setDefaultAction
      • Phalcon\Application\AbstractApplication::setEventsManager
      • Phalcon\Firewall\Adapter\AbstractAdapter::setAlwaysResolvingRole
      • Phalcon\Firewall\Adapter\AbstractAdapter::setEventsManager
      • Phalcon\Mvc\Router::handle
      • Phalcon\Storage\Serializer\AbstractSerializer::getData
      • Phalcon\Storage\Serializer\AbstractSerializer::setData
      • Phalcon\Mvc\Dispatcher::forward
      • Phalcon\Mvc\Model::setConnectionService
      • Phalcon\Mvc\Model::setReadConnectionService
      • Phalcon\Mvc\Model::setWriteConnectionService
      • Phalcon\Mvc\Model\Query\Builder::setDI
      • Phalcon\Mvc\Router\Annotations::handle
      • Phalcon\Session\Bag::set
      • Phalcon\Session\Manager::remove
    • 🛠 Fixed Phalcon\Di::remove() to remove service. #14396

    ✂ Removed

    • ✂ Removed Phalcon\Plugin - duplicate of Phalcon\DI\Injectable #14359
    • ✂ Removed Phalcon\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) #14361
    • ✂ Removed Phalcon\Session\Manager::registerHandler - duplicate functionality #14381
    • ✂ Removed Phalcon\Html\Tag - duplicate functionality #14381
    • ✂ Removed void return type for all constructors #14401