Skip to content

Releases: phalcon/cphalcon

Version 3.0.2

26 Nov 21:48
Compare
Choose a tag to compare
  • Fixed saving snapshot data while caching model #12170, #12000
  • Fixed Phalcon\Http\Response\Headers::send to send correct status header #12179
  • Fixed Phalcon\Mvc\Model::setSnapshotData, Phalcon\Mvc\Model\Resultset\Simple::toArray by fixing an issue like fetch a, a[key] using Zephir #11205, #12147
  • Fixed Phalcon\Cache\Backend\Memcache::flush to remove all query keys after flush memcached #12182
  • Fixed Phalcon\Cache\Backend\Memory::delete to correct remove items from Phalcon\Cache\Backend\Memory::$_data
  • Fixed Phalcon\Cache\Frontend\Data::afterRetrieve, Phalcon\Cache\Frontend\Igbinary::afterRetrieve, Phalcon\Cache\Frontend\Msgpack::afterRetrieve to unserialize only raw data #12186
  • Fixed Phalcon\Mvc\Model::cloneResultMapHydrate to correct create array/objects from data by column map with types #12191
  • Fixed Phalcon\Validation\Validator\Confirmation::validate to use fieldWith instead of field when looking up the value for labelWith.
  • Fixed Phalcon\Cache\Backend\Redis::_connect to use select redis internal function only when the index is greater than zero.
  • Fixed Phalcon\Config\Adapter\Ini::_cast to allow create extended config adapters #12230.
  • Fixed Phalcon\Tag::appendTitle, Phalcon\Tag::prependTitle to stack title prepending and appending #12233.
  • Fixed Phalcon\Debug::getVersion to provide valid link to the latest Phalcon major version #12215
  • Fixed Phalcon\Session\Adapter\Libmemcached::read, Phalcon\Session\Adapter\Libmemcached::destroy, Phalcon\Session\Adapter\Memcache::read, Phalcon\Session\Adapter\Memcache::destroy, Phalcon\Session\Adapter\Redis::read and Phalcon\Session\Adapter\Redis::destroy in accordance with the session_set_save_handler API #12206
  • Fixed Phalcon\Validation::getValue() to use filters when having entity
  • Fixed Phalcon\Db\Dialect\Mysql::describeReferences() and Phalcon\Db\Dialect\Postgresql::describeReferences() to return proper sql
  • Fixed Phalcon\Db\Column::hasDefault to return false for autoincrement columns phalcon/phalcon-devtools#853
  • Fixed Phalcon\Db\Dialect\Postgresql::createTable, Phalcon\Db\Dialect\Postgresql::addColumn, Phalcon\Db\Dialect\Postgresql::modifyColumn to correct escape default values #12267, phalcon/phalcon-devtools#859
  • Fixed Phalcon\Forms\Form::bind to clean form elements #11978, #12165, #12099, #10044
  • Fixed Phalcon\Tag::resetInput for proper use without attempts to clear $_POST #12099
  • Fixed Phalcon\Db\Dialect\Mysql and Phalcon\Db\Dialect\Postresql to correctly check schema in missing methods
  • Fixed Phalcon\Cache\Backend\Apc::flush to remove only it's own keys by prefix #12153
  • Fixed Phalcon\Acl\Adapter\Memory::isAllowed to call closures when using wildcard #12333
  • Fixed Phalcon\Validation\Validator\File array to string conversion in minResolution and maxResolution #12349
  • Fixed Phalcon\Cache\Backend\File::queryKeys() to compare the filename against parsed prefix
  • Database identifiers are now properly escaped #12410

Version 3.0.1

24 Aug 07:41
Compare
Choose a tag to compare
  • Fixed Phalcon\Cache\Backend\Redis::flush in order to flush cache correctly
  • Fixed Phalcon\Mvc\Model\Manager::getRelationRecords to correct using multi relation column #12035
  • Fixed Phalcon\Acl\Resource. Now it implements Phalcon\Acl\ResourceInterface #11959
  • Fixed save method for all cache backends. Now it updates the _lastKey property correctly #12050
  • Fixed virtual foreign key check when having multiple keys #12071
  • Phalcon\Config\Adapter\Ini constructor can now specify parse_ini_file() scanner mode #12079
  • Fixed Phalcon\Cache\Backend\Apc::save due to which the Apc::increment/Apc::decrement could not be used properly #12109
  • Fixed Phalcon\Mvc\Model\Criteria::inWhere so that now the second parameter can be an empty array #10676
  • Fixed ORM related memory leak #12115, #11995, #12116
  • Fixed incorrect Phalcon\Mvc\View::getActiveRenderPath behavior #12139
  • Fixed Phalcon\Security\Random::base64Safe so that now the method returns correct safe string #12141
  • Fixed the Phalcon\Translate\Adapter\Gettext::getOptionsDefault visibility #12157
  • Enabled PHQL cache for PHP7 to improve performance and reuse plannings

