Skip to content

Releases: phalcon/cphalcon

v3.4.5

30 Oct 14:31
Compare
Choose a tag to compare
  • Fixed segfault in Phalcon\Mvc\Micro\LazyLoader::__call() when the handler has a syntax error. #12396
  • Fixed RuntimeException in Phalcon\Db\Adapter\Pdo Trying to call method upper on a non-object. #14330
  • Fixed Phalcon\Storage\Adapter\Redis::delete() deprecated warning from php-redis #14281

v4.0.0-rc.2

26 Oct 17:36
95484a0
Compare
Choose a tag to compare
v4.0.0-rc.2 Pre-release
Pre-release

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

v4.0.0-rc.1

23 Sep 08:59
a48b319
Compare
Choose a tag to compare
v4.0.0-rc.1 Pre-release
Pre-release

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

v4.0.0-beta.2

18 Aug 19:52
3d76cda
Compare
Choose a tag to compare
v4.0.0-beta.2 Pre-release
Pre-release

Fixed

  • Fixed missing imports in Phalcon\Db\Adapter\AbstractAdapter, Phalcon\Db\Adapter\AdapterInterface, Phalcon\Db\Result\Pdo, Phalcon\Html\Tag and Phalcon\Tag\Select. #14249
  • Fixed isSerializable in Phalcon\Storage\Serializer\AbstractSerializer to return true when the data is seriazable and false when it's not.
  • Fixed Phalcon\Storage\Adapter\Redis::delete() and Phalcon\Storage\Adapter\Redis::getKeys() deprecated warning from php-redis #14281
  • Fixed Phalcon\Mvc\Model\ResultSet::Update() to return correct status #14291
  • Phalcon\Mvc\Collection::cancelOperation() now returns true on success.
  • Fixed Phalcon\Application\AbstractApplication interfaces for registerModules(), setDefaultModule() and setEventsManager() #14293
  • Fixed Phalcon\Paginator\Adapter\QueryBuilder to throw exception on incorrect parameter #14299

Removed

  • Removed dead libsodium-related code. It was never called in PHP >= 7.0.

v4.0.0-beta.1

14 Jul 20:14
a0b25ed
Compare
Choose a tag to compare
v4.0.0-beta.1 Pre-release
Pre-release

Added

  • Added Phalcon\Factory\Exception for factory exceptions. #13672
  • Added Phalcon\Filter\FilterInterface for custom filter implementations. #13672
  • Added Phalcon\Db\Adapter\PdoFactory: Factory to create PDO adapters. #13672
  • Added Phalcon\Image\ImageFactory: Factory to create image adapters. #13672
  • Added Phalcon\Logger\LoggerFactory: Factory to create logger objects. #13672
  • Added Phalcon\Translate\InterpolatorFactory: Factory to create interpolator objects. #13672
  • Added Phalcon\Translate\TranslateFactory: Factory to create translate objects. #13672
  • Added Phalcon\Domain\Payload to help in transferring messages between layers of the application. #14123
  • Added Phalcon\Domain\PayloadFactory: Factory to create payload objects. #14123
  • Added Phalcon\Http\Message\ServerRequestFactory::load: Method to create a ServerRequest object from globals. #14154
  • Added saslAuthData as option to Phalcon\Storage\Adapter\Libmemcached to authenticate using SASL #13394
  • Added Phalcon\Collection\ReadOnly: Read only collection. #14154
  • Added whiteList() to Phalcon\Helper\Arr #13954
  • Added Phalcon\Config\ConfigFactory::newInstance(): Factory to create config objects. #13201, #13768
  • Added Phalcon\Db\Enum #14213
  • Added Phalcon\Dispatcher\Exception #14213

