Releases: phalcon/cphalcon
Releases · phalcon/cphalcon
Version 3.0.2
- 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 likefetch 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 fromPhalcon\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 usefieldWith
instead offield
when looking up the value for labelWith. - Fixed
Phalcon\Cache\Backend\Redis::_connect
to useselect
redis internal function only when theindex
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
andPhalcon\Session\Adapter\Redis::destroy
in accordance with thesession_set_save_handler
API #12206 - Fixed
Phalcon\Validation::getValue()
to use filters when having entity - Fixed
Phalcon\Db\Dialect\Mysql::describeReferences()
andPhalcon\Db\Dialect\Postgresql::describeReferences()
to return proper sql - Fixed
Phalcon\Db\Column::hasDefault
to returnfalse
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
andPhalcon\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 inminResolution
andmaxResolution
#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
- 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 implementsPhalcon\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 specifyparse_ini_file()
scanner mode #12079- Fixed
Phalcon\Cache\Backend\Apc::save
due to which theApc::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
- PHP 5.3 and 5.4 are now fully deprecated
Phalcon\Mvc\Model\Validation
is now deprecated in favor ofPhalcon\Validation
- Changed default hash algorithm in
Phalcon\Security
toCRYPT_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 usePhalcon\Di
as $this to access services within them- If an object is returned after firing the event
beforeServiceResolve
inPhalcon\Di
this overrides the
default service localization process - Placeholders
:controller
and:action
inMvc\Router
now defaults to/([\\w0-9\\_\\-]+)
instead of/([\\a-zA-Z0-9\\_\\-]+)
- Modifier
#u
(PCRE_UTF8) is now default in regex based routes inMvc\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 in
Mvc\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 implementsJsonSerializable
making easy serialize model instances- When destructing a
Mvc\Model\Manager
PHQL cache is clean - Method
isSetOption
inPhalcon\Validation\ValidatorInterface
marked as deprecated, please usehasOption
- 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 methodPhalcon\Http\Response::setJsonContent
- Now
Phalcon\Events\Event
implementsPhalcon\Events\EventInterface
Phalcon\Events\Event::getCancelable
renamed toPhalcon\Events\Event::isCancelable
- Removed
Phalcon\Events\Manager::dettachAll
in favor ofPhalcon\Events\Manager::detachAll
Phalcon\Mvc\Model\Criteria::getOrder
renamed toPhalcon\Mvc\Model\Criteria::getOrderBy
- Added method
getOption()
inPhalcon\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
andPhalcon\Acl\ResourceAware
Interfaces, Now you can pass objects toPhalcon\Acl\AdapterInterface::isAllowed
asroleName
andresourceName
, also they will be automatically passed to function defined inPhalcon\Acl\AdapterInterface::allow
orPhalcon\Acl\AdapterInterface::deny
by type Phalcon\Acl\AdapterInterface::allow
andPhalcon\Acl\AdapterInterface::deny
have 4th argument - function, which will be called when usingPhalcon\Acl\AdapterInterface::isAllowed
Phalcon\Acl\AdapterInterface::isAllowed
have 4th argument - parameters, you can pass arguments for function defined inPhalcon\Acl\AdapterInterface:allow
orPhalcon\Acl\AdapterInterface::deny
as associative array where key is argument name- Added method
getActionSuffix()
inPhalcon\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
andPhalcon\Mvc\Application
now inheritPhalcon\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
andPhalcon\Cli\Router\RouteInterface
. - Added
Phalcon\Mvc\Collection::update
,Phalcon\Mvc\Collection::create
andPhalcon\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 forPhalcon\Mvc\Model\Query\Builder
methods:betweenWhere
,notBetweenWhere
,inWhere
andnotInWhere
- Fixed bug of
destroy
method ofPhalcon\Session\Adapter\Libmemcached
- Added
Phalcon\Cache\Backend\Memcache::addServers
to enable pool of servers for memcache - Added
setLastModified
method toPhalcon\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 toAES-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 namespacesPhalcon\Mvc\Model\Transaction\Manager
now correctly keeps account of transactions #11554Phalcon\Db\Dialect\Sqlite
now maps additional column types to SQLite columns equivalents.Phalcon\Security
is using nowPhalcon\Security\Random
- Enforced that
Phalcon\Security::getToken()
andPhalcon\Security::getTokenKey()
return a random value per request not per call Phalcon\Security::getToken()
andPhalcon\Security::getTokenKey()
are using nowPhalcon\Security::_numberBytes
instead of passed as a argument or hardcoded valuePhalcon\Security::hash()
corrected not working CRYPT_STD_DES, CRYPT_EXT_DES, MD5, CRYPT_SHA256Phalcon\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
andPhalcon\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
inPhalcon\Validation\Validator\Uniqueness
. Phalcon\Validation\Validator\Alpha
now correctly validates non-ASCII characters #11386Phalcon\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
andPhalcon\Text::uncamelize
#10396 - Added support of
CONNECT
,TRACE
andPURGE
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...
Version 2.0.13 stable
- Restored
Phalcon\Text::camelize
behavior #11767 - Used Zephir v0.9.2
Version 2.0.12 stable
Version 2.0.11 stable
- 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 callingcall_user_func_array
instead ofcall_user_func
- Fixed undefined method call
Phalcon\Mvc\Collection\Manager::getConnectionService
. NowPhalcon\Mvc\Collection::getConnectionService
works correctly in according to documentation
Version 2.0.10 stable
- ORM: Added support for DATE columns in Oracle
- Fixed wrong
total_items
andtotal_pages
inPaginator
when the query builder has setgroupBy()
- 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
- 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
- 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
forBIGINT
andBOOLEAN
data types - Fixed
BOOLEAN
default value inPhalcon\Db\Dialect\Postgresql
- Added
Phalcon\Validation\Validator\CreditCard
- validation credit card number using luhn algorithm
Version 2.0.7 Stable
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
thanMvc\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 bagafterCreate
/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
, updateCookie
andCookies
to use this interface - DecouplingCookies
andCookie
- CheckSession
state before using it inCookie
. #10789 - Fixed merge of two
Phalcon\Config
instances that contains object values different thanPhalcon\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 whenphqlLiterals
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