Skip to content

Latest commit

 

History

History
659 lines (644 loc) · 74.3 KB

CHANGELOG-1.x.md

File metadata and controls

659 lines (644 loc) · 74.3 KB

1.3.4 (2014-10-28)

  • Fix improper access to \Phalcon\Debug::$_charset (#2840)
  • Fix segfault in Phalcon\Mvc\Collection when an invalid parameter is passed as conditions
  • Fix segfault when MongoClient does not return a valid collection in Phalcon\Mvc\Collection
  • Fix possible memory corruption when phalcon_concat_self does not properly separate values

1.3.3 (2014-09-23)

  • Fix segmentation fault in zim_Phalcon_Http_Request_getBasicAuth (#2819)
  • Fix memory corruption on unclean shutdown (#2829)

1.3.2 (2015-05-05)

  • fix inverted test in Model/setSnapshotData() (issue #2466)
  • Updated Phalcon\Queue\Beanstalk\Job::touch comment
  • Fixed use columns as referenced columns in mysql createTable() reference...
  • #2414 - Removed check for DBG in session/adapter
  • Updated Model::__set
  • #1989 Supported \Phalcon\Db\Index: TYPE
  • Updated Phalcon\Mvc\Model\Query\Builder::groupBy
  • Validation, setDefaultMessages fix
  • Fix pagination nativeArray test-unit failed
  • Add Phalcon\Translate\Adapter\Gettext
  • Add Phalcon\Config\Adapter\Yaml
  • #1803 Bug join alias
  • Fix valid function for the first call
  • Acl bug
  • #2402 issue
  • Ignore "value" attribute in TextArea.
  • #2394 Add Phalcon\Validation\MessageInterface
  • Relative namespace
  • #2386
  • Fixing a typo
  • #2375 Add check messages is object in Phalcon\Validation::appendMess...
  • Update affected rows for selects.
  • #2196: Declare missing functions
  • Fix broken condition
  • Add Phalcon\Mvc\Model\MetaData\Strategy
  • Fix offsetUnset
  • Changing "file_exists" function for "is_file".
  • Fix bug about updated property for Phalcon\Session*
  • #2291 Middlewares do not stop operation when before event triggered in Micro as documented https://docs.…
  • #1608 about Phalcon\Mvc\Router\Annotations
  • #2019 and added tests
  • model: added methods arg infos
  • #2319 In Model::_postSaveRelatedRecords add check whether value is object
  • #2321: Fixed the null value for position
  • #2313 about Phalcon\Annotations\Annotation
  • #2229 (cast and convert not working)
  • Add method Phalcon\Assets\Collection::addFilter
  • Add Phalcon\Session\Adapter\memcache and Phalcon\Session\Adapter\Libmemcached
  • Add class Phalcon\Session\Adapter\Libmemcached
  • Add class Phalcon\Session\Adapter\Memcache
  • \Phalcon\Tag::XHTML5 was returning empty string
  • #2278 add Phalcon\Logger\Multiple::CRITICAL
  • Tag, add title separator to append/prepend title
  • #2250 Updated Phalcon\Db\Dialect::select
  • #2270 updated phalcon_camelize
  • Add namespace support for view
  • #2259 Updated \Phalcon\Image\Adapter::crop
  • #2262 \Phalcon\Logger\Formatter\Json Wrong number of parameters
  • #2244 add judge conditions in Phalcon\Mvc\Model\Manager::getRelationRecords
  • Removed final keyword from Model constructor
  • #2111 – replacing bindParam to bindValue to avoid unexpected reference changes
  • #2002 Tag::linkTo() to allow the addition of query string parameters
  • Added allowEmpty option to \Phalcon\Mvc\Model\Validator*
  • Use phalcon_camelize for namespace Add \Phalcon\Session\Adapter::setId Fixed #1932 Phalcon\Http\…
  • #2111 – replacing bindParam to bindValue to avoid unexpected reference changes
  • Fix wrong issent() call on non Response objects
  • #2236 - in mysql tinyint(1) is not boolean it's an int between 0 and 127
  • Add \Phalcon\Session\Adapter::setId
  • Fix BUG \Phalcon\Model\Validate*
  • Travis fast-finish builds
  • #2157 and added tests
  • #2196 Declared missing functions
  • Add allowEmpty option to \Phalcon\Mvc\Model\Validator*
  • #2002 Tag::linkTo() to allow the addition of query string parameters
  • #2018 add method \Phalcon\Db\Result\Pdo::nextRowset
  • Use phalcon_camelize for namespace
  • #1932 Phalcon\Http\Request\File extend SplFileInfo

1.3.1 (2014-03-25)

  • 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

1.3.0 (2014-03-19)

  • 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:
  • 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 functions 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:
    • Fixed broken ACL inheritance (#905)
    • Bug fix when ACL allowed access to forbidden resources (#1303)
    • Fixed bug with ACL * wildcard (#1409)
    • Fixed bug with numeric resources (#1513)
    • Phalcon\Acl\Adapter now implements Phalcon\Acl\AdapterInterface (#1852)
  • Phalcon\Annotations:
    • Fixed getProperty() bug in AnnotationsAdapter (#996)
    • Phalcon\Annotations optimizations (#1141)
    • Fixed parsing of annotations containing / (#1480)
    • Phalcon\Annotations\Adapter now implements Phalcon\Annotations\AdapterInterface (#1852)
    • Annotation parser optimization (#1957)
  • 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:
    • 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)
    • Reduced peak memory usage (#1237)
    • encryptBase64() and decryptBase64() can optionally use RFC 4648 flavor of BASE64 (#1353, #1919)
  • 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:
    • Added support for UTF-8 to \Phalcon\Debug (#1099)
    • Phalcon\Debug::uri now supports both http and https (#987)
    • Fixed array to string conversion notice (#1103)
    • Add support for xdebug.file_link_format (#1401)
  • 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 is getService() + $service->getDefinition()
      • modified setService($name, $raw_definition) to setService($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:
    • Fixed bugs in Phalcon\Escaper (#917)
    • Phalcon\Escaper optimizations (#1015)
    • Fix phalcon_escape_multi() to generate valid UTF-8 (#1681)
  • Phalcon\Events:
    • Added support for weak references (#663)
    • Bug fix in Phalcon\Events\manager::attach() (#1331, #1337)
  • Phalcon\Flash:
    • Phalcon\Flash\Session::getMessage('key') returns now an empty array if the key is not found (#908, #920)
    • Phalcon\Flash\Session::getMessages() incorrectly removed all messages (#1575)
    • Implemented Phalcon\Flash\Session::isset() (#1342)
  • Phalcon\Forms:
    • Phalcon\Forms\Element* classes now implement Phalcon\Form\ElementInterface
    • Added support for HTML attributes to Phalcon\Forms\Form::label() (#1029)
    • Phalcon\Forms\Form::getMessages() does not generate a fatal error if the form is valid (#1349)
    • Improvements to Phalcon\Forms\Form::add() (#1386)
    • Added Phalcon\Forms\Element\Radio class (#1646)
    • Phalcon\Forms\Form::hasMessagesFor() returns boolean (#1764)
    • Iterators for Phalcon\Forms\Form implemented via Zend API (#1765)
    • Phalcon\Forms\Form::count() implemented via Zend API (#1765)
    • Phalcon\Forms\Form optimizations (#1765)
    • Phalcon\Forms\Element now implements Phalcon\Forms\ElementInterface (#1852)
    • Fixed Phalcon\Forms\Element\Select::addOption() (#1955)
  • Phalcon\Http:
    • Phalcon\Http\Cookie can be used without sessions (#875)
    • Phalcon\Http\Cookie does not ignore expire time (#897)
    • Phalcon\Http\Request fully supports file arrays (#884, #888)
    • Phalcon\Http\Request optimizations (#889)
    • Added getKey(), getError(), isUploadedFile() methods to Phalcon\Http\Request\File (#878, #888)
    • Fixed regression in \Phalcon\Http\Request::getRawBody() (#1091)
    • Bug fix in Phalcon\Http\Request::getQuery() (#1226)
    • Fixed broken Phalcon\Http\Response::setFileToSend() method (#831, #832)
    • Redirects use status descriptions from RFC 2616 (#1175)
    • Phalcon\Http\Response::setFileToSend() can now show the file in the browser instead of offering to download it (#853)
    • Added Phalcon\Http\Response\Headers::toArray() (#1008)
    • getJsonRawBody() may return an associative array (#1241)
    • Added getURI(), getBasicAuth(), getDigestAuth() methods to Phalcon\Http\Request (#1250)
    • Added getPut()/hasPut() methods to Phalcon\Http\Request (#680, #1403)
    • Implemented Phalcon\Http\Request\File::getRealType (#1442, #1444)
    • External URLs are now automatically detected by Phalcon\Http\Response::redirect() (#1182)
    • Fixed error in Phalcon\Http\Response\Headers::send() when no headers were set (#2047)
  • Phalcon\Image:
  • Phalcon\Logger:
    • Added FirePHP Log Adapter and Formatter (#845, #1333, #1483)
    • Implemented Phalcon\Logger\Adapter::isTransaction() (#1238)
    • Fixed a bug preventing the EMERGENCY log type from being displayed correctly (#1498)
    • Added Phalcon\Logger\Adapter\File::getPath() (#1495, #1508)
    • Phalcon\Logger optimizations (#1716)
    • Phalcon\Logger\Adapter::setLogLevel() is honored by transactions (#1716)
    • Phalcon\Logger\Adapter::commit() now clears the queue (#1742)
    • Phalcon\Logger\Adapter now implements Phalcon\Logger\AdapterInterface (#1852)
    • Phalcon\Logger\Formatter now implements Phalcon\Logger\FormatterInterface (#1852)
    • Phalcon\Logger\Adapter and Phalcon\Logger\AdapterInterface are now PSR-3 compliant (#1873, #1888)
    • Added Phalcon\Logger\Adapter::critical() method (#1888)
    • For PHP 5.3.9+ when phalcon.register_psr3_classes php.ini option is set, Phalcon\Logger\Adapter implements Psr\Log\LoggerInterface (#1888)
    • When phalcon.register_psr3_classes php.ini option is set, Phalcon\Logger\Adapter and derived classes throw Psr\Log\InvalidArgumentException instead of Phalcon\Logger\Exception when the arguments are not valid (#1888)
  • Phalcon\Mvc:
    • Added support for route names in Phalcon\Mvc\Micro\Collection (#1868)
    • Phalcon\Mvc\Application::handle() now checks whether the class exists before include()'ing its file (#812, #818)
    • Phalcon\Mvc\Model\Criteria::fromInput() now sets _modelName (#866, #873)
    • Phalcon\Mvc\Model\Query\Builder may now use both integer and string placeholders (#701)
    • Mvc\Model\getMessages() is filterable now (#885)
    • Fixed hasManyToMany relation implementation (#938)
    • Fixed regular expression in \Phalcon\Mvc\Model\Validator\Email (#1243)
    • Phalcon\Mvc\Model::hasOne/hasMany/belongsTo/hasManyToMany/addBehavior() are now public methods (#1166)
    • Added Phalcon\Mvc\Model\Row::toArray() method (#1506)
    • Phalcon\Mvc\Model\Validator::getOption() returns NULL if the option does not exist (#1530)
    • Bug with a custom Events Manager in Phalcon\Mvc\Models (#1314)
    • Phalcon\Mvc\Model\Query\Builder::__construct() does not ignore joins anymore (#1327)
    • Fixed HAVING handling in Phalcon\Mvc\Model\Query\Builder (#1396)
    • Micro Collections return Phalcon\Mvc\Micro\CollectionInterface (#1130)
    • Phalcon\Mvc\Url::get() can append query params (#723, #877)
    • Regular Expression Optimization for Phalcon\Mvc\Router (#977)
    • PHQL: added placeholders support to LIMIT (#1023)
    • Added Phalcon\Mvc\Router::getDefautXXX() methods (#1087)
    • Allow HAVING without GROUP BY in query builder (#1115)
    • mvc/model/query.c optimizations (#1129, #1132)
    • Added support for array(limit, offset) as a 'limit' constructor key in Query Builder (#1208)
    • Added support for 'conditions' in Phalcon\Mvc\Model\Query\Builder::__construct() (#1236)
    • Added Phalcon\Mvc\View::isDisabled(), Phalcon\Mvc\View::getRenderLevel(), Phalcon\Mvc\View::getDisabledLevels() (#907, #1320)
    • Added Phalcon\Mvc\View::getCurrentRenderLevel() (#907, #1326)
    • Bug fix in Phalcon\Mvc\Model\Resultset\Simple::toArray() (#1377)
    • Bug fixes in Volt compiler (#1387)
    • Volt compiler optimizations (#1729)
    • Phalcon\Mvc\Model\Query\Builder optimizations (#1414)
    • Allow to set dirs without trailing slashes in Phalcon\Mvc\View (#406, #1440)
    • Phalcon\Mvc\Model\Validator::getOption() returns null if option does not exists (#1531)
    • Added Phalcon\Mvc\Model::selectWriteConnection() (#1519)
    • Added Phalcon\Mvc\Router\Group::convert()/getConverters() (#1555, #1572)
    • Added Phalcon\Mvc\Router\Route::getGroup() (#1682)
    • Added Phalcon\Mvc\Router\Group::getName() and setName() (#1682)
    • Faster Phalcon\Mvc\Model\Row (#1606)
    • Optimized Phalcon\Mvc\Router\Group (#1682)
    • Bug fix: no arguments were passed to beforeMatch handler in Phalcon\Mvc\Router (#1556)
    • Added diagnostics when a validator returns false but does not call appendMessage() (#1664)
    • Fixed handling of numeric namespaces/modules/controllers/actions (#1688)
    • Added Phalcon\Mvc\View::exists() and Phalcon\Mvc\View(\Simple)::getRegisteredEngines() (#1707)
    • Volt: fixed bug in email_filed() (#1723)
    • Fixed deprecation warnings in Phalcon\Mvc\Collection::save() and Phalcon\Mvc\Collection::delete() (#1783)
    • Phalcon\Mvc\Model\Behavior now implements Phalcon\Mvc\Model\BehaviorInterface (#1852)
    • Phalcon\Mvc\Model\Metadata now implements Phalcon\Mvc\Model\MetadataInterface (#1852)
    • Phalcon\Mvc\Model\Validator now implements Phalcon\Mvc\Model\ValidatorInterface (#1852)
    • Phalcon\Mvc\View\Engine now implements Phalcon\Mvc\View\EngineInterface (#1852)
    • Phalcon\Mvc\Model\Validator::getOption()/getOptions()/isSetOption() methods are now public (#1904)
    • Phalcon\Mvc\Model::findFirst() now works when phqlLiterals is false (#886)
    • Fixed notices when phalcon.orm.column_renaming is 0 (#1801)
    • Implemented reset() for metadata adapters other than memory (#1934)
    • Relaxed the requirement for the route to start with a slash (#1938)
    • Phalcon\Mvc\Router\Group: merge slashes when the route prefix ends and the route pattern starts with a slash (#1938)
    • Phalcon\Mvc\Model\Criteria::fromInput() now works with column maps (#1903)
  • Phalcon\Paginator:
    • Phalcon\Paginator\Adapter\Model returns correct results even when page number is incorrect (#1654)
    • Optimized Phalcon\Paginator\Adapter\QueryBuilder (#1632)
    • setCurrentPage() returns $this for all adapters (#1633)
    • Optimized Phalcon\Paginator\Adapter\NativeArray (#1653)
  • Phalcon\Queue:
    • Fixed bug in Phalcon\Queue\Beanstalk::read() (#1348, #1612)
    • Bug fixes in beanstalkd protocol implementation (#1650)
    • Optimizations (#1621)
    • Added peekDelayed() and peekburied() to Phalcon\Queue\Beanstalk (#1650)
    • Added kick(), bury(), release(), touch() to Phalcon\Queue\Beanstalk\Job (#1650)
  • Phalcon\Registry (#1209, #1935)
  • Phalcon\Security:
    • Phalcon\Security\Exception inherits from Phalcon\Exception, not from \Phalcon\Di\Exception
    • Added Phalcon\Security::computeHmac() (#1347)
    • Bug fixes (#1347)
    • Constant-time string comparison in Phalcon\Security::checkHash() to prevent timing attacks (#1755)
    • Phalcon\Security::checkHash() now correctly handles non-bcrypt hashes (#1912)
    • Support all hashes supported by crypt() in Phalcon\Security::hash() (#1971)
    • Phalcon\Security::getSaltBytes() dies not require OpenSSL anymore (#1971)
  • Phalcon\Session:
    • Fix Phalcon\Session\Bag::remove() (#1637)
    • Add remove() to Phalcon\Session\BagInterface (#1917)
    • Phalcon\Session\Adapter::get() may optionally remove the data from session (#1358)
    • Phalcon\Session\Adapter optimizations (#1624)
    • Phalcon\Session\Adapter::__destruct now calls session_write_close() (#1624)
    • Phalcon\Session\AdapterInterface is compatible with SessionHandlerInterface (#1108)
    • Phalcon\Session\Adapter now implements Phalcon\Session\AdapterInterface (#1852)
    • Phalcon\Session\Bag::__get now returns by reference (unlike get()) (#1895)
    • Phalcon\Session\Bag implements ArrayAccess, Countable, IteratorAggregate interfaces (#1917)
    • Phalcon\Session\Adapter implements ArrayAccess, Countable, IteratorAggregate interfaces (#1917)
    • Optimized Phalcon\Session\Adapter using object handlers (#1917)
  • Phalcon\Tag:
    • Fixed bugs (#903)
    • Fixed radio button generation (#947)
    • Fixed inconsistent behavior of setAutoescape() (#1263)
    • Added missing HTML5 input types (#824, #1323)
    • Added Phalcon\Tag::setTitleSeparator() (#1365)
    • Added support for (#1422)
    • Fixed inconsistency in Tag::stylesheetLink/javascriptInclude w.r.t. local URLs (#1486)
  • Phalcon\Translate:
    • Optimized Phalcon\Translate\Adapter, Phalcon\Translate\Adapter\NativeArray by using object handlers (#1668)
    • Phalcon\Translate\Adapter\NativeArray::query() now replaces placeholders even if the string is not found in the language content (#2044)
  • Phalcon\Validation:
    • Added support for error codes (#1171)
    • Bug fixes (#1399)
    • Optimized Phalcon\Validation\Message\Group by using native iterators (#1657)
    • Optimized Phalcon\Validation\Message\Group by using object handlers (#1765)
    • Phalcon\Validation\Validator now implements Phalcon\Validation\ValidatorInterface (#1852)
  • Psr\Log:
    • when phalcon.register_psr3_classes php.ini option is set, Psr\Log\LoggerAwareInterface, Psr\Log\LoggerInterface, Psr\Log\AbstractLogger, Psr\Log\InvalidArgumentException, Psr\Log\LogLevel, Psr\Log\NullLogger, Psr\Log\LoggerAwareTrait (PHP 5.4+), Psr\Log\LoggerTrait (PHP 5.4+) are registered as internal interfaces/classes/traits by Phalcon (#1888)
  • Unit tests:
  • Documentation bug fixes (#1069, #1070, #1072, #1145, #1146, #1205, #1372, #1397, #1521, #1523, #1586, lots of them)
  • Refactored, improved and optimized build script (#1218)
  • Other bug fixes (#1051, #1131, #1040, #1275, #1392, #1396, #1399, #1425, #1426...)

1.2.6 (2014-01-26)

  • Phalcon\Security::checkHash() now correctly handles non-bcrypt hashes (#1912)

1.2.5 (2014-01-13)

  • Phalcon\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)

1.2.4 (2013-10-23)

  • 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)

1.2.3 (2013-08-16)

1.2.2 (2013-08-06)

  • 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)

1.2.1 (2013-07-25)

  • 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)

1.2.0 (2013-07-10)

  • 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 rewritten 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

1.1.0 (2013-05-08)

  • 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

1.0.1 (2013-04-08)

  • 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

1.0.0 (2013-03-22)

  • 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

1.0.0b1

  • 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
  • Support 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