Changed

  • Renamed Phalcon\Annotations\Adapter\Files to Phalcon\Annotations\Adapter\Stream. #13672
  • Renamed Phalcon\Annotations\Adapter to Phalcon\Annotations\Adapter\AbstractAdapter. #13672
  • Renamed Phalcon\Annotations\AdapterInterface to Phalcon\Annotations\Adapter\AdapterInterface. #13672
  • Renamed Phalcon\Annotations\Factory to Phalcon\Annotations\AnnotationsFactory. #13672
  • Renamed Phalcon\Config\Factory to Phalcon\Config\ConfigFactory. #13672
  • Renamed Phalcon\Filter\FilterLocator to Phalcon\Filter. #13672
  • Renamed Phalcon\Filter\FilterLocatorFactory to Phalcon\Filter\FilterFactory. #13672
  • Renamed Phalcon\Image\Adapter to Phalcon\Image\Adapter\AbstractAdapter. #13672
  • Renamed Phalcon\Image\AdapterInterface to Phalcon\Image\Adapter\AdapterInterface. #13672
  • Renamed Phalcon\Paginator\Adapter to Phalcon\Paginator\Adapter\AbstractAdapter. #13672
  • Renamed Phalcon\Paginator\AdapterInterface to Phalcon\Paginator\Adapter\AdapterInterface. #13672
  • Renamed Phalcon\Paginator\Factory to Phalcon\Paginator\PaginatorFactory. #13672
  • Renamed Phalcon\Translate\Adapter to Phalcon\Translate\Adapter\AbstractAdapter. #13672
  • Renamed Phalcon\Translate\AdapterInterface to Phalcon\Translate\Adapter\AdapterInterface. #13672
  • Phalcon\Plugin is now abstract.
  • Moved method parameter in Phalcon\Mvc\Model\Manager::getRelationRecords() to the last position. #14115
  • Moved method parameter in Phalcon\Mvc\Model\Manager::getBelongsToRecords() to the last position. #14115
  • Moved method parameter in Phalcon\Mvc\Model\Manager::getHasOneRecords() to the last position. #14115
  • Moved method parameter in Phalcon\Mvc\Model\Manager::getHasManyRecords() to the last position. #14115
  • Validator messages were moved into each validator. #13208
  • Phalcon\Paginator\Repository::getProperty() now uses Phalcon\Helper\Arr::get().
  • Refactored Phalcon\Collection to allow conditional key case sensitivity. #14154
  • Refactored Phalcon\Registry to align with the Phalcon\Collection interface. #14154
  • Phalcon\Mvc\Micro::setModelBinder() now uses the Factory Default DI if none is set. #14171
  • Phalcon\Mvc\Model\ValidationFailed now works with ModelInterface.
  • Refactored Phalcon\Config to extend Phalcon\Collection #13201, #13768
  • Renamed Phalcon\Config to extend Phalcon\Config\Config #13201, #13768
  • Renamed Phalcon\Acl to Phalcon\Acl\Enum #14213
  • Renamed Phalcon\Acl\Adapter to Phalcon\Acl\Adapter\AbstractAdapter #14213
  • Renamed Phalcon\Acl\AdapterInterface to Phalcon\Acl\Adapter\AdapterInterface #14213
  • Renamed Phalcon\Application to Phalcon\Application\AbstractApplication #14213
  • Renamed Phalcon\CryptInterface to Phalcon\Crypt\CryptInterface #14213
  • Renamed Phalcon\Db\Adapter to Phalcon\Db\Adapter\AbstractAdapter #14213
  • Renamed Phalcon\Db\AdapterInterface to Phalcon\Db\Adapter\AdapterInterface #14213
  • Renamed Phalcon\Db to Phalcon\Db\AdapterDb #14213
  • Renamed Phalcon\Db\Adapter\Pdo to Phalcon\Db\Adapter\Pdo\AbstractPdo #14213
  • Renamed Phalcon\Dispatcher to Phalcon\Dispatcher\AbstractDispatcher #14213
  • Renamed Phalcon\DispatcherInterface to Phalcon\Dispatcher\DispatcherInterface #14213
  • Renamed Phalcon\EscaperInterface to Phalcon\Escaper\EscaperInterface #14213
  • Renamed Phalcon\Firewall\Adapter to Phalcon\Firewall\Adapter\AbstractAdapter #14213
  • Renamed Phalcon\Firewall\AdapterInterface to Phalcon\Firewall\Adapter\AdapterInterface #14213
  • Renamed Phalcon\Flash to Phalcon\Flash\AbstractFlash #14213
  • Renamed Phalcon\FlashInterface to Phalcon\Flash\FlashInterface #14213
  • Renamed Phalcon\Forms\Element to Phalcon\Forms\Element\AbstractElement #14213
  • Renamed Phalcon\Forms\ElementInterface to Phalcon\Forms\Element\ElementInterface #14213
  • Renamed Phalcon\Image to Phalcon\Image\Enum #14213
  • Renamed Phalcon\Mvc\View\Engine to Phalcon\Mvc\View\Engine\AbstractEngine #14213
  • Renamed Phalcon\Mvc\View\EngineInterface to Phalcon\Mvc\View\Engine\EngineInterface #14213
  • Renamed Phalcon\UrlInterface to Phalcon\Url\UrlInterface
  • Renamed Phalcon\Validator to Phalcon\Validator\Validator #14213
  • Renamed Phalcon\Validator\Validator to Phalcon\Validator\AbstractValidator #14213
  • Renamed Phalcon\Validator\ValidatorComposite to Phalcon\Validator\AbstractValidatorComposite #14213
  • Renamed Phalcon\Validator\CombinedFieldsValidator to Phalcon\Validator\AbstractCombinedFields #14213
  • Renamed Phalcon\Validator\Validator\File\FileAbstract to Phalcon\Validator\Validator\File\AbstractFile #14213

