Skip to content

v4.0.0-alpha.5

Pre-release
Pre-release
Compare
Choose a tag to compare
@sergeyklay sergeyklay released this 18 May 20:47
· 5734 commits to master since this release
43261b6

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
  • Fixed non-reusable relations in Phalcon\Mvc\Model, now returning fresh records. #13531
  • Phalcon\Mvc\Model::isRelationshipLoaded() is now working for every type of relations. #14035
  • Fixed Phalcon\Mvc\Model::writeAttribute() to handle associative arrays correctly. #14021
  • Fixed Phalcon\Html\Tag::appendTitle() and Phalcon\Html\Tag::prependTitle()to mirror Phalcon\Tag. #14039
  • Fixed Phalcon\Validation::validate() with cancelOnFail. The validator will validate all elements and will stop processing validators on a per element basis if cancelOnFail is present. #13149
  • Fixed Phalcon\Mvc\Models\Manager::getRelations() to return the many-to-many relationships also. #10839
  • Fixed Phalcon\Validation\Validator\Numericality::validate() to parse non en locale numbers. #13843
  • Fixed Phalcon\Mvc\Model::save() failing after a successful insert when default database fields are not updated. #13781

Removed

  • Removed arrayHelpers property from the Volt compiler. #13925
  • Removed legacy (PHP <5.5) code from GD image adapter.
  • Removed support for HTTP_CONTENT_TYPE header (a bug in PHP 5). #14013
  • Removed Mvc\Model\MetaData\Session adapter (no longer supported) #13439
  • Removed Phalcon\Cache, Phalcon\Cache\Backend, Phalcon\Cache\BackendInterface, Phalcon\Cache\Backend\Apcu, Phalcon\Cache\Backend\Factory, Phalcon\Cache\Backend\File, Phalcon\Cache\Backend\Libmemcached, Phalcon\Cache\Backend\Memory, Phalcon\Cache\Backend\Mongo, Phalcon\Cache\Backend\Redis, Phalcon\Cache\Frontend, Phalcon\Cache\Frontend\Base64, Phalcon\Cache\Frontend\Data, Phalcon\Cache\Frontend\Factory, Phalcon\Cache\Frontend\Igbinary, Phalcon\Cache\Frontend\Json, Phalcon\Cache\Frontend\Msgpack, Phalcon\Cache\Frontend\None, Phalcon\Cache\Frontend\Output, Phalcon\Cache\FrontendInterface, Phalcon\Cache\Multiple #13439
  • Removed caching from the view (simple/view)
    • Phalcon\Mvc\View::cache()
    • Phalcon\Mvc\View::getCache()
    • Phalcon\Mvc\View\Simple::cache()
    • Phalcon\Mvc\View\Simple::getCache()
      #13439
  • Removed multiple Cache Adapter Phalcon\Cache\Multiple #13439
  • Removed old cache classes
    • Phalcon\Cache\Backend
    • Phalcon\Cache\BackendInterface
    • Phalcon\Cache\Backend\Apcu
    • Phalcon\Cache\Backend\Factory
    • Phalcon\Cache\Backend\File
    • Phalcon\Cache\Backend\Libmemcached
    • Phalcon\Cache\Backend\Memory
    • Phalcon\Cache\Backend\Mongo
    • Phalcon\Cache\Backend\Redis
    • Phalcon\Cache\Frontend
    • Phalcon\Cache\FrontendInterface
    • Phalcon\Cache\Frontend\Base64
    • Phalcon\Cache\Frontend\Data
    • Phalcon\Cache\Frontend\Factory
    • Phalcon\Cache\Frontend\Igbinary
    • Phalcon\Cache\Frontend\Json
    • Phalcon\Cache\Frontend\Msgpack
    • Phalcon\Cache\Frontend\None
    • Phalcon\Cache\Frontend\Output
      #13439
  • Removed model namespace aliases.