Releases: phalcon/cphalcon
Releases · phalcon/cphalcon
Version 1.3.1 Stable
- Fixed segfault in Phalcon\Di\Service::resolve when string class does not exist (#2205)
- Moved global zvals to RINIT/RSHUTDOWN to improve stability on Windows TS builds
- Moved pre-allocated frames to RINIT/RSHUTDOWN to improve stability on Windows TS builds
- Fixed segfault when replacing Phalcon\Session adapter by PHP userland adapter
- Fixed zval invalid indirection in Phalcon\Security hash
- Fixed segfault when passing an invalid number of arguments to Phalcon\Annotations\Reader::parseDocBlock
- Private and Protected properties weren't unmangled in Phalcon\Annotations\Reader
- First character of controller name was removed when isExactHandler flag is on
Version 1.3.0 Stable
- Make the source code compatible with PHP 5.6-dev and PHP 5.7-dev (#1762)
- Code cleanup: get rid of compiler warnings, dead code elimination, code deduplication, use static code analysers to eliminate possible bugs
(#801, #802, #810, #825, #827, #838, #849, #942, #968, #1001, #1093, #1169, #1214, #1223, #1224, #1375, #1430, #1787, #1794, #1828) - Fixed various memory leaks (#469, #860, #910, #914, #916, #1031, #1067, #1249, #1273, #1291, #1309, #1345, #1455, #1470, #1700)
- Fixed memory access violations / segmentation faults / etc (#469, #849, #851, #852, #858, #860, #861, #895, #911, #918, #927, #928, #1000, #1077, #1112, #1113, #1131, #1149, #1173,
#1272, #1284, #1302, #1340, #1343, #1368, #1369, #1371, #1376, #1379, #1392, #1451, #1466, #1485, #1494, #1501, #1504, #1509, #1567, #1607, #1983, #1006) - Fixed PHP notices, warnings and other incompatibilities (#894, #1222, #1315, #1413, #1427, #1428, #1529, #1988, #1998)
- Fixed inheritance chain for Phalcon\Forms\Exception, Phalcon\Loader\Exception, Phalcon\Http\Request\Exception (#1770)
- Major source code optimizations (#1785, #1972, #2003)
- Control Phalcon behavior via INI settings (#1796)
- Security fixes:
- Hardening fixes (#1044)
- Interface validation (#1043, #1048)
- Thorough data validation in __wakeup() (#1043, #1634, #1635)
- Fixed XSS vulnerabilities (#1216, #1190)
- Phalcon\Security::checkHash() allows to restrict the length of the password to avoid attacks like https://www.djangoproject.com/weblog/2013/sep/15/security/ (#1261)
- Fixed crash while rendering element's label (#1210)
- Prevent MongoDB Request Injection Attacks (#1265)
- Do not allow to override superglobals in views (#1617)
- Phalcon Kernel:
- 32 and 64 bit hashes can be computed on the same CPU architecture (#817)
- Reduced overall memory usage (#834, #891, #893)
- Memory allocation optimizations (#912, #1220, #1987)
- Faster internal array and string manipulation (#822, #823, #830, #833, #837, #890, #1972)
- Camelize does not ignore the last character of a string anymore (#1436)
- Fixed bug in phalcon_fix_path() (#1601)
- Use native counterparts for memory_get_usage(), gettype(), json_encode(), json_decode(), session_XXX(), header(), headers_sent(), debug_backtrace(),
lcfirst(), ob_XXX(), array_unshift(), array_values(), array_keys(), htmlentities() (#836, #847, #936, #945, #1099) - Hash funcrions tailored for object handlers (#842)
- Optimization of calls to userland functions and methods (#843, #954)
- Read/modify/update optimization on properties (#848)
- Added support for self/parent/static scopes in static properties (#943)
- Scope lookup optimizations (#948)
- Do not restore memory frames from kernel functions (#960, #976)
- Diagnostic messages when Phalcon is compiled in dev mode (#1009, #1054, #1097)
- Return Value Optimization (#1046, #1047, #1075)
- Fixed locale issue (#1095)
- Added support for interned strings (PHP 5.4+)
- Static property fetch/update optimization (#1293)
- Fix misleading diagnostics on exception (#1297)
- Use preallocated permanent zvals instead of null, true, false, 0 and 1 (#1302)
- Bug fix in phalcon_fix_path() (#1591)
- Persistent function cache for Phalcon methods (#1825)
- Function call optimization (#1846)
- Use Native Reflection API (#1957)
- Phalcon\Acl:
- Phalcon\Annotations:
- Phalcon\Assets:
- Fixed bugs when minifier produced no output at all (#811, #821)
- Fixed joining issue (#951)
- Added support for UTF-8 characters in jsmin
- Fixed chaining of CSS/JS filters (#1198)
- Phalcon\Assets\Filters\CssMin and JsMin implement Phalcon\Assets\FilterInterface (#1539)
- Added Phalcon\Assets\Collection::setTargetLocal() (#1532)
- Phalcon\Cache:
- Added Libmemcached cache backend (#913)
- Added support for APCu 4.0.2+ (#1234)
- Implemented Phalcon\Cache\Backend\Memory::queryKeys() (#1093)
- Bug fixes in Phalcon\Cache\Backend\Xcache (#1406)
- Phalcon\Cache\Frontend\Data optimizations (#1093)
- Phalcon\Cache\Frontend\None optimizations (#1093)
- Phalcon\Cache\Frontend\Base64 optimizations (#1093)
- Phalcon\Cache\Frontend\Igbinary optimizations (#1093)
- Phalcon\Cache\Frontend\Output optimizations (#1093)
- Phalcon\Cache\Frontend\Json optimizations (#1093)
- Phalcon\Cache\Backend optimizations (#1093)
- Phalcon\Cache\Backend\Memory optimizations (#1093)
- Phalcon\Cache\Backend\File optimizations (#1093)
- Phalcon\Cache\Backend\Apc optimizations (#1093)
- Phalcon\Cache\Backend\Xcache optimizations (#1093)
- Phalcon\Cache\Backend\Memcache optimizations (#1093)
- Phalcon\Cache\Backend\Mongo optimizations (#1093)
- Phalcon\Cache\Backend\Libmemcached optimizations and bug fixes (#1093)
- Added increment() and decrement() methods (#1374)
- Added flush() method (#1352)
- Phalcon\Cache\Backend now implements Phalcon\Cache\BackendInterface (#1852)
- Ability to disable key tracking for Memcache/Libmemcached backends (#1550)
- Phalcon\Config:
- Faster Phalcon\Config implementation using object handlers (#837, #1277)
- Phalcon\Config now support numeric properties as well (#837)
- Implemented Phalcon\Config::offsetUnset() (#732)
- Phalcon\Config\Adapter\Ini correctly handles empty sections and INI files without any sections (#829, #837)
- Added Phalcon\Adapter\Config\Json class to read JSON configs (#844)
- Phalcon\Config::merge now works with derived classes (#1024)
- Dot-delimited directives in INI-files are now prsed correctly (#872)
- Support for PHP arrays as config files (#1439)
- Phalcon\Crypt:
- Phalcon\Db:
- Added support for DECIMAL scale (#940)
- Fixed invalid sequence names for PostgreSQL (#1022)
- Added support for MySQL DOUBLE type (#1128)
- Database dialects now support BOOLEAN data type (#816)
- Added support for POINT type in MySQL (#1536)
- Fixed issue with RawValue('default') on composite primary key (#1534)
- Added support for AUTO_INCREMENT columns to addColumn() (MySQL, SQLite) and modifyColumn() (MySQL) (#1695)
- Phalcon\Db\Dialect\Mysql::getColumnDefinition() now returns INT instead of INT(0) (#1695)
- Added support for the following fetch modes from PDO: FETCH_LAZY, FETCH_BOUND, FETCH_COLUMN, FETCH_CLASS, FETCH_INTO, FETCH_FUNC, FETCH_NAMED, FETCH_KEY_PAIR (#1642)
- Added support for the following fetch mode modifiers from PDO: FETCH_GROUP, FETCH_UNIQUE, FETCH_CLASSTYPE, FETCH_SERIALIZE, FETCH_PROPS_LATE (#1642)
- Phalcon\Db optimizations (#1693)
- Phalcon\Db\Adapter optimizations (#1693)
- Phalcon\Db\Index optimizations (#1693)
- Phalcon\Db\Profiler optimizations (#1693)
- Phalcon\Db\Reference optimizations (#1693)
- Phalcon\Db\Result\Pdo optimizations (#1693)
- Phalcon\Db\Adapter now implements Phalcon\Db\AdapterInterface (#1852)
- Phalcon\Db\Dialect now implements Phalcon\Db\DialectInterface (#1852)
- Phalcon\Debug:
- Phalcon\DI:
- Phalcon\Di optimizations (#1014) with workarounds for NuSphere DBG (#1714)
- Added Phalcon\Di\Service::isResolved() method (#1242)
- Make sure that 'persistent' is resolved only when accessed for the first time (#1637)
- Faster DI implementation by using object handlers (#1473)
- Changes to Phalcon\DiInterface (#2034)
- removed setShared() method because it is a shorthand for set($name, $definition, true);
- removed attempt() method because it is a shorthand for
has()
+set()
- renamed setRaw() to setService() because getRaw() is actually getService() + $service->getDefinition()
- setRaw() is now an alias for setService() but it will spit E_DEPRECATED
- removed
getRaw()
because it isgetService()
+$service->getDefinition()
- modified
setService($name, $raw_definition)
tosetService($raw_definition)
because service name can be retrieved from the definition
- Phalcon\Dispatcher:
- 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\Dispatcher::getActionMethod
- Implemented afterInitialize event (#782)
- Phalcon\Dispatcher optimizations (#782)
- Added getPreviousControllerName(), getPreviousActionName() (#1462)
- If an event handler throws an exception, call dispatch:beforeException and break the dispatch loop (#1763)
- Phalcon\Dispatcher::_handleException() is invoked regardless whether the event manager is present (#1953)
- Phalcon\Element:
- Phalcon\Element::addFilter() incorrectly prepends NULL as the first element (#1019)
- Phalcon\Escaper:
- Phalcon\Events:
- Phalcon\Flash:
- Phalcon\F...
Version 1.2.6 Stable
- Phalcon\Security::checkHash() now correctly handles non-bcrypt hashes (#1912)
Version 1.2.5 Stable
- Http\Cookie::__toString() will not throw exceptions (#1427)
- Phalcon\Http\Cookie::__toString() will return a string value (#1428)
- Camelize does not ignore the last character of a string anymore (#1436)
- APC tests do not run under CLI when apc.enable_cli is 0 (#1449)
- Phalcon\Debug::uri now supports both http and https (#987)
- Fixed inconsistency in Tag::stylesheetLink/javascriptInclude w.r.t. local URLs (#1486)
- Fixed bug in Phalcon\Queue\Beanstalk::read() (#1348, #1612)
- Phalcon\Flash\Session::getMessages() incorrectly removed all messages (#1575)
- Fixed bug in phalcon_fix_path() (#1601)
- Added Phalcon\Mvc\Model\Row::toArray() method (#1506)
- Added support for POINT type in MySQL (#1536)
- Phalcon\Mvc\Model\Validator::getOption() returns NULL if the option does not exist (#1530)
- Fixed parsing of annotations containing / (#1480)
- Make sure that 'persistent' is resolved only when accessed for the first time (#1637)
- Fix Phalcon\Session\Bag::remove() (#1637)
- Bug fixes in beanstalkd protocol implementation
- Phalcon\Paginator\Adapter\Model returns correct results even when page number is incorrect (#1654)
- Bug fix: no arguments were passed to beforeMatch handler in Phalcon\Mvc\Router (#1556)
- Phalcon\Logger\Adapter::setLogLevel() is honored by transactions (#1716)
- Bug fixes in Phalcon\Db\Adapter\Pdo::describeColumns() (#1562)
- Phalcon\Session\Adapter::__destruct() now calls session_write_close() (#1624)
- Volt: fixed bug in email_filed() (#1723)
- Fixed PHP Notices in Phalcon\Debug::onUncaughtException() (#1683)
- Phalcon\Logger\Adapter::commit() clears the queue (#1748)
- Constant-time string comparison in Phalcon\Security::checkHash() (#1755)
- Fix phalcon_escape_multi() to generate valid UTF-8 (#1681)
Version 1.2.4 Stable
- Fixed broken ACL inheritance (#905)
- Fixed crash while rendering element's label (#1210)
- Fixed XSS vulnerabilities (#1216, #1190)
- Added support for APCu 4.0.2+ (#1234)
- Fixed chaining of CSS/JS filters (#1198)
- Fixed notices and warnings with complex PHQL queries (#1222)
- Memory allocation optimizations (#1220)
- Fixed regular expression in \Phalcon\Mvc\Model\Validator\Email (#1243)
- Documentation bug fixes
- Phalcon\Mvc\Model::hasOne/hasMany/belongsTo/hasManyToMany/addBehavior() are now public methods (#1166)
- Added support for MySQL DOUBLE type (#1128)
- Added support for UTF-8 characters in jsmin
- Added support for UTF-8 to \Phalcon\Debug (#1099)
- Fixed regression in \Phalcon\Http\Request::getRawBody() (#1091)
- Implemented \Phalcon\Cache\Backend\Memory::queryKeys() (#1093)
- Redirects use status descriptions from RFC 2616 (#1175)
- \Phalcon\Config::merge now works with derived classes (#1024)
- \Phalcon\Security::checkHash() allows to restrict the length of the password to avoid attacks like https://www.djangoproject.com/weblog/2013/sep/15/security/
- \Phalcon\Config can now be cloned (#1277)
- \Phalcon\Mvc\Query\Builder::__construct() ignores joins (#1327)
- Bug with a custom Events Manager in Phalcon\Mvc\Models (#1314)
- Micro Collections return Phalcon\Mvc\Micro\CollectionInterface (#1130)
- \Phalcon\Forms\Form::getMessages() does not generate a fatal error if the form is valid (#1349)
- Fixed memory leaks (#1345)
- Fixed invalid memory reads/writes across the code (#1340)
- Fixed HAVING handling in Phalcon\Mvc\QueryBuilder (#1396)
- Bug fixes in \Phalcon\Logger{Adapter,Formatter}\FirePhp (#1333)
- Bug fixes in Phalcon\Cache\Backend\Xcache (#1406)
- Phalcon\Forms\Element::__toString() does not throw exceptions anymore (#1413)
- Other bug fixes (#947, #1131, #1040, #1275, #1392, #1396, #1399, backported patches from 1.3.0 etc)
Version 1.2.3 Stable
- Security fixes (#1144)
Version 1.2.2 Stable
- 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
- 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
- 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
- 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