Fixed

  • Fixed Phalcon\Mvc\View::getRender() to call view->finish() instead of ob_end_clean(). #14095
  • Fixed Phalcon\Cache\Adapter\Libmemcached failing to set values when Phalcon\Mvc\Model\MetaData\Libmemcached was in use. #14100
  • Fixed Phalcon\Db\Column to recogni...
Read more

v3.4.4

30 Jun 18:43
Compare
Choose a tag to compare

Fixed

  • Generated Dialect Class referring to a PHP class can't be found #13867
  • Changed default gcc's CFLAGS so that, the extension should be properly generated for most hosts, including Docker #13143
  • Phalcon\Forms\Form::clear() now correctly clears single fields. #14217
  • Used latest stable Zephir from 0.10.x branch to prevent segfaults with PHP 7.3.6 #14160

v4.0.0-alpha.5

18 May 20:47
43261b6
Compare
Choose a tag to compare
v4.0.0-alpha.5 Pre-release
Pre-release

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() to Phalcon\Helper\Arr #13954
  • Added camelize(), concat(), countVowels(), decapitalize(), dynamic(), endsWith(), firstStringBetween(), includes(), increment(), isAnagram(), isLower(), isPalindrome(), isUpper(), lower(), random(), reduceSlashes(), startsWith(), uncamelize(), underscore(), upper() to Phalcon\Helper\Str #13954
  • Added Phalcon\Mvc\Model\Query\BuilderInterface::getModels() returns the models involved in the query
  • Added addConnect(), addPurge() and addTrace() to Phalcon\Mvc\Router\Group and 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\Cache class implementing PSR-16. Introducing:
    • Phalcon\Cache\Adapter
      • Phalcon\Cache\Adapter\Apcu
      • Phalcon\Cache\Adapter\Libmemcached
      • Phalcon\Cache\Adapter\Memory
      • Phalcon\Cache\Adapter\Redis
      • Phalcon\Cache\Adapter\Stream
    • Phalcon\Cache\AdapterFactory: Factory to create adapters
    • Phalcon\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:addJs accepts two additional parameters - version and autoVersion #12591
  • Added setting orm.resultset_prefetch_records instructing 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\Firewall component #13648
  • Added orm.cast_last_insert_id_to_int option for Phalcon\Mvc\Model::setup() (castLastInsertIdToInt) to cast the lastInsertId on save() to int #13002
  • Added Attributes collection class like a new Html component #13646
  • Added Attributes into Phalcon\Forms\Form #13646

