Version 1.1.0 Stable
niden
released this
29 Mar 18:52
·
15909 commits
to master
since this release
- Improvements to the query builder allowing to define bound parameters in the "where" methods
- Added Mvc\Model\Query\Builder::inWhere to append an IN expression to the query
- Added Mvc\Model\Query\Builder::notInWhere to append a NOT IN expression to the query
- Added Mvc\Model\Query\Builder::betweenWhere to append a BETWEEN expression to the query
- Now Phalcon\Session\Bag injects automatically the default DI if one hasn't beed manually assigned
- Added Phalcon\Forms\Manager to reference forms and retrieve them from any part of the application
- If an element in Phalcon\Forms doesn't have a label defined now returns the element's name as label
- Now if a validator in Phalcon\Validator has defined the option 'cancelOnFail' => true the validation
will be aborted if the validator fails - Added Phalcon\Validation\Validator\Between to check a value between a range of two values
- Added Phalcon\Validation\Validator\Confirmation to check that a value match its confirmation value (another attribute in the data to validate)
- Phalcon\Forms\Form now extends from Phalcon\DI\Injectable allowing developers to use application services in the form initialization
- Now calls to Phalcon\Mvc\Router can be chained
- Phalcon\Mvc\Router::getRewriteUri is now public
- Added Phalcon\Mvc\Router\Route::beforeMatch to implement arbitrary conditions to unmatch a matched route
- Phalcon\Mvc\Model can be now set up to throw an exception when the saving process fails
- Added Phalcon\Assets component to manage CSS/Javascripts resources in an application
- Added Phalcon\Annotations\Collection::getAll to return all the annotations in a collection that matches a name
- Added Phalcon\Crypt component to provide encryption facilities to phalcon applications
- Now Phalcon\Http\Request: get, getQuery y getPost returns the respective superglobals in case of no parameters
- Now Phalcon\Mvc\Router supports simple/regex hostname restrictions
- Added support for filtering/sanitizing in Phalcon\Validation
- Added events beforeValidation/afterValidation to Phalcon\Validation and Phalcon\Forms\Form
- Added ability to register user-options in Phalcon\Forms\Form elements
- Fixed Phalcon\Mvc\Micro\Collections to register a controllers in Phalcon\Mvc\Micro
- Added Phalcon\Tag::dateField and Phalcon\Tag::numericField
- Added Phalcon\Forms\Element\Date and Phalcon\Forms\Element\Numeric
- Added Phalcon\Cache\Frontend\Json to cache data as JSON
- Added Phalcon\Tag::tagHtml and Phalcon\Tag::tagHtmlClose to generate any kind of HTML tags
- Phalcon\Http\Response\Cookies is now fixed
- Added support for automatic crypting of cookies in Phalcon\Http\Response\Cookies
- Phalcon\DI\FactoryDefault now provides the 'crypt' service
- Volt's paths are now automatically normalized to realpaths
- Fixed bug in convert_encoding in Volt
- Added Phalcon\Filter\UserFilterInterface to be used in custom filters
- Added support for filters in Phalcon\Forms\Form elements
- Added maximum recursion depth exceeded control in Phalcon\Kernel
- Performance: Now Phalcon makes use of interned strings if PHP 5.4 to reduce memory usage
- Performance: Implemented cache of visibility for all intern properties in 5.3/5.4 increasing performance
- Performance: All hash keys are now pre-calculated in compilation time to read/write internal properties faster
- Performance: Now all functions are static allowing the compiler to inline functions or remove those that aren't used by the framework
- Performance: Now Phalcon provides specific optimizations when the extension is compiled for NTS modules
- Performance: Implemented function to fetch parameters from the VM stack with minimum overhead
- Performance: Implemented a global PHQL parser cache to avoid that a same statement be parsed more than one time
- Performance: Events by priority are now disabled by default. A user must explicitly define that Phalcon\Events\Manager must use a PriorityQueue instead of a FIFF (First In-First Fired)
- !! Phalcon\CLI\Router API have been changed. Check the manual to update your bootstrap