4.0.6 (2020-05-16)
- Changed
Volt::convertEncoding
to no longer usingiconv
for a fallback since it causes issues with macOS #14912 - Changed schema manipulation in
Phalcon\Db\Dialect\Mysql
- unquote numerical defaults #14888, #14974 - Changed the default ACL access level from boolean
FALSE
toEnum::DENY
#14974 - Changed the way
Phalcon\Http\Response::__construct
checkscontent
data type. Now aTypeError
will be thrown if incompatible data type was passed #14983 - Changed return type hints of the following
Phalcon\Flash\FlashInterface
's methods:error
,message
,notice
,success
andwarning
#14994 - Changed return type hint for
Phalcon\Mvc\ModelInterface::sum
#15000 - Changed return type for
Phalcon\Mvc\Model\Criteria::getLimit
so that integer, NULL or array will be returned #15004 - Changed return type hint for
Phalcon\Mvc\Model\Manager::getCustomEventsManager
to return NULL instead of boolean FALSE if there is no special events manager #15008 - Changed
Phalcon\Mvc\Model\MetaData::getDI
so that now it will throw aPhalcon\Mvc\Model\Exception
if there is noDiInterface
instance #15011 - Changed
Phalcon\Http\Request::getJsonRawBody
to usejson_decode
instead ofPhalcon\Json::decode
#14936 - Changed
Phalcon\Factory\AbstractFactory
to exposegetService
which will throw an exception if it does not exist. RemovedcheckService
and adjusted all references innewInstance()
calls. #15038 - Changed the visibility of methods and properties in
Phalcon\Http\Message\Response
,Phalcon\Http\Message\ServerRequest
andPhalcon\Http\Message\Uri
to work withclone
. #15040
- Fixed
Phalcon\Mvc\Model\Query\Builder::getPhql
to add single quote between string value on a simple condition #14874 - Fixed recognizing language operators inside Volt's echo mode (
{{ ... }}
) #14476 - Fixed
Tag::friendlyTitle
to correctly convert titles under MacOS and Windows #14866 - Fixed the Volt compiler to no longer parse
cache
fragments and thus searching for theviewCache
service (deprecated for v4) #14907 - Fixed
IN
operator precedence in Volt #14816 - Fixed testing suite to work with PHPUnit 9 when we upgrade #14837
- Fixed return type hints of the following
Phalcon\Acl\AbstractAdapter
's methods:getActiveAccess
,getActiveRole
andgetActiveComponent
#14974 - Fixed default value of the following
Phalcon\Annotations\Annotation
's properties:$arguments
and$exprArguments
#14977 - Fixed return type hints of the following
Phalcon\Annotations\Annotation
's methods:getArgument
,getName
andgetNamedArgument
#14977 - Fixed incorrect return type hint for
Phalcon\Http\Response\Cookies::setSignKey
#14982 - Fixed return type hints for
Phalcon\Config\ConfigFactory::load
andPhalcon\Config\ConfigFactory::newInstance
to explicitly indicate the return type asPhalcon\Config
instance #14978 - Fixed return type hints for the following methods #14987:
Phalcon\Dispatcher\AbstractDispatcher::dispatch
Phalcon\Dispatcher\DispatcherInterface::dispatch
Phalcon\Filter::get
Phalcon\Http\Message\AbstractCommon::cloneInstance
Phalcon\Http\Message\AbstractCommon::processWith
Phalcon\Http\Message\AbstractMessage::withAddedHeader
Phalcon\Http\Message\AbstractMessage::withBody
Phalcon\Http\Message\AbstractMessage::withHeader
Phalcon\Http\Message\AbstractMessage::withProtocolVersion
Phalcon\Http\Message\AbstractMessage::withoutHeader
Phalcon\Http\Message\AbstractRequest::withMethod
Phalcon\Http\Message\AbstractRequest::withRequestTarget
Phalcon\Http\Message\AbstractRequest::withUri
Phalcon\Mvc\Model\Binder::findBoundModel
Phalcon\Validation::getEntity
Phalcon\Validation\ValidationInterface::getEntity
- Fixed default value of
Phalcon\Crypt::$key
to satisfy the interface #14989 - Fixed return type hint for
Phalcon\Di::getInternalEventsManager
#14992 - Fixed return type hints of the following
Phalcon\Flash\AbstractFlash
's methods:error
,notice
,success
andwarning
#14994 - Fixed return type hint for
Phalcon\Translate\InterpolatorFactory::newInstance
#14996 - Fixed return type hint for
Phalcon\Mvc\Model::sum
#15000 - Fixed return type hint for
Phalcon\Mvc\Model\CriteriaInterface::getLimit
andPhalcon\Mvc\Model\Criteria::getLimit
to follow documentation and original purpose #15004 - Fixed return type hint for
Phalcon\Mvc\Model::count
andPhalcon\Mvc\ModelInterface::count
to reflect original behavior #15006 - Fixed return type hint for
Phalcon\Mvc\Model::getEventsManager
to reflect original behavior #15008 - Fixed return type hint for
Phalcon\Mvc\Model::average
andPhalcon\Mvc\ModelInterface::average
to reflect original behavior #15013 - Fixed return type hint for
Phalcon\Mvc\Model\MetaData::getColumnMap
andPhalcon\Mvc\Model\MetaData::getReverseColumnMap
to reflect original behavior #15015 - Fixed return type hint for
Phalcon\Mvc\Model\MetaDataInterface::getColumnMap
andPhalcon\Mvc\Model\MetaDataInterface::getReverseColumnMap
to reflect original behavior #15015 - Fixed return type hint for
Phalcon\Mvc\Model\CriteriaInterface::getColumns
andPhalcon\Mvc\Model\Criteria::getColumns
to reflect original behavior #15017 - Fixed return type hint for
Phalcon\Db\Column::getSize
andPhalcon\Db\ColumnInterface::getSize
to reflect original behavior #15019 - Fixed return type hint for
Phalcon\Db\Column::getAfterPosition
andPhalcon\Db\ColumnInterface::getAfterPosition
to reflect original behavior #15021 - Fixed return type hint for
Phalcon\Mvc\Model\Manager::executeQuery
andPhalcon\Mvc\Model\Manager::ManagerInterface
to reflect original behavior #15024 - Fixed return type hint for
Phalcon\Mvc\Model\Resultset::getFirst
andPhalcon\Mvc\Model\ResultsetInterface::getFirst
to reflect original behavior #15027 - Rollback the regression changes for
Phalcon\Mvc\Model\Query::_prepareSelect
to properly prepare a SQLSELECT
statement from a PHQL one #14657 - Fixed
SerializerInterface
usage forPhalcon\Mvc\Model\Resultset\Complex::unserialize
as well asPhalcon\Mvc\Model\Resultset\Complex::unserialize
#14942
- Removed
Phalcon\Translate\InterpolatorFactory::$mapper
as well asPhalcon\Translate\InterpolatorFactory::$services
in favor ofPhalcon\Factory\AbstractFactory
ones #15036
4.0.5 (2020-03-07)
- Fixed
Phalcon\Db::fetchAll
to correctly return data whenEnum::FETCH_COLUMN
is supplied #13321 - Fixed Postgres NULL values to not be required during model update. #14862
- Fixed altering columns for MySQL when default value contains not only
CURRENT_TIMESTAMP
#14880 - Fixed MySQL default value with ON UPDATE expression #14887
- Fixed
Str::dirFromFile()
to replace.
with-
to avoid issues with Windows environments #14858
4.0.4 (2020-02-15)
- Added a way to utilize GitHub actions to run database tests against each RDBMS and reworked the testing suite. #14779
- Added the latest version of Codeception (v4) and utilized the phalcon4 module. #14779
- Changed Column 'notNull' definition to make possible create nullable (NULL) columns #14804
- Fixed
Phalcon\Db\Adapter\Pdo\Postgresql
to correctly identifybool
fields instead of treating them astinyint
#14722 @tidytrax - Fixed
Phalcon\Cli\Console
to pass current container to thePhalcon\Mvc\ModuleDefinitionInterface::registerAutoloaders()
#14787 @TimurFlush - Fixed
Phalcon\Db\Dialect\Mysql::createTable()
to create default value with CURRENT_TIMESTAMP ON UPDATE/DELETE [#14797] - Fixed
Phalcon\Storage\Adapter\*
to no longer accept theserializer
option as it was clashing with the factory #14828 - Fixed
Phalcon\Http\Request
to return the correct host on anUnexpectedValueException
#14763 - Fixed
Phalcon\Assets\Collection
to initializeposition
to 0 #14848
4.0.3 (2020-01-25)
- Fixed
Phalcon\Db\Adapter\Pdo\Mysql
Tinyint(1) is handled as boolean under MySql #14708 - Fixed
Phalcon\Mvc\View\Engine\Volt
to produce the correct order of variables for thejoin
filter #14771 - Fixed
Phalcon\Storage\Adapter\Stream::getKeys()
bug in the absence of a directory with a prefix name #14725, #14721 - Fixed
Phalcon\Debug::onUncaughtException
Should accept\Throwable
instead of\Exception
as an argument #14738 - Fixed
Phalcon\Validation\ValidatorFactory
Should return Phalcon\Validation\ValidatorInterface 14749 - Fixed
Phalcon\Mvc\Model\Binder
to now correctly callhas
andset
on the cache object #14743 - Fixed
Phalcon\Session\Adapter\Stream
andPhalcon\Storage\Adapter\Stream
to correctly handle simultaneous read/write #14694 - Fixed
Phalcon\Config\ConfigFactory
to always add the correct extension #14756
4.0.2 (2020-01-12)
- Fixed Phalcon version number incorrectly set in the previous release
4.0.1 (2020-01-11)
- Changed the logic when logging times for
Phalcon\Logger
to useDateTimeImmutable
so as to handle microseconds if necessary. #2893 - Changed
Phalcon\Http\Cookie::send
andPhalcon\Http\Cookie::delete
to allow forsamesite
to be passed in theoptions
when using PHP > 7.3 #14627
- Fixed
Phalcon\Mvc\Model\Criteria
Di isn't set when usingCriteria::fromInput()
#14538 - Fixed
Phalcon\Db\Dialect\Mysql
removing unnecessary parentheses fordouble
andfloat
#14645 @pfz - Fixed
Phalcon\Http\Cookie::delete
to parse the correct parameters - cannot use alternative syntax until PHP 7.3 #14643 - Fixed
Phalcon\Mvc\Model::__isset
to take into account non visible properties by checking the getter if it exists #13518 #13900 - Fixed
Phalcon\Mvc\Model::__set
to return a more informative message if we are tying to access a non visible property #13518 #13900 - Fixed
Phalcon\Mvc\Model\Resultset\Simple::toArray
to correctly process virtual fields #14669 - Fixed
Phalcon\Session\Manager::getUniqueKey
to prefix the key only ifuniqueId
is present #14688 - Fixed
Phalcon\Db\Adapter\Pdo::describeColumns
to correctly detect ENUM columns #14691 - Fixed
Phalcon\Db\Dialect\Mysql::getColumnDefinition
to recognizesize
forDATETIME
,TIME
andTIMESTAMP
columns #13297
4.0.0 (2019-12-21)
- Added the ability to
Phalcon\Model::findFirstBy*
andPhalcon\Model::findBy*
to process passed parameters (fororder
etc.) #14573 - Added
Phalcon\Helper\Str::decrement
to remove a number from a string or decrements that number if it already is defined #14599 - Added Exception storing and getting in the
Phalcon\Domain\Payload\*
#14575 - Added options array in
Phalcon\Http\Cookie
in the constructor as well asgetOptions
andsetOptions
(ref #14627 - future work) #14575 - Added options array in
Phalcon\Http\Response\Cookies
in theset()
(ref #14627 - future work) #14575
- Changed
Phalcon\Mvc\Router\Annotations
to useconverters
instead ofconversors
#14532 - Changed
Phalcon\Di::setRaw
toPhalcon\Di::setService
to align more with the use of the method #14555 - Changed
Phalcon\Http\CookieInterface
toPhalcon\Http\Cookie\CookieInterface
to avoid confusion #14602 - Changed
Phalcon\Storage\Adapter\*::getKeys
to accept an optional$prefix
so as to filter the keys returned #14575 - Changed dates reported by the logger to use the
"c"
date mask for better sorting #14575 - Changed the
Phalcon\Storage\Adapter\*
constructors to require thePhalcon\Storage\SerializerFactory
object #14575
- Fixed
Phalcon\Mvc\Model
to ignore internal setters if properties have the same name as the setter #14538 - Fixed
Phalcon\Logger\Formatter\Line
to not addPHP_EOL
at the end of the message and added it to thePhalcon\Logger\Adapter\Stream
#14547 - Fixed
Phalcon\Mvc\Model\MetaData\Apcu
andPhalcon\Mvc\Model\MetaData\Redis
to allow setting theprefix
andlifetime
using the options or use the default. #14549 - Fixed
Phalcon\Storage\Adapter\AbstractAdapter
,Phalcon\Storage\Adapter\AbstractInterface
getters to contain a default value - Fixed
Phalcon\Storage\Adapter\Memory
initializing the array store correctly #14551 - Fixed
Phalcon\Storage\Adapter\Stream
to capture notice if the stream is not opened properly #14551 - Fixed
Phalcon\Security::getRandomBytes
to returnint
#14551 - Fixed
Phalcon\Security
to use10
as the default work factor #14551 - Fixed
Phalcon\Helper\Arr::validateAny
andPhalcon\Helper\Arr::validateAll
to usenull
as default for the callback method #14551 - Fixed
Phalcon\Escaper::escapeHtml
andPhalcon\Escaper::escapeHtmlAttr
to allownull
values #14553 - Fixed
Phalcon\Mvc\Model::cloneResultMap
to correctly recognize aliased fields and include them in the resultset #14488 - Fixed
Phalcon\Http\Request::getQuery
,Phalcon\Http\Request::getPut
,Phalcon\Http\Request::getPost
to treat0
as non empty forallowNoEmpty
#14556 - Fixed
Phalcon\Router::handle()
to use the/
route on empty string #14559 - Fixed
Phalcon\Storage\Adapter\Libmemcached::getKeys
andPhalcon\Storage\Adapter\Redis::getKeys
to return the keys that are prefixed only for that adapter #14575 - Fixed factories to return a new instance when calling
newInstance
and not a cached one from the internal mapper #14584Phalcon/Annotations/AnnotationsFactory
Phalcon/Cache/AdapterFactory
Phalcon/Config/ConfigFactory
Phalcon/Db/Adapter/PdoFactory
Phalcon/Image/ImageFactory
Phalcon/Logger/AdapterFactory
Phalcon/Paginator/PaginatorFactory
Phalcon/Storage/AdapterFactory
Phalcon/Storage/SerializerFactory
Phalcon/Translate/InterpolatorFactory
Phalcon/Translate/TranslateFactory
Phalcon/Validation/ValidatorFactory
- Fixed
Phalcon\Mvc\Model::cloneResultMap
to cast integers when fields areTYPE_BIGINTEGER
,TYPE_INTEGER
,TYPE_MEDIUMINTEGER
,TYPE_SMALLINTEGER
,TYPE_TINYINTEGER
#14584 - Fixed
Phalcon\Http\Response::setCookies
to use the correct interface #14602 - Fixed
Phalcon\Test\Unit\Image\Adapter\Gd::processBackground
to correctly calculate the alpha value #14609 - Fixed
Phalcon\Logger\Adapter\AdapterInterface
adding missinginTransaction()
#14575 - Fixed
Phalcon\Mvc\Model::cloneResultsetMap
to remove fatal error when looking up the columnMap. #14619 - Fixed
Phalcon\Http\Request\FileInterface
by addinggetError
that was missing. #14633
- Removed ACL Firewall component from 4.0.x branch #14630
4.0.0-rc.r3 (2019-11-16)
- Added support for PSR-13 links and evolvable links #14507
- Added
Phalcon\Html\Link\Link
- Added
Phalcon\Html\Link\LinkProvider
- Added
Phalcon\Html\Link\EvolvableLink
- Added
Phalcon\Html\Link\EvolvableLinkProvider
- Added
Phalcon\Html\Link\Serializer\Header
- Added
Phalcon\Html\Link\Serializer\SerializerInterface
- Added
- Added
Phalcon\Collection:getKeys
andPhalcon\Collection\getValues
for getting data from the collection #14507 - Added has-one-through relations to
Phalcon\Mvc\Model
andPhalcon\Mvc\Model\Manager
#14511 - Added
Phalcon\Mvc\Model::hasOneThrough()
- Added
Phalcon\Mvc\Model\Manager::addHasOneThrough()
- Added
Phalcon\Mvc\Model\Manager::existsHasOneThrough()
- Added
Phalcon\Mvc\Model\Manager::getHasOneThrough()
- Added
Phalcon\Mvc\Model\ManagerInterface::addHasOneThrough()
- Added
Phalcon\Mvc\Model\ManagerInterface::existsHasOneThrough()
- Added
Phalcon\Mvc\Model\ManagerInterface::getHasOneThrough()
- Added
Phalcon\Http\Request::numFiles
to return the number of files in the request #14519
- Changed
Phalcon\Paginator\Adapter\Model
- Removed the
data
parameter - Added
model
parameter to pass model class - Added optional parameter
parameters
which is used as the parameterModel::find()
- Removed the
- Fixed
Phalcon\Annotations\AnnotationsFactory:newInstance
to return the correct object back #14494 - Fixed return types:
Phalcon\Db\Adapter\PdoFactory::load()
now returnsPhalcon\Db\Adapter\AdapterInterface
Phalcon\Db\Adapter\PdoFactory::newInstance()
now returnsPhalcon\Db\Adapter\AdapterInterface
Phalcon\Logger\LoggerFactory::load()
now returnsPhalcon\Logger
Phalcon\Validation\ValidatorFactory::newInstance
now returnsPhalcon\Factory\ValidatorInterface
- Fixed
Phalcon\Container:get
to usegetShared
transparently #14502 - Fixed
Phalcon\Mvc\Model
to include correct model instances in messages metadata #14510 - Fixed
Phalcon\Di\Injectable::__get()
to return shared instance by default #14491 - Fixed
Phalcon\Mvc\View::loadTemplateEngines()
to not share engine with other views by default #14491 - Fixed
Phalcon\Mvc\Model\Manager::getRelations()
andgetRelationsBetween()
to return many-to-many relations correctly #14509 - Fixed
Phalcon\Logger
to correctly allow transactional logging #14514 - Fixed
Phalcon\Annotations\Adapter\Stream::read
andPhalcon\Annotations\Adapter\Stream::write
to useserialize
/unserialize
vs.var_export
#14515 - Fixed
Phalcon\Http\Request::hasFiles
to return boolean andtrue
if files are present #14519 - Fixed
Phalcon\Logger\Adapter\Syslog
to correctly log Syslog messages #14522 - Fixed
Phalcon\Mvc\Model\MetaDataInterface::getIdentityField
andPhalcon\Mvc\Model\MetaData::getIdentityField
to also returnnull
if the identity field is not present #14523 - Fixed
Phalcon\Storage\Serializer\Json
to serialize objects that implement theJsonSerializable
interface #14528 - Fixed
Phalcon\Collection
to correctly return one level nested objects that implementJsonSerializable
#14528 - Fixed
Phalcon\Mvc\View
to only include first found instance of view when using multiple view directories #12977
- Removed
Phalcon\Logger\Formatter\Syslog
- really did not do much #14523
4.0.0-rc.2 (2019-10-26)
- Added
cast
parameter toPhalcon\Collection::get
andPhalcon\Helper\Arr::get
allowing developers to cast the result returned to the type they want to. #14465 - Added
Phalcon\Paginator\Repository::jsonSerialize()
implementingJsonSerializable
#14475 - Added
Phalcon\Logger::getLogLevel()
andPhalcon\Logger::setLogLevel()
setting the minimum log level for the logger #14480
- Changed all calls to
new <object>
to use thecreate_instance
orcreate_instance_params
for better performance. #14419 - Changed the exception text for
Phalcon\Mvc\Model::getChangedFields
andPhalcon\Mvc\Model::getUpdatedFields
when there is no snapshot setup #14468 - Changed
Phalcon\Mvc\Model::__callStatic()
to throw an exception if the called method is unknown. #14467 - Changed
Phalcon\Mvc\Model
to accept0
,null
and""
as valid parameter forfindByField()
,findFirstByField()
andcountByField()
. #14467
- Fixed
Phalcon\Mvc\View\Engine\Volt\Compiler::parse()
Corrected syntax recognize for "set" keyword. #14288 - Fixed
Phalcon\Mvc\View\Engine\Volt\Compiler::parse()
Corrected syntax recognize for "is" keyword. #11683 - Fixed
Phalcon\Cache\Adapter\AbstractAdapter
useAdapterInterface
instead of non existingAbstractAdapter
#14414 - Fixed
Phalcon\Cache\CacheFactory
usePsr\SimpleCache\CacheInterface
instead of non existingPhalcon\Cache\CacheInterface
#14414 - Fixed
Phalcon\Cache\CacheFactory
usePsr\SimpleCache\CacheInterface
instead of non existingPhalcon\Cache\CacheInterface
#14414 - Fixed
Phalcon\Cli\Router
add missingPhalcon\Cli\Router\RouteInterface
#14414 - Fixed
Phalcon\Dispatcher\AbstractDispatcher::setModelBinder()
to return DispatcherInterface instead of non existing Dispatcher: #14414 Phalcon\Firewall\Adapter\Acl
Phalcon\Firewall\Adapter\Annotations
- Fixed
Phalcon\Filter\FilterFactory::newInstance()
to returnFilterInterface
instead of non existingLocatorInterface
#14414 - Fixed
Phalcon\Forms\Element\Select::addOption()
andPhalcon\Forms\Element\Select::setOption()
to returnElementInterface
instead of non existing Element #14414 - Fixed
Phalcon\Forms\Manager::set()
to returnManager
instead of non existingFormManager
#14414 - Fixed
Phalcon\Paginator\Adapter\AbstractAdapter::setCurrentPage()
Phalcon\Paginator\Adapter\AbstractAdapter::setLimit()
Phalcon\Paginator\Adapter\AbstractAdapter::setRepository()
to returnAdapterInterface
instead of non existingAdapter
#14414- Fixed
Phalcon\Translate\TranslateFactory::set()
to returnAdapterInterface
instead of non existingAbstractAdapter
#14414 - Fixed
Phalcon\Filter
to properly work with closures #14417 - Fixed
Phalcon\Form::setAction()
throwing error when called inForm::initialize()
#14421 - Fixed
Phalcon\Mvc\Model\Query\Lang::parsePHQL
return type hint fromstring
toarray
- Fixed
NOT BETWEEN
support in PHQL #14253 - Fixed
Phalcon\Storage\Adapter\Stream
to correctly serialize and unserialize data #14408 - Fixed
Phalcon\Storage\Serializer\Json
to throw an exception if storing an object #14408 - Fixed
Phalcon\Http\Message\ServerRequestFactory::load
to correctly handle superglobals that have not been defined #14426 - Fixed
Phalcon\Forms\Form
to initialize attributes object if not initialized #14430 - Fixed
Phalcon\Http\Message\ServerRequestFactory::load
to correctly detect the protocol passed from$_SERVER
#14432 - Fixed
Phalcon\Cli\Router\Route
added missingPhalcon\Cli\Router\RouteInterface
- Fixed incorrect return types on
Phalcon\Mvc\View\Engine\AbstractEngine::partial
andPhalcon\Mvc\View\Engine\EngineInterface::partial
#14429 - Fixed
Phalcon\Firewall\Adapter\AbstractAdapter::getRoleCallback
andPhalcon\Firewall\Adapter\AbstractAdapter::setRoleCallback
to correctly accept and return aClosure
#14450 - Fixed
Phalcon\Firewall\Adapter\AdapterInterface::getRoleCallback
andPhalcon\Firewall\Adapter\AbstractAdapter::setRoleCallback
to correctly accept and return aClosure
#14450 - Fixed
Phalcon\Events\Event::__constructor
to correctly accept anobject
as thesource
parameter #14449 - Fixed
Phalcon\Cache::checkKey()
added.
to key characters pattern #14457 - Fixed
Phalcon\Mvc\Model\Manager
to store reusable related records correctly. #14444 - Fixed
Phalcon\Mvc\Model::__call()
not to throw an exception when the return value isnull
for related records. #14444 - Fixed
Phalcon\Logger\Adapter\Syslog::__construct()
incorrect receipt of theoption
from theoptions
parameter. #14470 - Fixed
Phalcon\Events\Manager::fire
andPhalcon\Events\ManagerInterface::fire
correctly aligning parameters and types. #14477 - Fixed
Phalcon\Translate\*
aligningparameters
asarray
with the interpolator calls. #14477 - Fixed
Phalcon\Storage\AdapterFactory:newInstance
to return the correct interface #14481 - Fixed
Phalcon\Mvc\Dispatcher:forward
to accept an array vs a mixed variable #14481 - Fixed
Phalcon\Mvc\Model::_doLowUpdate
andPhalcon\Mvc\Model::_doLowInsert
throwing errors about column mapping whenphalcon.orm.ignore_unknown_columns
is setOn
#14485
- Removed
Phalcon\Application\AbstractApplication::handle()
as it does not serve any purpose and causing issues with type hinting. #14407 - Removed
getEventsManager
andsetEventsManager
fromPhalcon\Di\Injectable
to the classes that utilise the methods oreventsManager
property. #14269
4.0.0-rc.1 (2019-09-23)
- Added optional boolean parameter to
Phalcon\Http\Request::getURI()
(as well as its interface) which indicates whether or not the method should return only the path without the query string
- Changed
Phalcon\Url::get
to use implementation behindPhalcon\Helper\Str::reduceSlashes
to reduce slashes #14331 - Changed
Phalcon\Http\Headers\set()
to return self for a more fluent interface - Changed
Phalcon\Assets\Manager
,Phalcon\Cli\Router
,Phalcon\Dispatcher\AbstractDispatcher
,Phalcon\Html\Tag
,Phalcon\Http\Cookie
,Phalcon\Http\Request
,Phalcon\Http\Response\Cookies
,Phalcon\Mvc\Model
,Phalcon\Mvc\Router
,Phalcon\Security
,Phalcon\Session\Manager
to usePhalcon\Di\AbstractDiAware
for container functionality #14351 - Changed
Phalcon\Security
to allowsession
andrequest
in the constructor #14351 - Changed
Phalcon\Session\Manager
to allowrouter
in the constructor #14351 - Changed
Phalcon\Flash\Direct
to allowescaper
in the constructor #14349 - Changed
Phalcon\Flash\Session
to allowescaper
in the constructor #14349 - Changed
Phalcon\Di\AbstractDIAware
toPhalcon\Di\AbstractInjectionAware
#14359 - Changed
Phalcon\Di\Service
to use DI to initializestring
based services when possible #14342 - Changed
Phalcon\Mvc\Router\Annotations
to be able to handle patterns az prefixes #14259 - Changed
Phalcon\Mvc\Router\Group::routes
to an array as default #14259 - Changed
Phalcon\Mvc\Model::assign
changed order of parameters to $data, $whiteList, $dataColumnMap #14386 - Changed
Phalcon\Helper\Arr::arrayToObject
totoObject
#14389 - Changed
Phalcon\Events\EventsAwareInterface::getEventsManager
andPhalcon\Di\Injectable::getEventsManager
to return alsonull
#14404 - Changed
Phalcon\Logger\Adapter\AbstractAdapter::add
to now returnthis
#14404 - Changed
Phalcon\Mvc\RouterInterface
methods signature to returnRouteInterface
instead ofvoid
:Phalcon\Mvc\RouterInterface::setDefaultAction
Phalcon\Mvc\RouterInterface::setDefaultAction
Phalcon\Mvc\RouterInterface::setDefaultController
Phalcon\Mvc\RouterInterface::setDefaultModule
Phalcon\Mvc\RouterInterface::setDefaults
- Changed return types for following interfaces:
Phalcon\Mvc\Router\RouteInterface::setName
fromvoid
toRouteInterface
Phalcon\Mvc\Router\RouteInterface::via
fromvoid
toRouteInterface
Phalcon\Session\ManagerInterface::__get
fromvoid
tovar
- Fixed
Phalcon\Helper\Str::includes
to return correct result #14301 - Fixed
Phalcon\Logger
moved to correct namespace #14263 - Fixed
Phalcon\Session\Adapter\AbstractAdapter::read()
to return ""(empty string) whenSession/Adapter/*::get()
returns null #14314 - Fixed
Phalcon\Cache\Exception
to extend Phalcon\Exception - Fixed
Phalcon\Cache\InvalidArgumentException
to extend Phalcon\Exception - Fixed
Phalcon\Collection\Exception
to extend Phalcon\Exception - Fixed
Phalcon\Storage\Adapter\AbstractAdapter::initSerializer
to throw exception ifnull === $this->serializerFactory && null === $this->serializer
#14324 - Fixed
Phalcon\Storage\Adapter\Redis::getAdapter()
to provide a persistent id for redis persistent connection #14334 - Fixed
Phalcon\Session\Adapter\Stream
to not override configured save path #14265 - Fixed
Phalcon\Http\Response::setFileToSend
to properly handle non-ASCII filenames #13919 - Fixed
Phalcon\Security::getSessionToken
return value #14346 - Fixed
Phalcon\Flash\*
interfaces formessage()
to returnstring/null
#14349 - Fixed
Phalcon\Paginator\Adapter\AbstractAdapter
throw exception iflimit <= 0
#14303 - Fixed
Phalcon\Mvc\Model\Query\Builder
Empty table alias in query #14366 - Fixed
Phalcon\Db\Adapter\PdoFactory
to reference the correct interface #14381 - Fixed
Phalcon\Db\Dialect\Mysql
Fixed missing schema in constraint for create table #14378 - Fixed
Phalcon\Mvc\Model::hasChanged()
andgetChangedFields()
returning false values whencastOnHydrate
option is on. #14376 - Fixed
Phalcon\Mvc\Model::create()
Using write connection to prevent replica lag #14256 - Fixed return types for following methods to satisfy interface declaration:
Phalcon\Acl\Adapter\AbstractAdapter::setDefaultAction
Phalcon\Application\AbstractApplication::setEventsManager
Phalcon\Firewall\Adapter\AbstractAdapter::setAlwaysResolvingRole
Phalcon\Firewall\Adapter\AbstractAdapter::setEventsManager
Phalcon\Mvc\Router::handle
Phalcon\Storage\Serializer\AbstractSerializer::getData
Phalcon\Storage\Serializer\AbstractSerializer::setData
Phalcon\Mvc\Dispatcher::forward
Phalcon\Mvc\Model::setConnectionService
Phalcon\Mvc\Model::setReadConnectionService
Phalcon\Mvc\Model::setWriteConnectionService
Phalcon\Mvc\Model\Query\Builder::setDI
Phalcon\Mvc\Router\Annotations::handle
Phalcon\Session\Bag::set
Phalcon\Session\Manager::remove
- Fixed
Phalcon\Di::remove()
to remove service. #14396
- Removed
Phalcon\Plugin
- duplicate ofPhalcon\Di\Injectable
#14359 - Removed
Phalcon\Mvc\Collection
and all related references. 4.0 will not support mongo as it is being re-implemented to take advantage of the latest Mongo driver (see #13697) #14361 - Removed
Phalcon\Session\Manager::registerHandler
- duplicate functionality #14381 - Removed
Phalcon\Html\Tag
- duplicate functionality #14381 - Removed
void
return type for all constructors #14401
4.0.0-beta.2 (2019-08-18)
- Fixed missing imports in
Phalcon\Db\Adapter\AbstractAdapter
,Phalcon\Db\Adapter\AdapterInterface
,Phalcon\Db\Result\Pdo
,Phalcon\Html\Tag
andPhalcon\Tag\Select
. #14249 - Fixed
isSerializable
inPhalcon\Storage\Serializer\AbstractSerializer
to return true when the data is seriazable and false when it's not. - Fixed
Phalcon\Storage\Adapter\Redis::delete()
andPhalcon\Storage\Adapter\Redis::getKeys()
deprecated warning from php-redis #14281 - Fixed
Phalcon\Mvc\Model\ResultSet::Update()
to return correct status #14291 Phalcon\Mvc\Collection::cancelOperation()
now returnstrue
on success.- Fixed
Phalcon\Application\AbstractApplication
interfaces forregisterModules()
,setDefaultModule()
andsetEventsManager()
#14293 - Fixed
Phalcon\Paginator\Adapter\QueryBuilder
to throw exception on incorrect parameter #14299
- Removed dead libsodium-related code. It was never called in PHP >= 7.0.
4.0.0-beta.1 (2019-07-14)
- Added
Phalcon\Factory\Exception
for factory exceptions. #13672 - Added
Phalcon\Filter\FilterInterface
for custom filter implementations. #13672 - Added
Phalcon\Db\Adapter\PdoFactory
: Factory to create PDO adapters. #13672 - Added
Phalcon\Image\ImageFactory
: Factory to create image adapters. #13672 - Added
Phalcon\Logger\LoggerFactory
: Factory to create logger objects. #13672 - Added
Phalcon\Translate\InterpolatorFactory
: Factory to create interpolator objects. #13672 - Added
Phalcon\Translate\TranslateFactory
: Factory to create translate objects. #13672 - Added
Phalcon\Domain\Payload
to help in transferring messages between layers of the application. #14123 - Added
Phalcon\Domain\PayloadFactory
: Factory to create payload objects. #14123 - Added
Phalcon\Http\Message\ServerRequestFactory::load
: Method to create aServerRequest
object from globals. #14154 - Added
saslAuthData
as option toPhalcon\Storage\Adapter\Libmemcached
to authenticate using SASL #13394 - Added
Phalcon\Collection\ReadOnly
: Read only collection. #14154 - Added
whiteList()
toPhalcon\Helper\Arr
#13954 - Added
Phalcon\Config\ConfigFactory::newInstance()
: Factory to create config objects. #13201, #13768 - Added
Phalcon\Db\Enum
#14213 - Added
Phalcon\Dispatcher\Exception
#14213
- Renamed
Phalcon\Annotations\Adapter\Files
toPhalcon\Annotations\Adapter\Stream
. #13672 - Renamed
Phalcon\Annotations\Adapter
toPhalcon\Annotations\Adapter\AbstractAdapter
. #13672 - Renamed
Phalcon\Annotations\AdapterInterface
toPhalcon\Annotations\Adapter\AdapterInterface
. #13672 - Renamed
Phalcon\Annotations\Factory
toPhalcon\Annotations\AnnotationsFactory
. #13672 - Renamed
Phalcon\Config\Factory
toPhalcon\Config\ConfigFactory
. #13672 - Renamed
Phalcon\Filter\FilterLocator
toPhalcon\Filter\Filter
. #13672 - Renamed
Phalcon\Filter\FilterLocatorFactory
toPhalcon\Filter\FilterFactory
. #13672 - Renamed
Phalcon\Image\Adapter
toPhalcon\Image\Adapter\AbstractAdapter
. #13672 - Renamed
Phalcon\Image\AdapterInterface
toPhalcon\Image\Adapter\AdapterInterface
. #13672 - Renamed
Phalcon\Paginator\Adapter
toPhalcon\Paginator\Adapter\AbstractAdapter
. #13672 - Renamed
Phalcon\Paginator\AdapterInterface
toPhalcon\Paginator\Adapter\AdapterInterface
. #13672 - Renamed
Phalcon\Paginator\Factory
toPhalcon\Paginator\PaginatorFactory
. #13672 - Renamed
Phalcon\Translate\Adapter
toPhalcon\Translate\Adapter\AbstractAdapter
. #13672 - Renamed
Phalcon\Translate\AdapterInterface
toPhalcon\Translate\Adapter\AdapterInterface
. #13672 Phalcon\Plugin
is now abstract.- Moved
method
parameter inPhalcon\Mvc\Model\Manager::getRelationRecords()
to the last position. #14115 - Moved
method
parameter inPhalcon\Mvc\Model\Manager::getBelongsToRecords()
to the last position. #14115 - Moved
method
parameter inPhalcon\Mvc\Model\Manager::getHasOneRecords()
to the last position. #14115 - Moved
method
parameter inPhalcon\Mvc\Model\Manager::getHasManyRecords()
to the last position. #14115 - Validator messages were moved into each validator. #13208
Phalcon\Paginator\Repository::getProperty()
now usesPhalcon\Helper\Arr::get()
.- Refactored
Phalcon\Collection
to allow conditional key case sensitivity. #14154 - Refactored
Phalcon\Registry
to align with thePhalcon\Collection
interface. #14154 Phalcon\Mvc\Micro::setModelBinder()
now uses the Factory Default DI if none is set. #14171Phalcon\Mvc\Model\ValidationFailed
now works withModelInterface
.- Refactored
Phalcon\Config
to extendPhalcon\Collection
#13201, #13768 - Renamed
Phalcon\Config
to extendPhalcon\Config\Config
#13201, #13768 - Renamed
Phalcon\Acl
toPhalcon\Acl\Enum
#14213 - Renamed
Phalcon\Acl\Adapter
toPhalcon\Acl\Adapter\AbstractAdapter
#14213 - Renamed
Phalcon\Acl\AdapterInterface
toPhalcon\Acl\Adapter\AdapterInterface
#14213 - Renamed
Phalcon\Application
toPhalcon\Application\AbstractApplication
#14213 - Renamed
Phalcon\CryptInterface
toPhalcon\Crypt\CryptInterface
#14213 - Renamed
Phalcon\Db\Adapter
toPhalcon\Db\Adapter\AbstractAdapter
#14213 - Renamed
Phalcon\Db\AdapterInterface
toPhalcon\Db\Adapter\AdapterInterface
#14213 - Renamed
Phalcon\Db
toPhalcon\Db\AdapterDb
#14213 - Renamed
Phalcon\Db\Adapter\Pdo
toPhalcon\Db\Adapter\Pdo\AbstractPdo
#14213 - Renamed
Phalcon\Dispatcher
toPhalcon\Dispatcher\AbstractDispatcher
#14213 - Renamed
Phalcon\DispatcherInterface
toPhalcon\Dispatcher\DispatcherInterface
#14213 - Renamed
Phalcon\EscaperInterface
toPhalcon\Escaper\EscaperInterface
#14213 - Renamed
Phalcon\Firewall\Adapter
toPhalcon\Firewall\Adapter\AbstractAdapter
#14213 - Renamed
Phalcon\Firewall\AdapterInterface
toPhalcon\Firewall\Adapter\AdapterInterface
#14213 - Renamed
Phalcon\Flash
toPhalcon\Flash\AbstractFlash
#14213 - Renamed
Phalcon\FlashInterface
toPhalcon\Flash\FlashInterface
#14213 - Renamed
Phalcon\Forms\Element
toPhalcon\Forms\Element\AbstractElement
#14213 - Renamed
Phalcon\Forms\ElementInterface
toPhalcon\Forms\Element\ElementInterface
#14213 - Renamed
Phalcon\Image
toPhalcon\Image\Enum
#14213 - Renamed
Phalcon\Mvc\View\Engine
toPhalcon\Mvc\View\Engine\AbstractEngine
#14213 - Renamed
Phalcon\Mvc\View\EngineInterface
toPhalcon\Mvc\View\Engine\EngineInterface
#14213 - Renamed
Phalcon\UrlInterface
toPhalcon\Url\UrlInterface
- Renamed
Phalcon\Validator
toPhalcon\Validation\Validator
#14213 - Renamed
Phalcon\Validator\Validator
toPhalcon\Validation\AbstractValidator
#14213 - Renamed
Phalcon\Validator\ValidatorComposite
toPhalcon\Validation\AbstractValidatorComposite
#14213 - Renamed
Phalcon\Validator\CombinedFieldsValidator
toPhalcon\Validation\AbstractCombinedFields
#14213 - Renamed
Phalcon\Validator\Validator\File\FileAbstract
toPhalcon\Validation\Validator\File\AbstractFile
#14213
- Fixed
Phalcon\Mvc\View::getRender()
to callview->finish()
instead ofob_end_clean()
. #14095 - Fixed
Phalcon\Cache\Adapter\Libmemcached
failing to set values whenPhalcon\Mvc\Model\MetaData\Libmemcached
was in use. #14100 - Fixed
Phalcon\Db\Column
to recognizetinyint
,smallint
,mediumint
,integer
as valid autoIncrement columns. #14102 - Fixed
method
parameter inPhalcon\Mvc\Model\Manager::getRelationRecords()
, it's not always a string, null by default. #14115 - Fixed
method
parameter inPhalcon\Mvc\Model\Manager::getBelongsToRecords()
, it's not always a string, null by default. #14115 - Fixed
method
parameter inPhalcon\Mvc\Model\Manager::getHasOneRecords()
, it's not always a string, null by default. #14115 - Fixed
method
parameter inPhalcon\Mvc\Model\Manager::getHasManyRecords()
, it's not always a string, null by default. #14115 - Fixed
handlers
property inPhalcon\Mvc\Micro\Collection
to now always an array. - Fixed crash in
Phalcon\Mvc\Model::save()
when saving a circular model relation. #13354 - Fixed
Phalcon\Db\Dialect\Postgresql::truncateTable()
to now escape table names. #14125 - Fixed
Phalcon\Mvc\Model\MetaData::write()
to throw an exception iform.exception_on_failed_metadata_save
is set to true. #13433 - Fixed
Phalcon\Image\Adapter\Gd
to throw an error withimagecolorat
. #14139 Phalcon\Mvc\Model\Criteria::limit()
now corrects negative offsets.Phalcon\Di\FactoryDefault\Cli
can now use the new Filter system.- Fixed
Phalcon\Mvc\Router
now parses and uses path. #14087 - Fixed various areas in
Phalcon\Acl\Adapter
andPhalcon\Acl\Adapter\Memory
including comments, logic,denyComponentAccess
andAdapterInterface
. Added tests. #13870 - Fixed
Phalcon\Config::merge()
not merging numeric values properly #13201, #13768 - Fixed
Phalcon\Validation\Validator\File\AbstractFile
missing the resolution of thevalue
property #14198 - Fixed
Phalcon\Storage\Adapter\Stream
#14190 Phalcon\Form\Form::clear()
now correctly clears single fields. #14217- Fixed
Phalcon\Form\Form::getValue()
not to callgetAttributes()
when an element is named "attributes" #14226 - Fixed
Phalcon\Model::delete()
array to string conversion #14080 - Fixed segfault in
Phalcon\Mvc\Micro\LazyLoader::callMethod()
when handler contains syntax error.
- Removed
Phalcon\Session\Factory
. #13672 - Removed
Phalcon\Factory
andPhalcon\FactoryInterface
. #13672 - Removed
Phalcon\Translate
. #13672 - Removed
Phalcon\Db\Column::getSchemaName()
as its not relevant or settable. - Removed
Phalcon\Config::__set_state()
as it does not serve any purpose and skipped the constructor. #13201, #13768 - Removed
Phalcon\Annotations\Reflection::__set_state()
,Phalcon\Db\ColumnInterface::__set_state()
,Phalcon\Db\Column::__set_state()
,Phalcon\Db\IndexInterface::__set_state()
,Phalcon\Db\Index::__set_state()
,Phalcon\Db\ReferenceInterface::__set_state()
,Phalcon\Db\Reference::__set_state()
,Phalcon\Di\ServiceInterface::__set_state()
,Phalcon\Di\Service::__set_state()
,Phalcon\Http\Response\HeadersInterface::__set_state()
,Phalcon\Http\Response\Headers::__set_state()
,Phalcon\Http\Request::__set_state()
,Phalcon\Messages\Message::__set_state()
#14212
4.0.0-alpha.5 (2019-05-18)
- Added
Phalcon\Cli\Router\Route::setDescription()
to sets the route's description #13936 - Added
Phalcon\Cli\Router\Route::getDescription()
returns the route's description #13936 - Added
Phalcon\Image\Adapter\Gd::getVersion()
. - Added
chunk()
,first()
,firstKey()
,flatten()
,group()
,isUnique()
,last()
,lastKey()
,order()
,pluck()
,sliceLeft()
,sliceRight()
,split()
,tail()
,validateAll()
,validateAny()
toPhalcon\Helper\Arr
#13954 - Added
camelize()
,concat()
,countVowels()
,decapitalize()
,dynamic()
,endsWith()
,firstStringBetween()
,includes()
,increment()
,isAnagram()
,isLower()
,isPalindrome()
,isUpper()
,lower()
,random()
,reduceSlashes()
,startsWith()
,uncamelize()
,underscore()
,upper()
toPhalcon\Helper\Str
#13954 - Added
Phalcon\Mvc\Model\Query\BuilderInterface::getModels()
returns the models involved in the query - Added
addConnect()
,addPurge()
andaddTrace()
toPhalcon\Mvc\Router\Group
and its interface. #14001 - Added
Phalcon\Mvc\Model\Transaction::throwRollbackException()
which allows a transaction to throw an exception or not on a rollback. #13949 - Added
Phalcon\Cache
class implementing PSR-16. Introducing:Phalcon\Cache\Adapter
Phalcon\Cache\Adapter\Apcu
Phalcon\Cache\Adapter\Libmemcached
Phalcon\Cache\Adapter\Memory
Phalcon\Cache\Adapter\Redis
Phalcon\Cache\Adapter\Stream
Phalcon\Cache\AdapterFactory
: Factory to create adaptersPhalcon\Cache\CacheFactory
: Factory to create cache objects #13439
- Added
Str::dirSeparator()
to ensure a path has a trailing slash #13439 - Added assets versioning
Phalcon\Assets\Manager:addCss
,Phalcon\Assets\Manager::addJs
,Phalcon\Assets\Collection:addCss
,Phalcon\Assets\Collection:addJs
accepts two additional parameters -version
andautoVersion
#12591 - Added setting
orm.resultset_prefetch_records
instructing the ORM (resultset) to prefetch the rows if the rows returned are less or equal to the setting. #13387 - Added
Phalcon\Mvc\View::toString()
to return the rendered view as a string #13825 - Added
Phalcon\Helper\Arr::arrayToObject()
to convert arrays to objects. - Added
Phalcon\Firewall
component #13648 - Added
orm.cast_last_insert_id_to_int
option forPhalcon\Mvc\Model::setup()
(castLastInsertIdToInt
) to cast thelastInsertId
onsave()
toint
#13002 - Added
Attributes
collection class like a new Html component #13646 - Added
Attributes
intoPhalcon\Forms\Form
#13646
- Refactored
Phalcon\Events\Manager
to only useSplPriorityQueue
to store events. #13924 Phalcon\Translate\InterpolatorInterface
now only accepts placeholder arrays. #13939Phalcon\Dispatcher::forward()
andPhalcon\Dispatcher::setParams()
now require an array as a parameter. #13935- CLI Routes with bad class names (eg.
MyApp\\Tasks\\
) now throw an exception instead of suppressing the error. #13936 - Refactored
Phalcon\Mvc\Collection\Behavior\SoftDelete
andPhalcon\Mvc\Model\Behavior\SoftDelete
. #13930 - Model methods that extend Model Manager functionality are now
final
. #13950 - Changed
Phalcon\Text
to call methods fromPhalcon\Helper\Str
#13954 - Setting the views directory no longer requires a trailing slash when using Simple View.
Phalcon\Mvc\View\Simple::viewParams
is now always an array.Phalcon\Mvc\View\Simple::render()
params
property is now always an array.Phalcon\Mvc\Model\CriteriaInterface::limit()
now takesoffset
as an integer. #13977- Changed
Phalcon\Mvc\Model\Manager::getModelSource()
to usesetModelSource()
internally instead of setting the source manually #13987 - The property
options
is always an array inPhalcon\Mvc\Model\Relation
. #13989 Phalcon\Logger\Adapter\AbstractAdapter::process()
is now actually abstract. #14012Phalcon\Mvc\ModelInterface::getRelated()
return type declaration has changed (not alwaysResultsetInterface
) #14035- In
Phalcon\Mvc\Model
, relations fetched using magic methods are now handled byPhalcon\Mvc\Model::getRelated()
internally. #14035 - Changed
Phalcon\Mvc\Model\Transaction::rollback()
to not throw a transaction by default. #13949 - Changed
Phalcon\Cache
namespace and relevant classes to handle storing data to different stores. Introducing:Phalcon\Storage\Serializer
offering classes that implement the\Serializable
interface.Phalcon\Storage\Serializer\Base64
Phalcon\Storage\Serializer\Igbinary
Phalcon\Storage\Serializer\Json
Phalcon\Storage\Serializer\Msgpack
Phalcon\Storage\Serializer\None
Phalcon\Storage\Serializer\Php
Phalcon\Storage\Serializer\SerializerInterface
Phalcon\Storage\SerializerFactory
: Factory to create serializersPhalcon\Storage\Adapter
offering classes that implement thePhalcon\Storage\Adapter\AdapterInterface
interface.Phalcon\Storage\Adapter\Apcu
Phalcon\Storage\Adapter\Libmemcached
Phalcon\Storage\Adapter\Memory
Phalcon\Storage\Adapter\Redis
Phalcon\Storage\Adapter\Stream
Phalcon\Storage\AdapterFactory
: Factory to create adapters #13439
- Changed
Phalcon\Mvc\Model\Query
to not callnumRows
when selecting data #13387 - Bind parameters and bind types are now always arrays in
Phalcon\Mvc\Model\Query
. - Changed
Phalcon\Validation\Validator\Url
to work with passed options. (FILTER_FLAG_PATH_REQUIRED
,FILTER_FLAG_QUERY_REQUIRED
) #13548 Phalcon\Mvc\Model\Query\Builder
will now omit offsets if they are set as 0.Phalcon\Mvc\Model\Transaction::__construct()
service parameter must be a string or omitted.Phalcon\Logger\Formatter\Line::__construct()
service parameters must be a string or omitted.Phalcon\Logger\Formatter\Json::__construct()
service parameters must be a string or omitted.- Removed deprecated code from
Phalcon\Forms\Form::getMessages()
. - Loading a Module (either MVC or CLI) now throws an exception if the path does not exists regardless of whether the class is already loaded.
- Changed
Phalcon\Crypt
to accept auth tag, tag length and data for "gcm" and "ccm" modes. Removed insecure algorithms with modes:des*
,rc2*
,rc4*
,des*
,*ecb
#13869 - Changed
Phalcon\Mvc\Model
to copy the unset default values from theMetaData
to theModel
after a successful insert. #13781 - Changed
Phalcon\Mvc\Model::findFirst()
now returnsnull
.Phalcon\Mvc\Model::getRelated()
for one to one relationships returnsnull
#14044
- Fixed
Mvc\Collection::isInitialized()
now works as intended. #13931 - Update docblocks to show that we can no longer assign properties via
save()
in models (as per #12317). #13945 - Fixed
Mvc\Model
andMvc\ModelInterface
findFirst
to returnModelInterface
orbool
#13947 Phalcon\Acl\Adapter\Memory::dropComponentAccess()
now properly unsets values.- Volt options 'separator' and 'extension' now work again. #13971
- Query Builder's
GROUP BY
field is now always an array. #13962 - Renamed
Phalcon\Paginator\Adapter::getPaginate()
topaginate()
in documentation/tests (originally renamed in 4.0.0-alpha.1). #13973 - Fixed the exception message in
Phalcon\Security::computeHmac()
by removing"%s"
from output. Phalcon\Mvc\Model\Relation::isForeignKey()
now returns false if theforeignKey
option is set tofalse
.- Fixed
Phalcon\Flash\Session::output()
not to throw an exception when there are no messages stored in session. #14023 - Fixed
Phalcon\Config\Adapter\Ini()
to handle arrays correctly in .ini files. #14025 - Fixed non-reusable relations in
Phalcon\Mvc\Model
, now returning fresh records. #13531 Phalcon\Mvc\Model::isRelationshipLoaded()
is now working for every type of relations. #14035- Fixed
Phalcon\Mvc\Model::writeAttribute()
to handle associative arrays correctly. #14021 - Fixed
Phalcon\Html\Tag::appendTitle()
andPhalcon\Html\Tag::prependTitle()
to mirrorPhalcon\Tag
. #14039 - Fixed
Phalcon\Validation::validate()
withcancelOnFail
. The validator will validate all elements and will stop processing validators on a per element basis ifcancelOnFail
is present. #13149 - Fixed
Phalcon\Mvc\Models\Manager::getRelations()
to return the many-to-many relationships also. #10839 - Fixed
Phalcon\Validation\Validator\Numericality::validate()
to parse nonen
locale numbers. #13843 - Fixed
Phalcon\Mvc\Model::save()
failing after a successful insert when default database fields are not updated. #13781
- Removed
arrayHelpers
property from the Volt compiler. #13925 - Removed legacy (PHP <5.5) code from GD image adapter.
- Removed support for HTTP_CONTENT_TYPE header (a bug in PHP 5). #14013
- Removed
Mvc\Model\MetaData\Session
adapter (no longer supported) #13439 - Removed
Phalcon\Cache
,Phalcon\Cache\Backend
,Phalcon\Cache\BackendInterface
,Phalcon\Cache\Backend\Apcu
,Phalcon\Cache\Backend\Factory
,Phalcon\Cache\Backend\File
,Phalcon\Cache\Backend\Libmemcached
,Phalcon\Cache\Backend\Memory
,Phalcon\Cache\Backend\Mongo
,Phalcon\Cache\Backend\Redis
,Phalcon\Cache\Frontend
,Phalcon\Cache\Frontend\Base64
,Phalcon\Cache\Frontend\Data
,Phalcon\Cache\Frontend\Factory
,Phalcon\Cache\Frontend\Igbinary
,Phalcon\Cache\Frontend\Json
,Phalcon\Cache\Frontend\Msgpack
,Phalcon\Cache\Frontend\None
,Phalcon\Cache\Frontend\Output
,Phalcon\Cache\FrontendInterface
,Phalcon\Cache\Multiple
#13439 - Removed caching from the view (simple/view)
Phalcon\Mvc\View::cache()
Phalcon\Mvc\View::getCache()
Phalcon\Mvc\View\Simple::cache()
Phalcon\Mvc\View\Simple::getCache()
#13439
- Removed multiple Cache Adapter
Phalcon\Cache\Multiple
#13439 - Removed old cache classes
Phalcon\Cache\Backend
Phalcon\Cache\BackendInterface
Phalcon\Cache\Backend\Apcu
Phalcon\Cache\Backend\Factory
Phalcon\Cache\Backend\File
Phalcon\Cache\Backend\Libmemcached
Phalcon\Cache\Backend\Memory
Phalcon\Cache\Backend\Mongo
Phalcon\Cache\Backend\Redis
Phalcon\Cache\Frontend
Phalcon\Cache\FrontendInterface
Phalcon\Cache\Frontend\Base64
Phalcon\Cache\Frontend\Data
Phalcon\Cache\Frontend\Factory
Phalcon\Cache\Frontend\Igbinary
Phalcon\Cache\Frontend\Json
Phalcon\Cache\Frontend\Msgpack
Phalcon\Cache\Frontend\None
Phalcon\Cache\Frontend\Output
#13439
- Removed model namespace aliases
Phalcon\Model\Manager::registerNamespaceAlias()
Phalcon\Model\Manager::getNamespaceAlias()
Phalcon\Model\Manager::getNamespaceAliases()
Phalcon\Model\ManagerInterface::getNamespaceAlias()
Phalcon\Model\ManagerInterface::registerNamespaceAlias()
4.0.0-alpha.4 (2019-03-31)
- Added
delimiter
andenclosure
options to Phalcon\Translate\Adapter\Csv constructor - Added
Phalcon\Http\Message\*
namespace implementing PSR-7 and PSR-17. Introducing:Phalcon\Http\Message\Request
Phalcon\Http\Message\RequestFactory
Phalcon\Http\Message\Response
Phalcon\Http\Message\ResponseFactory
Phalcon\Http\Message\ServerRequest
Phalcon\Http\Message\ServerRequestFactory
Phalcon\Http\Message\Stream
Phalcon\Http\Message\StreamFactory
Phalcon\Http\Message\UploadedFile
Phalcon\Http\Message\UploadedFileFactory
Phalcon\Http\Message\Uri
Phalcon\Http\Message\UriFactory
Phalcon\Http\Message\Stream\Input
Phalcon\Http\Message\Stream\Memory
Phalcon\Http\Message\Stream\Temp
The implementation offers PSR-7/PSR-17 compatible components in a different namespace to allow usage of bothRequest
andResponse
implementations for this version. #11789
- Added
Phalcon\Helper\*
namespace, offering easy manipulations for arrays, numbers etc..Phalcon\Helper\Arr
Phalcon\Helper\Number
#13889
- Added
Phalcon\Collection
, an object implementingArrayAccess
,Countable
,IteratorAggregate
,JsonSerializable
,Serializable
, offering an easy way to handle collections of data such as arrays, superglobals etc. #13886 - Added
Phalcon\Collection
, inPhalcon\Http\Message\Request
andPhalcon\Http\Message\ServerRequest
to handle the headers #13907
- Fixed
Phalcon\Image\Adapter\Imagick::_watermark
,setImageAlpha()
fills the alpha channel with black before execution (replaced byevaluateImage()
). Improved imagick compatibility. #13911 - Fixed Assets Manager hard reference to \Phalcon\Tag, should use DI #12261
- Fixed
Annotations\Reader::parse
to always return an array #13923
- Refactored
Phalcon\Registry
to use thePhalcon\Collection
class #13893 - Refactored
Phalcon\Session\Bag
to use thePhalcon\Collection
class #13893 - Refactored almost all files of the project to abide by the new coding standard for Phalcon. Certain files have been intentionally left untouched because they will be replaced later on. #13915
- Removed
Phalcon\Session\BagInterface
#13893
4.0.0-alpha.3 (2019-02-31)
- Added
view:afterCompile
andview:beforeCompile
events for the Volt compiler #2182 - Added array merge support to
Phalcon\Config::merge
- Added
setBlacklist
inPhalcon\Debug
to allow the developer to "blacklist" certain variables from the$_REQUEST
or$_SERVER
superglobals being displayed on screen #13687
- Fixed router and controller parameter inconsistencies (camelize etc.) #13555
- Fixed
invalid opcode
inphalcon.so
when using docker #13143 - Fixed storing related model data in
Phalcon\Messages\Message
. The method is nowsetMetadata
and can be used to store any metadata from any component that emits messages #13811 - Fixed Dispatcher calling camelize twice and producing incorrect results #12829
- Fixed
Phalcon\Mvc\Model:findFirst
to throw an exception when the passed parameter for a primary key is not an array, string or numeric #13336 - Added
Phalcon\Http\ResponseInterface::isSent
, that was already used. #13836
- Changed view engine service closures to no longer receive the dependency injector as the second parameter. Instead use
$this
for the DI. #11926 - Renamed
Phalcon\Acl\Subject
toPhalcon\Acl\Component
#13808 - Renamed
Phalcon\Acl\SubjectInterface
toPhalcon\Acl\ComponentInterface
#13808 - Renamed
Phalcon\Acl\SubjectAware
toPhalcon\Acl\ComponentAware
#13808 - Renamed
Phalcon\Acl\Operation
toPhalcon\Acl\Role
#13808 - Renamed
Phalcon\Acl\OperationInterface
toPhalcon\Acl\RoleInterface
#13808 - Renamed
Phalcon\Acl\OperationAware
toPhalcon\Acl\RoleAware
#13808 - Renamed
Phalcon\Acl\AdapterInterface::addOperation
toPhalcon\Acl\AdapterInterface::addRole
#13808 - Renamed
Phalcon\Acl\AdapterInterface::isOperation
toPhalcon\Acl\AdapterInterface::isRole
#13808 - Renamed
Phalcon\Acl\AdapterInterface::isSubject
toPhalcon\Acl\AdapterInterface::isComponent
#13808 - Renamed
Phalcon\Acl\AdapterInterface::addSubject
toPhalcon\Acl\AdapterInterface::addComponent
#13808 - Renamed
Phalcon\Acl\AdapterInterface::addSubjectAccess
toPhalcon\Acl\AdapterInterface::addComponentAccess
#13808 - Renamed
Phalcon\Acl\AdapterInterface::dropSubjectAccess
toPhalcon\Acl\AdapterInterface::dropComponentAccess
#13808 - Renamed
Phalcon\Acl\AdapterInterface::getActiveOperation
toPhalcon\Acl\AdapterInterface::getActiveRole
#13808 - Renamed
Phalcon\Acl\AdapterInterface::getActiveSubject
toPhalcon\Acl\AdapterInterface::getActiveComponent
#13808 - Renamed
Phalcon\Acl\AdapterInterface::getOperationss
toPhalcon\Acl\AdapterInterface::getRoles
#13808 - Renamed
Phalcon\Acl\AdapterInterface::getSubjects
toPhalcon\Acl\AdapterInterface::getComponents
#13808 - Renamed
Phalcon\Acl\Adapter::getActiveOperation
toPhalcon\Acl\AdapterInterface::getActiveRole
#13808 - Renamed
Phalcon\Acl\Adapter::getActiveSubject
toPhalcon\Acl\AdapterInterface::getActiveComponent
#13808 - Renamed
Phalcon\Acl\Adapter\Memory::addOperation
toPhalcon\Acl\Adapter\Memory::addRole
#13808 - Renamed
Phalcon\Acl\Adapter\Memory::isOperation
toPhalcon\Acl\Adapter\Memory::isRole
#13808 - Renamed
Phalcon\Acl\Adapter\Memory::isSubject
toPhalcon\Acl\Adapter\Memory::isComponent
#13808 - Renamed
Phalcon\Acl\Adapter\Memory::addSubject
toPhalcon\Acl\Adapter\Memory::addComponent
#13808 - Renamed
Phalcon\Acl\Adapter\Memory::addSubjectAccess
toPhalcon\Acl\Adapter\Memory::addComponentAccess
#13808 - Renamed
Phalcon\Acl\Adapter\Memory::dropSubjectAccess
toPhalcon\Acl\Adapter\Memory::dropComponentAccess
#13808 - Renamed
Phalcon\Acl\Adapter\Memory::getOperationss
toPhalcon\Acl\Adapter\Memory::getRoles
#13808 - Renamed
Phalcon\Acl\Adapter\Memory::getSubjects
toPhalcon\Acl\Adapter\Memory::getComponents
#13808 - Renamed
Phalcon\Mvc\Url
toPhalcon\Url
#13742 - Renamed
Phalcon\Mvc\UrlInterface
toPhalcon\UrlInterface
#13742 - Renamed
Phalcon\Mvc\Url\Exception
toPhalcon\Url\Exception
#13742
- Removed the CSS/JS minifiers. This affects the Assets\Filter classes. For now the classes return the original content. #13819, #10118
- Removed
Phalcon\Queue
namespace and tests. Beanstalkd is near being abandoned. A new Queue component/adapter will be implemented for queueing needs of the community. #13364
4.0.0-alpha.2 (2019-02-02)
- Added
notFound()
method inPhalcon\Translate\Adapter\NativeArray
which returns the key requested if not found. The method can be overridden when extending the class, returning what the developer needs #13007 - Added
Phalcon\Service\Locator
,Phalcon\Service\LocatorInterface
andPhalcon\Service\LocatorFactoryInterface
to allow for the creation of service locators and factories throughout the application #13771 - Added
Phalcon\Http\Request::setParameterFilters
. It allows you to preset filters for specific input (i.e.id
,name
etc.). You can then retrieve the automatically sanitized values usingPhalcon\Http\Request::getFilteredQuery
,Phalcon\Http\Request::getFilteredPost
andPhalcon\Http\Request::getFilteredPut
#13488
- Fixed
Phalcon\Mvc\Micro::handle
to properly return a response object #13712 - Fixed
Phalcon\Cache\Backend\Libmemcached
returning "empty" values being asnull
when they could be0
,false
or emptystring
. #13497 - Fixed session adapters to properly implement
SessionHandlerInterface::write
- Fixed
Phalcon\Session\Manager
to not interact with$_SESSION
variable if the session has not been started #13718, #13520 - Fixed
Phalcon\Cli\Console
class not found error if handling the same module twice #13724 - Fixed
Phalcon\Cache\Backend\Libmemcached
returning "empty" values being asnull
when they could be0
,false
or emptystring
. #13497 - Fixed
Phalcon\Mvc\View\Engine\Volt\Compiler::functionCall
building the incorrect code for the following tags;select
, andselect_static
#13459 - Fixed
Phalcon\Tag\Select
not rendering without any options.
- Changed the
Phalcon\Tag::renderTitle()
parameters such asPhalcon\Tag::getTitle()
#13706 - Changed the
Phalcon\Html\Tag::renderTitle()
parameters such asPhalcon\Html\Tag::getTitle()
#13706 - Changed the
Phalcon\Version::get()
to follow semantic versioning #13720 - Changed the
Phalcon\Translate\Adapter\NativeArray
to accept a new parameter in the constructortriggerError
. This will trigger an error if the key is not found #13007 - Changed the default action of
Phalcon\Acl\Memory
to beAcl::DENY
instead ofAcl::ALLOW
#13758 - Changed
Phalcon\Mvc\User\Plugin
toPhalcon\Plugin
#13749 - Changed
Phalcon\Exception
to implement\Throwable
interface.#13750 - Changed
Phalcon\Http\Cookie
. ThehttpOnly
property is no longer initialised with a value #13464 - Changed the default action for no arguments of
Phalcon\Acl\Memory
to beAcl::DENY
instead ofAcl::ALLOW
#13769 - Changed handling of
Phalcon\Config\Adapter\Grouped::_construct()
when receiving an configuration file as a string from thearrayConfig
parameter to automatically attempt and the parameterdefaultAdapter
is set to an empty string, to determine the adapter from the file extension, producing the same behaviour asPhalcon\Config\Factory::load()
#13762
- Removed
Phalcon\Mvc\User\Component
,Phalcon\Mvc\User\Module
andPhalcon\Mvc\User\Plugin
#13749
4.0.0-alpha1 (2018-12-25)
- Added CODE_OF_CONDUCT for the project
- Added
Phalcon\Db\Adapter\Pdo\Postgresql::describeReferences
to implement custom Postgresql rules 438 - Added
Phalcon\Mvc\Router\RouteInterface::convert
so that callingPhalcon\Mvc\Router\Group::add
will return an instance that hasconvert
method #13380 - Added
Phalcon\Mvc\ModelInterface::getModelsMetaData
#13070 - Added
Phalcon\Validation\Validator\Ip
, class used to validate ip address fields. It allows to validate a field selecting IPv4 or IPv6, allowing private or reserved ranges and empty values if necessary. #13574 - Added
Phalcon\Messages\MessageInterface
,Phalcon\Messages\Message
,Phalcon\Messages\Exception
andPhalcon\Messages\Messages
to handle all messages for the application (model/validation) #13114 - Added
getHandlerSuffix()
,setHandlerSuffix()
in Dispatcher,getTaskSuffix()
,setTaskSuffix()
in the CLI Dispatcher #13468 - Added ability to set a custom template for the Flash Messenger. #13445
- Added
forUpdate
in the Sqlite dialect to override the method from the base dialect. #13539 - Added
TYPE_ENUM
in the Mysql adapter. #11368 - Added more column types for the Mysql adapter. The adapter supports
TYPE_BIGINTEGER
,TYPE_BIT
,TYPE_BLOB
,TYPE_BOOLEAN
,TYPE_CHAR
,TYPE_DATE
,TYPE_DATETIME
,TYPE_DECIMAL
,TYPE_DOUBLE
,TYPE_ENUM
,TYPE_FLOAT
,TYPE_INTEGER
,TYPE_JSON
,TYPE_JSONB
,TYPE_LONGBLOB
,TYPE_LONGTEXT
,TYPE_MEDIUMBLOB
,TYPE_MEDIUMINTEGER
,TYPE_MEDIUMTEXT
,TYPE_SMALLINTEGER
,TYPE_TEXT
,TYPE_TIME
,TYPE_TIMESTAMP
,TYPE_TINYBLOB
,TYPE_TINYINTEGER
,TYPE_TINYTEXT
,TYPE_VARCHAR
#13151, #12223, #524, #13225 @zGaron, #12523 @Studentsov, #12471 @ruudboon - Added
Phalcon\Acl\Adapter\Memory::addRole
support multiple inherited #13557 - Added
Phalcon\Tag::renderTitle()
that renders the title enclosed in<title>
tags. #13547 - Added
hasHeader()
method toPhalcon\Http\Response
to provide the ability to check if a header exists. #12189 - Added global setting
orm.case_insensitive_column_map
to attempt to find value in the column map case-insensitively. Can be also enabled by settingcaseInsensitiveColumnMap
key in\Phalcon\Mvc\Model::setup()
. #11802 - Added the ability to use FrontendInterface to serialize Model and ResultSet - Inject a
serializer
object which implementsFrontendInterface
in DI to use it. #12808 - Added
Phalcon\Mvc\Model\Query\BuilderInterface::offset
#13599 - Added
Phalcon\Http\Response\Cookies::getCookies
#13591 - Added
Phalcon\Mvc\Model::isRelationshipLoaded
to check if relationship is loaded #12772 - Added an easy way to work with Phalcon and run the tests locally, using nanobox.io #13578
- Added response handler to
Phalcon\Mvc\Micro
,Phalcon\Mvc\Micro::setResponseHandler
, to allow use of a custom response handler. #12452 - Added two new events
response::beforeSendHeaders
andresponse::afterSendHeaders
toPhalcon\Http\Response
#10689 - Added a retainer for the current token to be used during the checkings, so when
Phalcon\Security::getToken
is called the token used for checkings don't change. #12392 - Added
Phalcon\Html\Tag
, a component that creates HTML elements. It will replacePhalcon\Tag
in a future version. This component does not use static method calls. #12392 - Added
Phalcon\Paginator\RepositoryInterface
for repository the current state ofpaginator
and also optional sets the aliases for properties repository #10985, #10957 - Added bind support to
Phalcon\Mvc\Model\Query\Builder
. The Query Builder has the same methods asPhalcon\Mvc\Model\Query
;getBindParams
,setBindParams
,getBindTypes
andsetBindTypes
. #13368 - Added
Phalcon\Html\Breadcrumbs
, a component that creates HTML code for breadcrumbs. #13680 - Added more methods to interfaces.
Phalcon\Cli\Router\RouteInterface
-delimiter
,getDelimiter
Phalcon\Cli\DispatcherInterface
-setOptions
,getOptions
Phalcon\Db\AdapterInterface
-fetchColumn
,insertAsDict
,updateAsDict
Phalcon\Db\DialectInterface
-registerCustomFunction
,getCustomFunctions
,getSqlExpression
Phalcon\Di\ServiceInterface
-getParameter
,isResolved
Phalcon\Events\ManagerInterface
-hasListeners
Phalcon\Mvc\Model\Query\BuilderInterface
-distinct
,getDistinct
,forUpdate
,offset
,getOffset
Phalcon\Mvc\Model\Transaction\ManagerInterface
-setDbService
,getDbService
,setRollbackPendent
,getRollbackPendent
Phalcon\Mvc\Model\CriteriaInterface
-distinct
,leftJoin
,innerJoin
,rightJoin
,groupBy
,having
,cache
,getColumns
,getGroupBy
,getHaving
,Phalcon\Mvc\Model\ManagerInterface
-isVisibleModelProperty
,keepSnapshots
,isKeepingSnapshots
,useDynamicUpdate
,isUsingDynamicUpdate
,addHasManyToMany
,existsHasManyToMany
,getRelationRecords
,getHasManyToMany
Phalcon\Mvc\Model\MessageInterface
-setModel
,getModel
,setCode
,getCode
Phalcon\Mvc\Model\QueryInterface
-getSingleResult
,setBindParams
,getBindParams
,setBindTypes
,setSharedLock
,getBindTypes
,getSql
Phalcon\Mvc\Model\RelationInterface
-getParams
Phalcon\Mvc\Model\ResultsetInterface
-setHydrateMode
,getHydrateMode
,getMessages
,update
,delete
,filter
Phalcon\Mvc\ModelInterface
-getModelsMetaData
Phalcon\Session\AdapterInterface
-setId
,status
Phalcon\Validation\MessageInteraface
-getCode
,setCode
Phalcon\CryptInterface
-setPadding
Phalcon\Mvc\RouterInterface
-attach
#12676
- Added
Phalcon\Container
, a proxy container class to thePhalcon\Di
implementing PSR-11 #12295 - Added
Phalcon\Acl\Adapter\Memory::getActiveKey
,Phalcon\Acl\Adapter\Memory::activeFunctionCustomArgumentsCount
andPhalcon\Acl\Adapter\Memory::getActiveFunction
to get latest key, number of custom arguments, and function used to acquire access #12547
- Now Phalcon requires the PSR PHP extension to be installed and enabled
- By configuring
prefix
andstatsKey
thePhalcon\Cache\Backend\Redis::queryKeys
no longer returns prefixed keys, now it returns original keys without prefix. #13656 - The
Phalcon\Mvc\Application
,Phalcon\Mvc\Micro
andPhalcon\Mvc\Router
now must have a URI to process #12380 - Response headers and cookies are no longer prematurely sent #12378
- You can no longer assign data to models whilst saving them #12317
- The
Phalcon\Mvc\Model\Manager::load
no longer reuses already initialized models #12317 - Changed
Phalcon\Db\Dialect\Postgresql::describeReferences
to generate correct SQL, added "on update" and "on delete" constraints 438 - Changed catch
Exception
toThrowable
#12288 - Changed
Phalcon\Mvc\Model\Query\Builder::addFrom
to remove third parameter$with
#13109 Phalcon\Forms\Form::clear
will no longer callPhalcon\Forms\Element::clear
, instead it will clear/set default value itself, andPhalcon\Forms\Element::clear
will now callPhalcon\Forms\Form::clear
if it's assigned to the form, otherwise it will just clear itself. #13500Phalcon\Forms\Form::getValue
will now also try to get the value by callingTag::getValue
or element'sgetDefault
method before returningnull
, andPhalcon\Forms\Element::getValue
callsTag::getDefault
only if it's not added to the form. #13500- Changed
Phalcon\Mvc\Model
to use thePhalcon\Messages\Message
object for its messages #13114 - Changed
Phalcon\Validation\*
to use thePhalcon\Messages\Message
object for its messages #13114 - Collections now use the Validation component #12376
- Made the
specialKey
(_PHCR
) optional for thePhalcon\Cache\Backend\Redis
adapter #10905, #11608 - Refactored
Phalcon\Db\Adapter\Pdo::query
to use PDO's prepare and execute.Phalcon\Db\Adapter::fetchAll
to use PDO's fetchAll #13515 - Fixed
\Phalcon\Http\Response::setFileToSend
filename last much _ #13496 - Changed
Phalcon\Tag::getTitle
. It returns only the text. It acceptsprepend
,append
booleans to prepend or append the relevant text to the title. #13547 - Changed
Phalcon\Di\Service
constructor to no longer takes the name of the service. #13590 - Changed
Phalon\Tag::textArea
to usehtmlspecialchars
to prevent XSS injection. #12428 - Changed
Phalon\Cache\Backend\*::get
to use only positive numbers forlifetime
11759 - Changed
Phalcon\Logger
to comply with PSR-3. The component has been rewritten to use adapters that alllow logging to different areas. The #13438 - Renamed
Phalcon\Assets\Resource
namespace toPhalcon\Assets\Asset
#12082 - Renamed
Phalcon\Assets\Resource
toPhalcon\Assets\Asset
#12082 - Renamed
Phalcon\Assets\ResourceInterface
toPhalcon\Assets\AssetInterface
#12082 - Renamed
Phalcon\Assets\Manager::addResource
toPhalcon\Assets\Manager::addAsset
#12082 - Renamed
Phalcon\Assets\Manager::addResourceByType
toPhalcon\Assets\Manager::addAssetByType
#12082 - Renamed
Phalcon\Assets\Manager::collectionResourcesByType
toPhalcon\Assets\Manager::collectionAssetsByType
#12082 - Changed
paginate
in the place ofgetPaginate
. Addedprevious
in the place ofbefore
. #13492 - Scope SQL Column Aliases (on nesting level), in
Phalcon\Mvc\Model\Query
, to prevent overwrite root query's_sqlColumnAliases
by sub-queries. #13006, #12548 and #1731 - CLI parameters now work like MVC parameters #12375
- Changed
Phalcon\Db\Dialect\Postgresql::addPrimaryKey
to make primary key constraints names unique by prefixing them with the table name. #12629 - Fixed
Phalcon\Mvc\Model\Query::_prepareSelect
overwriting columns with the same alias #13552 - Changed
Phalcon\Http\RequestInterface
to align withPhalcon\Http\Request
#13061 - Renamed
Phalcon\Acl\Resource
toPhalcon\Acl\Subject
#13639 - Renamed
Phalcon\Acl\ResourceInterface
toPhalcon\Acl\SubjectInterface
#13639 - Renamed
Phalcon\Acl\ResourceAware
toPhalcon\Acl\SubjectAware
#13639 - Renamed
Phalcon\Acl\Role
toPhalcon\Acl\Operation
#13639 - Renamed
Phalcon\Acl\RoleInterface
toPhalcon\Acl\OperationInterface
#13639 - Renamed
Phalcon\Acl\RoleAware
toPhalcon\Acl\OperationAware
#13639 - Renamed
Phalcon\Acl\AdapterInterface::addRole
toPhalcon\Acl\AdapterInterface::addOperation
#13639 - Renamed
Phalcon\Acl\AdapterInterface::isRole
toPhalcon\Acl\AdapterInterface::isOperation
#13639 - Renamed
Phalcon\Acl\AdapterInterface::isResource
toPhalcon\Acl\AdapterInterface::isSubject
#13639 - Renamed
Phalcon\Acl\AdapterInterface::addResource
toPhalcon\Acl\AdapterInterface::addSubject
#13639 - Renamed
Phalcon\Acl\AdapterInterface::addResourceAccess
toPhalcon\Acl\AdapterInterface::addSubjectAccess
#13639 - Renamed
Phalcon\Acl\AdapterInterface::dropResourceAccess
toPhalcon\Acl\AdapterInterface::dropSubjectAccess
#13639 - Renamed
Phalcon\Acl\AdapterInterface::getActiveRole
toPhalcon\Acl\AdapterInterface::getActiveOperation
#13639 - Renamed
Phalcon\Acl\AdapterInterface::getActiveResource
toPhalcon\Acl\AdapterInterface::getActiveSubject
#13639 - Renamed
Phalcon\Acl\AdapterInterface::getRoless
toPhalcon\Acl\AdapterInterface::getOperations
#13639 - Renamed
Phalcon\Acl\AdapterInterface::getResources
toPhalcon\Acl\AdapterInterface::getSubjects
#13639 - Renamed
Phalcon\Acl\Adapter::getActiveRole
toPhalcon\Acl\AdapterInterface::getActiveOperation
#13639 - Renamed
Phalcon\Acl\Adapter::getActiveResource
toPhalcon\Acl\AdapterInterface::getActiveSubject
#13639 - Renamed
Phalcon\Acl\Adapter\Memory::addRole
toPhalcon\Acl\Adapter\Memory::addOperation
#13639 - Renamed
Phalcon\Acl\Adapter\Memory::isRole
toPhalcon\Acl\Adapter\Memory::isOperation
#13639 - Renamed
Phalcon\Acl\Adapter\Memory::isResource
toPhalcon\Acl\Adapter\Memory::isSubject
#13639 - Renamed
Phalcon\Acl\Adapter\Memory::addResource
toPhalcon\Acl\Adapter\Memory::addSubject
#13639 - Renamed
Phalcon\Acl\Adapter\Memory::addResourceAccess
toPhalcon\Acl\Adapter\Memory::addSubjectAccess
#13639 - Renamed
Phalcon\Acl\Adapter\Memory::dropResourceAccess
toPhalcon\Acl\Adapter\Memory::dropSubjectAccess
#13639 - Renamed
Phalcon\Acl\Adapter\Memory::getRoless
toPhalcon\Acl\Adapter\Memory::getOperations
#13639 - Renamed
Phalcon\Acl\Adapter\Memory::getResources
toPhalcon\Acl\Adapter\Memory::getSubjects
#13639 - Changed
Phalcon\Http\Response::setHeaders
now merges the headers with any pre-existing ones in the internal collection #12836 - Changed
Phalcon\Di\FactoryDefault
to not load by default - Changed the
Phalcon\Session
namespace by refactoring the component.Phalcon\Session\Manager
is now the single component offering session manipulation by using adapters. Each adapter implements PHP'sSessionHandlerInterface
. Available adapters arePhalcon\Session\Adapter\Files
,Phalcon\Session\Adapter\Libmemcached
,Phalcon\Session\Adapter\Noop
andPhalcon\Session\Adapter\Redis
. #12833, #11341, #13535 - Fixed
Phalcon\Mvc\Models
magic method (setter) is fixed for arrays #13661 - Fixed
Phalcon\Mvc\Model::skipAttributes
andPhalcon\Mvc\Model::allowEmptyColumns
allowEmptyStrings & skipAttributes repsect the column mapping. #12975, #13477
- PHP < 7.2 no longer supported
- Removed
xcache
support from adapters #13628 - Removed
apc
support from adapters (useapcu
) #13628 - Removed
memcache
support from adapters (uselibmemcached
) #13628 - Removed deprecated
Phalcon\Annotations\Adapter\Apc
- Removed deprecated
Phalcon\Annotations\Adapter\Xcache
- Removed deprecated
Phalcon\Cache\Backend\Apc
- Removed deprecated
Phalcon\Cache\Backend\Memcache
- Removed deprecated
Phalcon\Cache\Backend\Xcache
- Removed deprecated
Phalcon\Cli\Console::addModules
- Removed deprecated
Phalcon\Debug::getMajorVersion
- Removed deprecated
Phalcon\Mvc\Model\Criteria::addWhere
- Removed deprecated
Phalcon\Mvc\Model\Criteria::order
- Removed deprecated
Phalcon\Mvc\Model\Metadata\Apc
- Removed deprecated
Phalcon\Mvc\Model\Metadata\Memcache
- Removed deprecated
Phalcon\Mvc\Model\Metadata\Xcache
- Removed deprecated
Phalcon\Mvc\View::getParams
- Removed deprecated
Phalcon\Mvc\ViewInterface::getParams
- Removed deprecated
Phalcon\Paginator\Adapter\Model::getPaginate
- Removed deprecated
Phalcon\Paginator\Adapter\Model - $before
- Removed deprecated
Phalcon\Paginator\Adapter\Model - $total_pages
- Removed deprecated
Phalcon\Paginator\Adapter\NativeArray::getPaginate
- Removed deprecated
Phalcon\Paginator\Adapter\NativeArray - $before
- Removed deprecated
Phalcon\Paginator\Adapter\NativeArray - $total_pages
- Removed deprecated
Phalcon\Paginator\Adapter\QueryBuilder::getPaginate
- Removed deprecated
Phalcon\Paginator\Adapter\QueryBuilder - $before
- Removed deprecated
Phalcon\Paginator\Adapter\QueryBuilder - $total_pages
- Removed deprecated
Phalcon\Security::hasLibreSsl
- Removed deprecated
Phalcon\Security::getSslVersionNumber
- Removed deprecated
Phalcon\Validation\Validator::isSetOption
- Removed
Phalcon\Cli\Console::addModules
in favor ofPhalcon\Cli\Console::registerModules
- Removed
Phalcon\Debug::getMajorVersion
due to the fact that we never use this method - Removed
Phalcon\Dispatcher::setModelBinding
in favor ofPhalcon\Dispatcher::setModelBinder
- Removed
Phalcon\Http\RequestInterface::isSecureRequest
in favor ofPhalcon\Http\RequestInterface::isSecure
- Removed
Phalcon\Http\RequestInterface::isSoapRequested
in favor ofPhalcon\Http\Request::isSoap
- Removed
Phalcon\Logger\Multiple
- Removed
Phalcon\Mvc\Collection::validationHasFailed
- Removed
Phalcon\Mvc\Model\Criteria::order
in favor ofPhalcon\Mvc\Model\Criteria::orderBy
- Removed
Phalcon\Mvc\Model\Validator\*
in favor ofPhalcon\Validation\Validator\*
- Removed
Phalcon\Mvc\Micro\Lazyloader::__call
in favor ofPhalcon\Mvc\Micro\Lazyloader::callMethod
- Removed
Phalcon\Model::reset
#12317 - Removed
Phalcon\Validation\Message
andPhalcon\Mvc\Model\Message
in favor ofPhalcon\Messages\Message
- Removed
Phalcon\Validation\MessageInterface
andPhalcon\Mvc\Model\MessageInterface
in favor ofPhalcon\Messages\MessageInterface
- Removed
Phalcon\Validation\Message
andPhalcon\Mvc\Model\Message
in favor ofPhalcon\Messages\Message
- Removed
Phalcon\Validation\Message\Group
in favor ofPhalcon\Messages\Messages
- Removed calling
Phalcon\Mvc\Collection::validate
with object of typePhalcon\Mvc\Model\ValidatorInterface