Changed

  • Refactored Phalcon\Events\Manager to only use SplPriorityQueue to store events. #13924
  • Phalcon\Translate\InterpolatorInterface now only accepts placeholder arrays. #13939
  • Phalcon\Dispatcher::forward() and Phalcon\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\SoftDelete and Phalcon\Mvc\Model\Behavior\SoftDelete. #13930
  • Model methods that extend Model Manager functionality are now final. #13950
  • Changed Phalcon\Text to call methods from Phalcon\Helper\Str #13954
  • Setting the views directory no longer requires a trailing slash when using Simple View.
  • Phalcon\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. #13977
  • Changed Phalcon\Mvc\Model\Manager::getModelSource() to use setModelSource() internally instead of setting the source manually #13987
  • The property options is always an array in Phalcon\Mvc\Model\Relation. #13989
  • Phalcon\Logger\Adapter\AbstractAdapter::process() is now actually abstract. #14012
  • Phalcon\Mvc\ModelInterface::getRelated() return type declaration has changed (not always ResultsetInterface) #14035
  • In Phalcon\Mvc\Model, relations fetched using magic methods are now handled by Phalcon\Mvc\Model::getRelated() internally. #14035
  • Changed Phalcon\Mvc\Model\Transaction::rollback() to not throw a transaction by default. #13949
  • Changed Phalcon\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\Base64
      • Phalcon\Storage\Serializer\Igbinary
      • Phalcon\Storage\Serializer\Json
      • Phalcon\Storage\Serializer\Msgpack
      • Phalcon\Storage\Serializer\None
      • Phalcon\Storage\Serializer\Php
      • Phalcon\Storage\Serializer\SerializerInterface
    • Phalcon\Storage\SerializerFactory: Factory to create serializers
    • Phalcon\Storage\Adapter offering classes that implement the Phalcon\Storage\Adapter\AdapterInterface interface.
      • Phalcon\Storage\Adapter\Apcu
      • Phalcon\Storage\Adapter\Libmemcached
      • Phalcon\Storage\Adapter\Memory
      • Phalcon\Storage\Adapter\Redis
      • Phalcon\Storage\Adapter\Stream
    • Phalcon\Storage\AdapterFactory: Factory to create adapters
      #13439
  • Changed Phalcon\Mvc\Model\Query to not call numRows when selecting data #13387
  • Bind parameters and bind types are now always arrays in Phalcon\Mvc\Model\Query.
  • Changed Phalcon\Validation\Validator\Url to work with passed options. (FILTER_FLAG_PATH_REQUIRED, FILTER_FLAG_QUERY_REQUIRED) #13548
  • Phalcon\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.
  • 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\Crypt to 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\Model to copy the unset default values from the MetaData to the Model after a successful insert. #13781
  • Changed Phalcon\Mvc\Model::findFirst() now returns null. Phalcon\Mvc\Model::getRelated() for one to one relationships returns null #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\Model and Mvc\ModelInterface findFirst to return ModelInterface or bool #13947
  • Phalcon\Acl\Adapter\Memory::dropComponentAccess() now properly unsets values.
  • Volt options 'separator' and 'extension' now work again. #13971
  • Query Builder's GROUP BY field is now always an array. #13962
  • Renamed Phalcon\Paginator\Adapter::getPaginate() to paginate() 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 the foreignKey option is set to false.
  • 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...
Read more

v4.0.0-alpha.4

31 Mar 17:44
Compare
Choose a tag to compare
v4.0.0-alpha.4 Pre-release
Pre-release

Added

  • Added delimiter and enclosure options to Phalcon\Translate\Adapter\Csv constructor
  • Added Phalcon\Http\Message\* namespace implementing PSR-7 and PSR-17. Introducing:
    • Phalcon\Http\Message\Request
    • Phalcon\Http\Message\RequestFactory
    • Phalcon\Http\Message\Response
    • Phalcon\Http\Message\ResponseFactory
    • Phalcon\Http\Message\ServerRequest
    • Phalcon\Http\Message\ServerRequestFactory
    • Phalcon\Http\Message\Stream
    • Phalcon\Http\Message\StreamFactory
    • Phalcon\Http\Message\UploadedFile
    • Phalcon\Http\Message\UploadedFileFactory
    • Phalcon\Http\Message\Uri
    • Phalcon\Http\Message\UriFactory
    • Phalcon\Http\Message\Stream\Input
    • Phalcon\Http\Message\Stream\Memory
    • Phalcon\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. #11789
  • Added Phalcon\Helper\* namespace, offering easy manipulations for arrays, numbers etc..
    • Phalcon\Helper\Arr
    • Phalcon\Helper\Number
      #13889
  • Added Phalcon\Collection, an object implementing ArrayAccess, Countable, IteratorAggregate, JsonSerializable, Serializable, offering an easy way to handle collections of data such as arrays, superglobals etc. #13886
  • Added Phalcon\Collection, in Phalcon\Http\Message\Request and Phalcon\Http\Message\ServerRequest to handle the headers #13907

Fixed

  • Fixed Phalcon\Image\Adapter\Imagick::_watermark, setImageAlpha() fills the alpha channel with black before execution (replaced by evaluateImage()). Improved imagick compatibility. #13911
  • Fixed Assets Manager hard reference to \Phalcon\Tag, should use DI #12261

Changed

  • Refactored Phalcon\Registry to use the Phalcon\Collection class #13893
  • Refactored Phalcon\Session\Bag to use the Phalcon\Collection class #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

03 Mar 18:10
9fae862
Compare
Choose a tag to compare
v4.0.0-alpha.3 Pre-release
Pre-release