Version 3.0.0

29 Jul 19:26
Compare
Choose a tag to compare
  • PHP 5.3 and 5.4 are now fully deprecated
  • Phalcon\Mvc\Model\Validation is now deprecated in favor of Phalcon\Validation
  • Changed default hash algorithm in Phalcon\Security to CRYPT_BLOWFISH_Y
  • Changed constructor of Phalcon\Mvc\Model to allow pass an array of initialization data
  • Removed support for prefixes strategy in Phalcon\Loader
  • Now Phalcon\Mvc\View supports many views directories at the same time
  • An absolute path can now be used to Mvc\View::setLayoutsDir
  • Fixed odd view behavior#1933 related to setLayout() and pick()
  • Phalcon\Di is now bound to services closures allowing use Phalcon\Di as $this to access services within them
  • If an object is returned after firing the event beforeServiceResolve in Phalcon\Di this overrides the
    default service localization process
  • Placeholders :controller and :action in Mvc\Router now defaults to /([\\w0-9\\_\\-]+) instead of /([\\a-zA-Z0-9\\_\\-]+)
  • Modifier #u (PCRE_UTF8) is now default in regex based routes in Mvc\Router
  • Return 'false' from an action disables the view component (same as $this->view->disable())
  • Return a string from an action takes it as the body of the response (same as return $this->response->setContent('Hello world'))
  • Return a string from an Mvc\Micro handler takes it as the body of the response
  • Mvc\Router\Route now escapes characters such as . or + to avoid unexpected behaviors
  • Closures used as handlers inMvc\Micro are now bound to the $app instance
  • Routes now can have an associated callback that can override the default dispatcher + view behavior
  • Phalcon\Mvc\Model now implements JsonSerializable making easy serialize model instances
  • When destructing a Mvc\Model\Manager PHQL cache is clean
  • Method isSetOption in Phalcon\Validation\ValidatorInterface marked as deprecated, please use hasOption
  • Added internal check "allowEmpty" before calling a validator. If it option is true and the value of empty, the validator is skipped
  • Added default header: Content-Type: "application/json; charset=UTF-8" in method Phalcon\Http\Response::setJsonContent
  • Now Phalcon\Events\Event implements Phalcon\Events\EventInterface
  • Phalcon\Events\Event::getCancelable renamed to Phalcon\Events\Event::isCancelable
  • Removed Phalcon\Events\Manager::dettachAll in favor of Phalcon\Events\Manager::detachAll
  • Phalcon\Mvc\Model\Criteria::getOrder renamed to Phalcon\Mvc\Model\Criteria::getOrderBy
  • Added method getOption() in Phalcon\Mvc\Model\RelationInterface
  • Added ability to spoof HTTP request method
  • Added FULLTEXT index type to Phalcon\Db\Adapter\Pdo\Mysql
  • Fixed the use of the annotation router with namespaced controllers
  • Added Phalcon\Acl\RoleAware and Phalcon\Acl\ResourceAware Interfaces, Now you can pass objects to Phalcon\Acl\AdapterInterface::isAllowed as roleName and resourceName, also they will be automatically passed to function defined in Phalcon\Acl\AdapterInterface::allow or Phalcon\Acl\AdapterInterface::deny by type
  • Phalcon\Acl\AdapterInterface::allow and Phalcon\Acl\AdapterInterface::deny have 4th argument - function, which will be called when using Phalcon\Acl\AdapterInterface::isAllowed
  • Phalcon\Acl\AdapterInterface::isAllowed have 4th argument - parameters, you can pass arguments for function defined in Phalcon\Acl\AdapterInterface:allow or Phalcon\Acl\AdapterInterface::deny as associative array where key is argument name
  • Added method getActionSuffix() in Phalcon\DispatcherInterface
  • CLI parameters are now handled consistently.
  • Added Phalcon\Mvc\Controller\BindModelInterface and associated model type hint loading through dispatcher.
  • Added Phalcon\Dispatcher::hasParam().
  • Phalcon\Cli\Console and Phalcon\Mvc\Application now inherit Phalcon\Application.
  • Fixed afterFetch event not being sent to behaviors
  • Fixed issue with radio not being checked when default value is 0 #11358
  • Fixed issue with Model::__set that was bypassing setters #11286
  • Fixed issue with Model::__set that was setting hidden attributes directly when setters are not declared #11286
  • Added Phalcon\Cli\DispatcherInterface, Phalcon\Cli\TaskInterface, Phalcon\Cli\RouterInterface and Phalcon\Cli\Router\RouteInterface.
  • Added Phalcon\Mvc\Collection::update, Phalcon\Mvc\Collection::create and Phalcon\Mvc\Collection::createIfNotExist
  • Removed __construct from all interfaces #11410
  • Fires the dispatch:beforeException event when there is any exception during dispatching #11458
  • Added OR operator for Phalcon\Mvc\Model\Query\Builder methods: betweenWhere, notBetweenWhere, inWhere and notInWhere
  • Fixed bug of destroy method of Phalcon\Session\Adapter\Libmemcached
  • Added Phalcon\Cache\Backend\Memcache::addServers to enable pool of servers for memcache
  • Added setLastModified method to Phalcon\Http\Response
  • Added Phalcon\Validation\Validator\Date
  • Added \Phalcon\Queue\Beanstalk::ignore() It removes the named tube from the watch list for the current connection.
  • Added \Phalcon\Queue\Beanstalk::pauseTube() Can delay any new job being reserved for a given time.
  • Added \Phalcon\Queue\Beanstalk::kick() It moves jobs into the ready queue. If there are any buried jobs, it will only kick buried jobs. Otherwise it will kick delayed jobs.
  • Added \Phalcon\Queue\Beanstalk::listTubeUsed() Returns the tube currently being used by the client.
  • Added \Phalcon\Queue\Beanstalk::listTubesWatched() Returns a list tubes currently being watched by the client.
  • Added \Phalcon\Queue\Beanstalk::peekDelayed() Return the delayed job with the shortest delay left.
  • Added \Phalcon\Queue\Beanstalk::jobPeek() Return job.
  • Mcrypt is replaced with openssl in Phalcon\Crypt
  • Default encrypt algorithm in Phalcon\Crypt is now changed to AES-256-CFB
  • Removed methods setMode(), getMode(), getAvailableModes() in Phalcon\CryptInterface
  • Added Phalcon\Assets\Manager::exists() to check if collection exists
  • Phalcon\Mvc\Model\Manager::load() now can load models from aliased namespaces
  • Phalcon\Mvc\Model\Transaction\Manager now correctly keeps account of transactions #11554
  • Phalcon\Db\Dialect\Sqlite now maps additional column types to SQLite columns equivalents.
  • Phalcon\Security is using now Phalcon\Security\Random
  • Enforced that Phalcon\Security::getToken() and Phalcon\Security::getTokenKey() return a random value per request not per call
  • Phalcon\Security::getToken() and Phalcon\Security::getTokenKey() are using now Phalcon\Security::_numberBytes instead of passed as a argument or hardcoded value
  • Phalcon\Security::hash() corrected not working CRYPT_STD_DES, CRYPT_EXT_DES, MD5, CRYPT_SHA256
  • Phalcon\Security::hash() CRYPT_SHA512 fixed wrong salt length
  • Added missing unit-tests for Phalcon\Security
  • Fixed Filter::add method handler #11581
  • Removed Phalcon\Session #11340
  • Phalcon\Tag::getTitle() shows a title depending on prependTitle and appendTitle
  • Using a settable variable for the Mongo Connection Service name instead of a hard coded string #11725
  • Added new getter Phalcon\Mvc\Model\Query\Builder::getJoins() - to get join parts from query builder
  • Fixed Phalcon\Db\Dialect\Oracle::prepareTable() to correctly generate SQL for table aliases #11799
  • Fixed Phalcon\Mvc\Model\Resultset::update() - removed endless loop queries
  • The cache backend adapters now returns boolean on call Phalcon\Cache\BackendInterface::save
  • Fixed the Session write callback #11733
  • Added '\Phalcon\Loader::registerFiles' & '\Phalcon\Loader::getFiles'. This allows you to add files to the autoloader
  • Added Phalcon\Security::hasLibreSsl and Phalcon\Security::getSslVersionNumber
  • Added new setter Phalcon\Escaper::setDoubleEncode() - to allow setting/disabling double encoding
  • Added Phalcon\Cache\Frontend\Msgpack - Added Msgpack Support for Frontend Cache
  • Phalcon\Debug\Dump skip debugging di, fix detecting private/protected properties
  • Added option to validate multiple fields with one validator(fix uniqueness validator as well), also removes unnecessary model => $this in Phalcon\Validation\Validator\Uniqueness.
  • Phalcon\Validation\Validator\Alpha now correctly validates non-ASCII characters #11386
  • Phalcon\Validation\Validator\Digit now correctly validates digits #11374
  • Added Phalcon\Validation\CombinedFieldsValidator, validation will pass array of fields to this validator if needed
  • Added ability to autoescape Flash messages #11448
  • Fixed Phalcon\Config::merge for working with php7
  • Added ability to use custom delimiter for Phalcon\Text::camelize and Phalcon\Text::uncamelize #10396
  • Added support of CONNECT, TRACE and PURGE HTTP methods
  • Refactored Phalcon\Http\Request::getHttpHost. Now it always return host name or empty string. Optionally validates and clean host name #2573
  • Added Phalcon\Http\Request::getPort. To get information about the port on which the request is made.
  • Added Phalcon\Http\Request::setStrictHostCheck and `Phal...
Read more

Version 2.0.13 stable

19 May 18:10
Compare
Choose a tag to compare
  • Restored Phalcon\Text::camelize behavior #11767
  • Used Zephir v0.9.2

Version 2.0.12 stable

17 May 06:15
Compare
Choose a tag to compare
  • Fixed regression changes for Phalcon\Mvc\View\Engine\Volt::callMacro #11745
  • Fixed the argument type of Phalcon\Flash::success #11764
  • Restored Phalcon\Text::camelize behavior #11767

Version 2.0.11 stable

04 May 19:50
Compare
Choose a tag to compare
  • Fix Model magic set functionality to maintain variable visibility and utilize setter methods.#11286
  • Added a prepareSave event to model saving
  • Added support for OnUpdate and OnDelete foreign key events to the MySQL adapter
  • Added ability to setLogLevel on multiple logs #10429
  • Fixed regression changes for Phalcon\Translate\Adapter\Gettext::prepareOptions #11429
  • Fixed Phalcon\Mvc\View\Engine\Volt::callMacro bug. Now it's correctly calling call_user_func_array instead of call_user_func
  • Fixed undefined method call Phalcon\Mvc\Collection\Manager::getConnectionService. Now Phalcon\Mvc\Collection::getConnectionService works correctly in according to documentation

Version 2.0.10 stable

05 Feb 14:40
Compare
Choose a tag to compare
  • ORM: Added support for DATE columns in Oracle
  • Fixed wrong total_items and total_pages in Paginator when the query builder has set groupBy()
  • Fixed Phalcon\Acl\Memory::allow bug#11210 related to the inconsistent behavior with access specified as string and array
  • Added quoting column in Phalcon\Db\Dialect\MySQL::addColumn when define position of the column
  • Added support to define position of the column in Phalcon\Db\Dialect\MySQL::modifyColumn
  • Fixed Phalcon\Mvc\Model\Query\Builder bug#11298 related to resetting limit to null
  • Fixed Phalcon\Tag::getTitle bug#11185. Now a title will be automatically escaped.
  • Fixed Phalcon\Translate\Adapter\Gettext::exists bug#11310 related to the wrong returned value (always true)
  • Fixed Phalcon\Translate\Adapter\Gettext::setLocale bug#11311 related to the incorrect setting locale
  • Added ability to persistent connection in Phalcon\Queue\Beanstalk::connect
  • Fixed Phalcon\Http\Response::redirect bug#11324. Incorrect initialization local array of status codes
  • Fixed cache backends bug#11322 related to saving number 0
  • Fixed Phalcon\Db\Dialect::escape bug#11359. Added ability to use the database name with dots.

Version 2.0.9 stable

25 Nov 13:54
Compare
Choose a tag to compare
  • Improved overall support of SQL for migrations
  • Fixed bug that double serializes data using Redis adapter
  • Added console:boot event to allow the developer to perform initialization actions
  • Added implementation options allowEmpty for Phalcon\Mvc\Model\Validator\Ip
  • Fixed SQLite bug[#10997] related to setting of index type
  • Added Phalcon\Db\Dialect\Sqlite::listIndexesSql - to generate the SQL to get query list of indexes
  • Fixed MySQL bug[#11036] related to setting of index type
  • Added missed RouteInterface::setHostname, RouteInterface::getHostname
  • Added strict option for ExclusionIn validator
  • Added Phalcon\Text::underscore - to make a phrase underscored instead of spaced
  • Added Phalcon\Text::humanize - to make an underscored or dashed phrase human-readable
  • Added ability to change document class to be returned in ODM through class option

Version 2.0.8 Stable

25 Sep 21:10
Compare
Choose a tag to compare
  • Added Phalcon\Security\Random::base58 - to generate a random base58 string
  • Added Phalcon\Logger\Adapter::isTransaction() to check whether the logger is currently in transaction
    mode or not (Phalcon 1.3 behavior)
  • Phalcon\Session\Adapter now closes the session when the adapter is destroyed (Phalcon 1.3 behavior)
  • Fixed fetching of data in modes FETCH_CLASS, FETCH_INTO and FETCH_FUNC in Phalcon\Db
  • Added missing code property in Phalcon\Validation\Message available in Phalcon 1.3.x
  • Added Phalcon\Db\Column::TYPE_TIMESTAMP to allow migrations on these kind of columns
  • Added Phalcon\Db\ColumnInterface::hasDefault to check if a column has a default value declared in its database
    column definition
  • Fixed determining of default value for column in Phalcon\Db\Dialect\MySQL, Phalcon\Db\Dialect\Sqlite and
    Phalcon\Db\Dialect\Postgresql classes
  • Now Phalcon\Mvc\Model::__call invokes finders as in __callStatic
  • Fixed Phalcon\Db\Dialect\Postgresql::getColumnDefinition for BIGINT and BOOLEAN data types
  • Fixed BOOLEAN default value in Phalcon\Db\Dialect\Postgresql
  • Added Phalcon\Validation\Validator\CreditCard - validation credit card number using luhn algorithm

Version 2.0.7 Stable

17 Aug 18:57
Compare
Choose a tag to compare
  • Image\Adapter\Gd::save() no longer fails if the method or the instance is created with a filename without an extension
  • Fixed segfault and implementation of Image\Adapter\Imagick::text()
  • Exceptions thrown in Volt compiler are now Phalcon\Mvc\View\Engine\Exception
  • Now you can import macros from other files using {% include "file.volt" %}
  • Undefined function calls fall back to macro calls in Volt templates
  • Automatic bound parameters in Mvc\Model\Criteria now uses a different prefix
    than Mvc\Model\Query\Builder to avoid collisions
  • Added Cache\Multiple::flush() to flush the cache backends added to the multiple system
  • Fixed Session\Bag::remove()
  • Session\Bag::destroy() eliminates any temporary data in the variables bag
  • afterCreate/afterUpdate are only called if saving related records was successful
  • Added an optional parameter removeData to Session\Adapter::remove() to remove any data in $_SESSION that belongs to the uniqueId or the whole session data
  • Now session variables making use of unique prefixes use # as internal separator
  • Added parameter that changes the default operator for conditions in method Mvc\Model\Criteria::fromImput() #10749
  • Added \Phalcon\Queue\Beanstalk::listTubes() to get list of a tubes
  • Added a fix to avoid that a table present in many sub-queries causes invalid SQL generation
  • Add CookieInterface, update Cookie and Cookies to use this interface - Decoupling Cookies and Cookie - Check Session state before using it in Cookie. #10789
  • Fixed merge of two Phalcon\Config instances that contains object values different than Phalcon\Config compatible instances
  • When creating tables in Postgres, inline PRIMARY keys are now escaped properly#10797
  • Fixed incorrect generation of SELECT COUNT(*) causing unexpected exceptions when phqlLiterals is disabled
  • Added Phalcon\Security\Random - secure random number generator class. Provides secure random number generator which is suitable for generating session key in HTTP cookies, etc