Skip to content

Releases: phalcon/cphalcon

Version 1.2.2 Stable

29 Mar 19:00
Compare
Choose a tag to compare
  • Phalcon\Mvc\Model\Query\Builder may now use both integer and string placeholders (#701)
  • Fixed invalid memory reads when GC is on (#469, #927)
  • Phalcon\Flash\Session::getMessage('key') returns now an empty array if the key is not found (#908, #920)
  • Fixed bugs in Phalcon\Escaper (#917)
  • Fixed memory leaks for PHP < 5.4 (#910, #914, #916)
  • Fixed memory access violations (#911, #918, #927, #928)
  • Memory allocation optimizations (#912)

Version 1.2.1 Stable

29 Mar 18:59
Compare
Choose a tag to compare
  • Reduced overall memory usage (#834, #891, #893)
  • Faster internal array and string manipulation (#830, #833, #837)
  • Fixed PHP 5.5 compilation on Windows
  • Dispatching parameters now can be modified in 'beforeExecuteRoute' events
  • 'beforeException' events can now handle exceptions occurred when executing actions (#140)
  • Added Phalcon\Dispatcher::getHandlerClass and Phalcon\Dispatch::getActionMethod
  • Phalcon\Form\Element* classes now implement Phalcon\Form\ElementInterface
  • Phalcon\Config\Adapter\Ini correctly handles empty sections and INI files without any sections (#829, #837)
  • Phalcon\Http\Request fully supports file arrays (#884, #888)
  • Added support for various padding schemes (PKCS7, ANSI X.923, ISO 10126, ISO/IEC 7816-4, zero padding, space padding) to Phalcon\Crypt (#864, #887)
  • Added getKey(), getError(), isUploadedFile() methods to Phalcon\Http\Request\File (#878, #888)
  • Dot-delimited directives in INI-files are now prsed correctly (#872)
  • Fixed memory leaks in cache backends (#860)
  • Fixed various memory corruption issues (#849, #852, #858, #860, #861)
  • Fixed broken Phalcon\Http\Response::setFileToSend() method (#831, #832)
  • Phalcon\Http\Response::setFileToSend() can now show the file in the browser instead of offering to download it (#853)
  • Added Phalcon\Adapter\Config\Json class to read JSON configs (#844)
  • Added FirePHP Log Adapter and Formatter (#845)
  • Faster Phalcon\Config implementation (#837)
  • Phalcon\Config now support numeric properties as well (#837)
  • Database dialects now support BOOLEAN data type (#816)
  • Phalcon\Mvc\Application::handle() now checks whether the class exists before include()'ing its file (#812, #818)

Version 1.2.0 Stable

29 Mar 18:58
Compare
Choose a tag to compare
  • Now 'compiledPath' option accept a closure to dynamically create the compilation path in Volt
  • Volt now supports user extensions, these can be used to extend better Volt
  • Now Phalcon\Mvc\Url provides an internal separation for uris for static resources and uris to rewrite resources
  • Added Mvc\Model\Criteria::inWhere to append an IN expression to the criteria
  • Added Mvc\Model\Criteria::notInWhere to append a NOT IN expression to the criteria
  • Added Mvc\Model\Criteria::notBetweenWhere to append a NOT BETWEEN expression to the criteria
  • Added Mvc\Model\Criteria::betweenWhere to append a BETWEEN expression to the criteria
  • Phalcon\Tag::image accepts a second parameter to allow external URLs
  • Added Phalcon\Mvc\View\Simple as an alternative view component, this only have a single level of rendering and works better with Volt's inheritance
  • Better escaping of reserved words in internal PHQL generation
  • Added Phalcon\Http\Request::getJsonRawBody() to return the request body as a decoded JSON
  • Added Phalcon\Http\Request::getHeaders()
  • Support for many to many relations in the ORM
  • Added Phalcon\Assets\Filters\Jsmin to provide on-the-fly javascript minification
  • Added Phalcon\Assets\Filters\Cssmin to provide on-the-fly CSS minification
  • Support for real nested transactions in Phalcon\Db using database savepoints
  • Support for create/list/drop views in Phalcon\Db
  • Added event application:viewRender to Phalcon\Mvc\Application allowing the developer to call the $view->render method as he/she needs
  • Added option to disable literals in PHQL statements, this highly reduces the possibility
    to be attacked using SQL injections
  • Now you can pass an array of variables with virtual local scope in Phalcon\Mvc\View::partial()
  • Syntax CAST(expr AS datatype) is now supported by PHQL
  • Support for CONVERT(expr USING charset) in PHQL
  • Support for {% include "hello" with [var1, var2] %}
  • Phalcon\Mvc\Collection::find receives a parameter 'fields' to specify a list of fields
  • Added Phalcon\Forms\Element\Email and Phalcon\Tag::emailField
  • Support to define arrays using curly braces in Volt {'a': 'b', 'c': 'd'} in Volt
  • Support to make multiple assigments in a single set in Volt {% set a = b, c = d %} in Volt
  • Volt now support 'if'/'else' blocks with empty bodies
  • Support for 'cascade' action in addition to 'restrict' in Virtual Foreign Keys (ORM)
  • Added missing Phalcon\Http\Request\File::getType()
  • Phalcon\Tag is not abstract anymore allowing to create instances of it
  • Phalcon\Tag is now registered as 'tag' in Phalcon\DI\FactoryDefault
  • In a handler in Phalcon\Mvc\Micro returns an object that implements Phalcon\Http\ResponseInterface the response is automatically send()
  • Phalcon\Mvc\View now have a chaineable API
  • Phalcon\Mvc\Micro now can optionally receive the DI in its constructor
  • Now if a method receives an incorrect number of parameters an exception BadMethodCallException is thrown instead of a warning
  • Phalcon\Mvc\Model/Phalcon\Mvc\Collection now checks for a method 'onConstruct' allowing the developer to execute initialization stuff every time a model/collection instance is created
  • Phalcon\Mvc\Model/Phalcon\Mvc\Collection now checks for a method 'afterFetch' allowing the developer to execute initialization stuff every time a model/collection instance is created
    in a findFirst/find operation is created
  • Added Phalcon\Mvc\Collection::summatory easing the generation of this type of aggregation
  • Support for boolean literals in PHQL
  • Support for complex expressions in GROUP BY clauses in PHQL
  • Now PHQL exceptions include the PHQL statement itself
  • Aliases for namespaces are now supported in PHQL
  • Acl\Memory was rewritted to make it simpler and faster, you may regenerate your serialized ACLs
  • Support for assigment operators +=, -=, *=, /= in Volt
  • Support for Profile-Guided optimization installation scripts (See blog)
  • Added Phalcon\Annotations\Adapter\Xcache to store annotations in Xcache
  • Added Phalcon\Mvc\Model\Metadata\Xcache to store models meta-data in Xcache
  • Added
  • Now if a controller implements 'initialize' it only is called if 'beforeExecuteRoute' is not stopped
  • Listeners implementing 'beforeExecuteRoute'/'afterExecuteRoute' are executed first than the ones implemented as methods in the controller/task

Version 1.1.0 Stable

29 Mar 18:52
Compare
Choose a tag to compare
  • 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

Version 1.0.1 Stable

29 Mar 18:51
Compare
Choose a tag to compare
  • Paths aren't correctly normalized in Phalcon\Mvc\Model\MetaData\Files
  • Added extra class prefix to schema.table in Phalcon\Mvc\Model\MetaData to avoid multiple-database collisions
  • Now Phalcon\Mvc\Router ignores numeric paths in controller, namespace, module and action, avoiding that those will be passed to the dispatcher
  • Added Phalcon\Forms\Form::remove to remove an element from the form and Phalcon\Forms\Form::has to check if a form has an element

Version 1.0.0 Stable

29 Mar 18:50
Compare
Choose a tag to compare
  • Added Phalcon\Mvc\Router::setUriSource to set if the URI source must be $_GET['_url'] or $_SERVER['REQUEST_URI']
  • Added a white-list parameter to Phalcon\Mvc\Model::save(), Phalcon\Mvc\Model::create() and
    Phalcon\Mvc\Model::update() to avoid possible mass-assigment attacks
  • Added leftJoin/rightJoin to QueryBuilder
  • Fixed bug with missing blocks in multiple inheritance in Volt
  • Support for ternary operator in Volt
  • Support for 'forelse' in Volt
  • Added support for loop variable context in Volt
  • Added whitespace control delimiters {%- -%} and {{- -}} to Volt
  • Suport for 'in' and 'not in' operators in Volt
  • Added Phalcon\Mvc\Model::assign to assign an array of values to a model instance
  • Added Phalcon\Mvc\Model::refresh to refresh the state of a model
  • Added Phalcon\Logger\Adapter::setLogLevel to filter messages with greater or less priority
  • Removed constructor from Phalcon\Cache\BackendInterface
  • Added Phalcon\Cache\Multiple, this backend writes to several backends, and reads data according to the order in which backends were registered.
  • Now a model can use a separate connection to read and another to write, this makes horizontal sharding easy
  • Now, a model could implement a method selectReadConnection to dynamically return the correct database according to the current query conditions
  • Added Phalcon\Cache\Backend\Memory to cache data in the current request
  • Added Phalcon\Validation, this component allows the validate a set of data based on pre-defined rules
  • Added Phalcon\Forms, this component acts as a forms builder binding request data to entities, aiding in the validation of data, helping in the errors/messages generated in the validation process
  • Phalcon\Db is now case-folding independent
  • Phalcon\Mvc\Model uses column names keeping the case-folding as they were defined
  • Added Phalcon\Mvc\Router::notFound to define the paths the router must use if any route is matched
  • Improved \Phalcon\Mvc\Router\Annotations to work better with controllers in namespaces and modules
  • A model can be marked to keep record snapshots allowing to check what fields have been changed
  • The _source and _schema properties have been moved from Phalcon\Mvc\Model to Phalcon\Mvc\Model\Manager. This allow set source/schema in the model initializer
  • Added Phalcon\Session\Bag::remove to remove an specific variable from a session bag
  • Added support for complex expressions in PHQL ORDER BY clause
  • Added support for complex expressions in PHQL GROUP BY clause
  • Added support for $_SERVER['REQUEST_URI'] if $_GET['_url'] is not available in Phalcon\Mvc\Router
  • Added an option to set up specific models with dynamic update instead of all-fields update, every field is checked if it was changed to dynamically create a UPDATE SQL column only with those fields that changed
  • Added a minimalist client for the Beanstalk queue server

Version 0.9.0 Stable

29 Mar 18:50
Compare
Choose a tag to compare
  • Support for reusable records. A relation can be marked to cache queried records in memory to speedup getting related records
  • Added 'elseif' statement to Volt
  • Changed static key in Volt's 'cache' to any valid expression
  • Added Phalcon\Logger\Adapter\Syslog and Phalcon\Logger\Adapter\Stream to Phalcon\Logger
  • Added Phalcon\Logger\Multiple to send logs to multiples adapters
  • Added formatters abstraction to Phalcon\Logger, now including: Phalcon\Logger\Formatter\Line, Phalcon\Logger\Formatter\Json and Phalcon\Logger\Formatter\Syslog
  • Added Phalcon\Annotations\Adapter\Files to Phalcon\Annotations, this adapter stores annotations in PHP files
  • Added Phalcon\Annotations, a general purpose component to read annotations from docblocks
  • Phalcon\Mvc\Model now supports saving related records using magic methods with a unique call to 'save'
  • Adding autoescaping option to Phalcon\Tag
  • Added andWhere/orWhere to Phalcon\Mvc\Model\Criteria
  • Added passing an HTTP body to the Phalcon\Http\Response's constructor
  • Phalcon\Mvc\View is now able to pass variables to the views using magic methods
  • Support for slice with filter and built-in syntax in Volt
  • Added magic methods in the ORM to find/findFirst by a single field
  • Improved XSS protection in Phalcon\Tag
  • Implemented queuing events with priorities in Phalcon\Events
  • Implemented collecting of returned responses in Phalcon\Events
  • Added toArray method to Phalcon\Mvc\Model\Resultset classes
  • Added hydration modes to Phalcon\Mvc\Model\Resultset (HYDRATE_RECORDS, HYDRATE_ARRAYS, HYDRATE_OBJECTS)

Version 0.8.0 Stable

29 Mar 18:49
Compare
Choose a tag to compare
  • Improved Phalcon\Escaper, this component provides contextual escaping of different kinds of texts (CSS, Javascript, URL, HTML Attributes etc)
  • Added serialization of Mvc\Collection instances
  • Added Phalcon\Mvc\View::setLayout to change the layout instead of looking for a controller with the same name as the latest controller dispatched
  • Now is possible to pass an option called 'options' to any of the Phalcon\Db\Adapter\Pdo adapters to set extra
    PDO options in the connection
  • Removed filtering of keys from Phalcon\Cache\Backend\File
  • Support for creating groups of routes using Phalcon\Router\Route\Group
  • Added Phalcon\Mvc\Micro middleware events
  • Implemented virtual scopes in Phalcon\Mvc\View
  • Added support for behaviors in the ORM including: Phalcon\Mvc\Model\Behavior\Timestampable and Phalcon\Mvc\Model\Behavior\SoftDelete
  • Improved serialization of Mvc\Model instances and complex resultsets
  • Added an option to change the layouts directory and partials directory in Phalcon\Mvc\View
  • Added an option to disable an specific level of rendering in Phalcon\Mvc\View
  • Added Phalcon\Mvc\Model::setup to globally enable/disable specific features in the ORM
  • Added Phalcon\Db::setup to globally enable/disable specific features in the database component
  • Added Phalcon\Mvc\Model\Resultset::delete to delete every complete object returned in a resultset using a transaction
  • Added Phalcon\Mvc\Model\Resultset::update to update every complete object returned in a resultset using a transaction
  • Added support for converters in Phalcon\Mvc\Router
  • Added Phalcon\Mvc\View::getRender to return contents of a template into a string
  • Added methods to support HTTP method PATCH
  • Now Phalcon\Mvc\Model uses the last part of a namespaced class name as source name
  • Phalcon\DI now implements ArrayAccess to get/set services
  • Phalcon\Mvc\Micro now implements ArrayAccess to get services from the related services container
  • Improved building of complex service definitions in the DI
  • Added toArray method to Phalcon\Mvc\Model instances
  • Added autoescape mode in Volt
  • Removed unnecessary intermediate zvals when retrieving array items reducing overall memory comsumption
  • Removed unnecessary intermediate zvals when retrieving object members reducing overall memory comsumption
  • Removed PH_CHECK constant making simpler calling functions and methods internally
  • Added Phalcon\Text::increment, Phalcon\Text::random, Phalcon\Text::lower, Phalcon\Text::upper, Phalcon\Text::startsWith, Phalcon\Text::endsWith
  • Added Phalcon\Config::merge to merge recursively a configuration with another one
  • Added Phalcon\Config::toArray method to recursively convert an object to an array
  • Improved Volt runtime error/syntax error messages including always line and file
  • Added Phalcon\Security providing a set of functions to improve the security in Phalcon applications like bcrypt password hashing and CSRF protection
  • Added Phalcon\Mvc\View\Engine\Volt\Compiler::addFunction to register user functions
  • Added Phalcon\Mvc\View\Engine\Volt\Compiler::addFilter to register user filters
  • Added Phalcon\Mvc\Model\Relation as class for model relationships
  • Added '[' and ']' as delimiters to escape PHQL reserverd words
  • Reduced memory usage in PHQL parser/tokenizer
  • Added support for aliasing of model relationships in Phalcon\Mvc\Model
  • Relationships in Models are now case insensitive to be compliant with the PHP standard
  • Looking for a relationship in the models manager now performs a search in O(1) order
  • Added "cache" statement in Volt to cache view fragments
  • Added "do" statement to Volt to execute an expression without printing its evaluated value
  • Added "include" statement to Volt to perform a statical include of other views in compiling time
  • Added an internal method cache to speed up overall execution
  • Reduced memory allocation when reading/writing properties from objects
  • Added missing Phalcon\Mvc\Collection::getMessages() and Phalcon\Mvc\Collection::appendMessage
  • Added Phalcon\Config::get method to obtain a value from the configuration object setting a default value
  • Added an optional default value to Phalcon\Session\Adapter::get if this method returns a null value
  • Added OO methods to Phalcon\Session\Bag::get
  • Added an optional default value to Phalcon\Session\Bag::get if this method returns a null value
  • Added multiple inheritance and two-way replacement of blocks in Volt
  • Added evaluation of "tests" to Volt
  • Added support to call methods and read properties in sub-objects in Volt
  • Volt now checks if a variable name is a registered service and injects it to the views
  • The "For" statement in Volt now supports get the current key and add an optional if evaluation
  • Added support to read PHP constants in Volt
  • Added "prefix" option to Volt, allowing prefixing the resulting compiled paths
  • Now registerAutoloader in module definitions receives the services container (DI) as first parameter
  • Fixed skipAttributes methods in Phalcon\Mvc\Model
  • Fixed use of muliples databases in the ORM
  • Fixed use of a common events manager databases in the ORM
  • Now Phalcon\Mvc\Router can be configured to remove extra slashes passed in the URI
  • In Phalcon\Mvc\Router the default route is '/' when none is giving

Version 0.7.0 Stable

29 Mar 18:45
Compare
Choose a tag to compare
  • Now the namespace can be set in a path of the route and it will passed automatically to the dispatcher
  • Implementing URL generation based on routes without regular expressions
  • Now is possible register a template engine in Phalcon\Mvc\View with an anonymous function
  • Passing 'compileAlways' => true as option for Volt makes that the templates will be always compiled instead of checking if they have changes
  • Now Phalcon\Cache\Backend adapters return false in the "exists" method if the cache has expired
  • Fixed bug in Phalcon\Db\Result\Pdo::seek when using bind parameters
  • Implemented a fast way to retrieve object's members without adding a memory frame
  • Now Phalcon\Mvc\Dispatcher checks for methods beforeExecuteRoute and afterExecuteRoute in the controller handler
  • Added phalcon_start_with to check if a zval string starts with other string avoiding substrs in PHP userland
  • Added interfaces to most classes helping the developer to easily create component replacements and add new adapters/classes
  • Implemented interfaces on their own components
  • Implemented event propagation, event cancelation and ability to stop events in EventsManager
  • Added Phalcon\Dispatcher::getDefaultNamespace
  • Added a $merge parameter to every Phalcon\Loader strategy to merge current values with a new array
  • Implemented registering services as "always shared"
  • Now Phalcon\Mvc\Model::save, Phalcon\Mvc\Model::create, Phalcon\Mvc\Model::update receives an array to assign the model's attributes from it
  • Support for UTF-8/UTF-16 characters on 32 bit platforms for PHQL/Volt parsers
  • Support for custom schemas in PHQL
  • Now is possible pass bound parameters to Phalcon\DB::fetchOne and Phalcon\Db::fetchAll
  • Implemented independent column map for models and a full escaping system for columns/tables/schemas according to the database system conventions
  • Added a $merge parameter to Phalcon\Mvc\Application::registerModules to merge new modules with current ones
  • Phalcon\Mvc\Application now allows registering a module using an anonymous function
  • Added Phalcon\Mvc\Model\Query\Builder aiding in the creation of PHQL queries using an OO interface
  • Support for COUNT(DISTINCT x) syntax in PHQL
  • Allowing user-defined messages in most Phalcon\Mvc\Model\Validators
  • Now Phalcon\Mvc\Model\Validator\StringLength uses mb_strlen when it is available
  • Allowed pass a URI manually to Phalcon\Mvc\Micro::handle()
  • Fixed missing json_encode filter in Volt
  • Moving cache implementation from Phalcon\Mvc\Model to Phalcon\Mvc\Model\Query, this allows caching both simple and complex resultsets
  • Added Phalcon\Paginator\Adapter\QueryBuilder to use a PHQL Query Builder as source of data
  • Added adapter for Oracle databases in Phalcon\Db

Version 0.6.1 Stable

29 Mar 18:42
Compare
Choose a tag to compare

0.6.1

  • Fixed bug in Phalcon\Mvc\Micro's not-found handler
  • Fixed bug reading named-parameters with quantifiers in Phalcon\Mvc\Router
  • Now named-routes are processed without use regular expressions
  • Now $this->view->disable() disables the auto-rendering mode completely
  • Added Phalcon\Mvc\View::enable that re-enables the auto-rendering mode
  • Added Phalcon\Cache\Backend::stop() to stop the cache without store anything into the backend
  • Fixed bug in Phalcon\Mvc\View that saves an empty cached content when using a cache
  • Implemented Phalcon\Db::FETCH_OBJ to return objects instead of arrays
  • Added functions version, version_id, date and time to Volt
  • PHQL OFFSET complete implementation
  • Fixed bug in Phalcon\Mvc\Collection::find and Phalcon\Mvc\Collection::findFirst
  • Removing unnecessary duplications in zval PHALCON_GET_FOREACH_VALUE
  • Merging PHALCON_INIT_NVAR into PHALCON_GET_FOREACH_KEY
  • Added HTML/XHTML document type support in Phalcon\Tag
  • Added "exists" method to every backend in Phalcon\Cache\Backend
  • Now is required pass true as parameter to Phalcon\Http\Request::getClientAddress if the user want to check the client address in the $_SERVER['HTTP_X_FORWARDED_FOR'] header
  • Removed unnecessary duplication of function names when calling function and methods
  • Now Phalcon can call functions from the PHP userspace without use call_user_func_array/call_user_func increasing performance
  • Added beforeException event triggered from Phalcon\Dispatcher before launch an exception allowing injecting code before launch a real exception modifing the behavior of the component
  • Now is possible attach listeners directly to specific events in Phalcon\Event\Managers
  • Added Phalcon\Http\Request::get and Phalcon\Http\Request::has to read/check values from $_REQUEST
  • Added Phalcon\Cache\Backend\Mongo that uses a MongoDB collection as backend
  • Added options (compiled path, compiled separator, stat) for Volt
  • Concatenation on the same variable is now faster by using realloc instead of zval duplication
  • Some internal macros like PHALCON_INIT_VAR now produce fewer C-code making the extension lighter
  • Removed initialization of the memory stack frame when isn't needed
  • Inlining of scope locating functions to make read/write on objects faster
  • Array joins are now faster because a zval needle isn't needed anymore
  • Implemented fast copy/ctor to return_value reducing the overall memory usage
  • Added Phalcon\Tag::friendlyTitle to create friendly titles
  • Added a new C-based template engine highly coupled with Phalcon called Volt
  • Registered Phalcon\Mvc\Model\Transaction\Manager in Phalcon\DI\FactoryDefault as 'transactionManager'
  • Added Phalcon\Escaper to add contextual escaping of different kinds of texts
  • Registered Phalcon\Escaper in Phalcon\DI\FactoryDefault as 'escaper'
  • Phalcon\Tag now caches resolved services such as 'url' and 'dispatcher' making the view generation faster
  • Added support to the OFFSET clause in PHQL
  • Optimized Phalcon\Mvc\Model\Metadata to use fewer memory when using a high number of tables
  • Changed the use of strpos by phalcon_memnstr to search for strings into other strings reducing unnecessary zval allocations
  • Added faster camelize/uncamelize functions
  • Now a model can implement the method metaData to return the model meta-data insteaf of leave Phalcon do it automatically
  • Phalcon\Mvc\Model::skipAttributes allows setting a group of attributes that must be skipped from the INSERT/UPDATE SQL generation
  • Added Phalcon\Mvc\Collection to manage non-structured data models, for example: MongoDB