Added

  • Added view:afterCompile and view:beforeCompile events for the Volt compiler #2182
  • Added array merge support to Phalcon\Config::merge
  • Added setBlacklist in Phalcon\Debug to allow the developer to "blacklist" certain variables from the $_REQUEST or $_SERVER superglobals being displayed on screen #13687
  • Changed view engine service closures to no longer receive the dependency injector as the second parameter. Instead use $this for the DI. #11926

Fixed

  • Fixed router and controller parameter inconsistencies (camelize etc.) #13555
  • Fixed invalid opcode in phalcon.so when using docker #13143
  • Fixed storing related model data in Phalcon\Messages\Message. The method is now setMetadata and 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:findFirst to 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\Subject to Phalcon\Acl\Component #13808
  • Renamed Phalcon\Acl\SubjectInterface to Phalcon\Acl\ComponentInterface #13808
  • Renamed Phalcon\Acl\SubjectAware to Phalcon\Acl\ComponentAware #13808
  • Renamed Phalcon\Acl\Operation to Phalcon\Acl\Role #13808
  • Renamed Phalcon\Acl\OperationInterface to Phalcon\Acl\RoleInterface #13808
  • Renamed Phalcon\Acl\OperationAware to Phalcon\Acl\RoleAware #13808
  • Renamed Phalcon\Acl\AdapterInterface::addOperation to Phalcon\Acl\AdapterInterface::addRole #13808
  • Renamed Phalcon\Acl\AdapterInterface::isOperation to Phalcon\Acl\AdapterInterface::isRole #13808
  • Renamed Phalcon\Acl\AdapterInterface::isSubject to Phalcon\Acl\AdapterInterface::isComponent #13808
  • Renamed Phalcon\Acl\AdapterInterface::addSubject to Phalcon\Acl\AdapterInterface::addComponent #13808
  • Renamed Phalcon\Acl\AdapterInterface::addSubjectAccess to Phalcon\Acl\AdapterInterface::addComponentAccess #13808
  • Renamed Phalcon\Acl\AdapterInterface::dropSubjectAccess to Phalcon\Acl\AdapterInterface::dropComponentAccess #13808
  • Renamed Phalcon\Acl\AdapterInterface::getActiveOperation to Phalcon\Acl\AdapterInterface::getActiveRole #13808
  • Renamed Phalcon\Acl\AdapterInterface::getActiveSubject to Phalcon\Acl\AdapterInterface::getActiveComponent #13808
  • Renamed Phalcon\Acl\AdapterInterface::getOperationss to Phalcon\Acl\AdapterInterface::getRoles #13808
  • Renamed Phalcon\Acl\AdapterInterface::getSubjects to Phalcon\Acl\AdapterInterface::getComponents #13808
  • Renamed Phalcon\Acl\Adapter::getActiveOperation to Phalcon\Acl\AdapterInterface::getActiveRole #13808
  • Renamed Phalcon\Acl\Adapter::getActiveSubject to Phalcon\Acl\AdapterInterface::getActiveComponent #13808
  • Renamed Phalcon\Acl\Adapter\Memory::addOperation to Phalcon\Acl\Adapter\Memory::addRole #13808
  • Renamed Phalcon\Acl\Adapter\Memory::isOperation to Phalcon\Acl\Adapter\Memory::isRole #13808
  • Renamed Phalcon\Acl\Adapter\Memory::isSubject to Phalcon\Acl\Adapter\Memory::isComponent #13808
  • Renamed Phalcon\Acl\Adapter\Memory::addSubject to Phalcon\Acl\Adapter\Memory::addComponent #13808
  • Renamed Phalcon\Acl\Adapter\Memory::addSubjectAccess to Phalcon\Acl\Adapter\Memory::addComponentAccess #13808
  • Renamed Phalcon\Acl\Adapter\Memory::dropSubjectAccess to Phalcon\Acl\Adapter\Memory::dropComponentAccess #13808
  • Renamed Phalcon\Acl\Adapter\Memory::getOperationss to Phalcon\Acl\Adapter\Memory::getRoles #13808
  • Renamed Phalcon\Acl\Adapter\Memory::getSubjects to Phalcon\Acl\Adapter\Memory::getComponents #13808
  • Renamed Phalcon\Mvc\Url to Phalcon\Url #13742
  • Renamed Phalcon\Mvc\UrlInterface to Phalcon\UrlInterface #13742
  • Renamed Phalcon\Mvc\Url\Exception to Phalcon\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\Queue namespace 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

24 Feb 23:07
08e7bfc
Compare
Choose a tag to compare
  • Provided PHP 7.3 support #13847