5.4.0 (2023-10-25)
- Changed
Phalcon\Mvc\Model::getMessages()
to also filter with an array of fields #16265 - Changed
Phalcon\DataMapper\Query\Select::columns()
to accept an array of columns (keys as aliases) instead offunc_get_args
#16451 - Changed
Phalcon\Html\Helper\AbstractSeries::__invoke()
to no longer clear the internal store when called #16441
- Added the ability to define interpolator characters for the
Phalcon\Logger\Formatter\Line
#16430 - Added
Phalcon\Html\Helper\AbstractSeries::reset()
to clear the internal store when needed #16441
- Model Annotation strategy did not work with empty_string #16426
- View::reset() sets content to null instead of default empty string #16437
- Fixed
Phalcon\Filter\Validation\Validator\Size\*
validators to correctly detect the size of uploaded files #16390
5.3.1 (2023-09-12)
- Fixed infinite save loop in
Phalcon\Mvc\Model::save()
#16395 - Fixed undefined column with columnMap and model caching #16420
- Fixed memory leak in
Phalcon\Mvc\Router::handle()
#16431
5.3.0 (2023-08-15)
- Refactored
Phalcon\Mvc\Model::doLowUpdate
andPhalcon\Mvc\Model::postSaveRelatedRecords
for better code logic and a clearer separation of behaviour, although it lead to partially repeated code. #16391 - Cleaned
Phalcon\Mvc\Model\Metadata::initialize
#16393
- Added
Phalcon\Mvc\Model::appendMessagedFrom
for code consistency and to add messages from another model #16391 - Added
Phalcon\Autoload\Loader::isRegistered
for debugging purposes #16391 - Added
Phalcon\Mvc\Model\Metadata::initializeMetadata
#16393 - Added
Phalcon\Mvc\Model\Metadata::getMetaDataUniqueKey
#16393 - Added
Phalcon\Mvc\Model\Metadata::getColumnMapUniqueKey
#16393 - Added
Phalcon\Encryption\Security\JWT\Builder::addHeader()
to allow adding custom headers #16396
- Parse multipart/form-data from PUT request #16271
- Set Dynamic Update by default system-wide #16343
- Fixed memory leak in Micro application #16404
5.3.1 (xxxx-xx-xx)
- Forced
routeId
inPhalcon\Mvc\Router\Route
to always return a string #16414
5.2.3 (2023-07-26)
- Added
getAdapter()
inPhalcon\Mvc\Model\Metadata
to retrieve the internal cache adapter if necessary. #16244 - Added
Phalcon\Storage\Adapter\Weak
implemented with WeakReference has a cache/retrieval solution for objects not yet collected by the Garbage Collection. #16372
- Tried to reproduce the behavior described in #16244 but had no success. #16244
- Extended
Phalcon\Di\Injectable
fromstdClass
to remove the deprecation warning (dynamic properties) for PHP 8.2 #16308 - Corrected the return type of
Phalcon\Mvc\View::getVar()
so that stubs can be accurate. #16276 - Changed all the
encode
/decode
methods for JSON to use thePhalcon\Support\Helper\Json\*
classes. #15608 - Changed the
Phalcon\Support\Helper\Json\*
classes to clear upjson_last_error()
before doing any conversions. #15608 - Fixed
Phalcon\Http\Request::getJsonRawBody
to protect from empty body #16373
5.2.2 (2023-06-18)
- Fixed
Encryption\Crypt::checkCipherHashIsAvailable
to allow proper setting of the hash #16314 - Removed
unlikely
fromif
statements from the Stream storage adapter and Json serializer #16339 - Fixed
Storage\Adapter\Stream::get()/set()
to correctly calculate the path if the prefix is present in the key #16348 - Fixed
Html\Helper\Input\Checkbox
to correctly process empty values #15959
5.2.1 (2023-02-28)
5.2.0 (2023-02-26)
- Added support for PHP 8.2 #15973
- Fixed
Phalcon\Html\Helper\Title::prepend
to correctly prepend text in subsequent calls #16283
5.1.4 (2023-01-10)
- Fixed
Phalcon\Acl\Adapter\Memory::isAllowed
to not use the deprecatedReflectionType::getClass
#16255
5.1.3 (2022-12-25)
- Fixed
Phalcon\Mvc\Micro::handle
to type check an object for thefinish
#16240 - Fixed
Phalcon\DI\Service::resolve
to not call theget()
from the container and cause an infinite loop #15032
5.1.2 (2022-10-30)
- Fixed
Phalcon\Support\Debug
to correctly calculate the documents URL for the hyperlinks #16223 - Fixed
Phalcon\Html\TagFactory
docblock for autocompletion (https://github.com/phalcon/cphalcon/commit/0129658f3ac468dcc5294d401403e166302a8069) - Fixed
Phalcon\Db\Profiler
by correctly calculating the seconds (reapplied changes) #15822 - Added
Phalcon\Html\TagFactory
to thePhalcon\Di\FactoryDefault\Cli
#16233
5.1.1 (2022-11-12)
- Fixed
Phalcon\Filter::sanitize
to return correct data whennoRecursive
istrue
#16199 - Fixed
Phalcon\Html\Escaper::html
to not returnnull
when a zero string is passed #16202
5.1.0 (2022-11-01)
- Added
Phalcon\Http\Request::getPatch()
to get a value from a PATCH request #16188 - Added
Phalcon\Http\Request::getFilteredPatch()
to get a value filtered from a PATCH request #16188 - Added
Phalcon\Http\Request::hasPatch()
to check if a value exist in a PATCH request #16188
- Fixed
Phalcon\Mvc\View\Engine\Volt\Compiler::isTagFactory
to correctly detect aTagFactory
object without throwing an error #16097 - Fixed default values for
Phalcon\Cli
,Phalcon\Dispatcher
andPhalcon\Application
components to ensure notnull
values are passed to methods #16186 - Fixed
Phalcon\Form::clear
to correctly clear the elements and not recurse #15956
5.0.5 (2022-10-24)
- Fixed
Phalcon\Config\Config::setData
to pass theinsensitive
flag to child objects #16171 - Fixed
Phalcon\Config\Adapter\Groupped::__construct
to pass theinsensitive
flag to child objects #16171 - Fixed
Phalcon\Session\Manager::setName
, removing the regex check for the name for custom adapters to work withcreate_sid()
#16170 - Fixed
PdoResult::fetchAll
when passed class name in 2nd argument #16177 - Fixed
Forms\Form::label
to accept an array as a default variable #16180
5.0.4 (2022-10-17)
- Fixed
Phalcon\Encryption\Security
to take into account theworkFactor
in the cost calculation #16153 - Removed double unserializing during Model caching #16035, #16131
- Fixed
Phalcon\Db\Adapter\Pdo\Mysql::describeIndexes
to assign an empty string in the index type ofnull
and remove warnings #16157 - Fixed
Phalcon\Db\Adapter\Pdo\Sqlite::describeIndexes
to assign an empty string in the index type ofnull
and remove warnings #16157 - Fixed
Phalcon\Mvc\Model\Manager::notifyEvent
to returntrue
instead ofnull
on success #16161 - Fixed
Phalcon\Encryption\Security\JWT\Validator::validateExpiration
to correctly validate theexp
claim #16166
5.0.3 (2022-10-06)
- Fixed
Phalcon\Filter\Sanitize\StringVal
to accept flags forhtmlspecialchars()
#16135
- Fixed
Phalcon\Html\Escaper::attributes()
to honor the$flags
set forhtmlspecialchars()
#16134
5.0.2 (2022-09-27)
- Fixed
Phalcon\Html\Escaper::attributes()
to accept any value and transform it to string #16123 - Fixed
Phalcon\Logger\AbstractLogger::getLevelNumber()
to better check for string levels #16123
5.0.1 (2022-09-23)
- Added
Phalcon\Encryption\Security\JWT\Validator::get()
andPhalcon\Encryption\Security\JWT\Validator::set()
for validation data #16115
- Fixed
Phalcon\Encryption\Security\JWT\Token\Token::validate()
to correctly call validator methods #16115
5.0.0 (2022-09-22)
- Changed
Phalcon\Logger\Adapter\Stream::process
to open the log file, check for locks, write contents and close the stream #16072 - Changed getters and setters from shorthand format to full methods #16102
- Changed return types to
array
inPhalcon\Annotations\Reflection
class methods #16106 - Changed
Phalcon\Html\Escaper::attributes()
to also accept an array of attributes #16108
- Added
Phalcon\Encryption\Security\JWT\Token::validate()
to validate a token's claims #16094 - Added
Phalcon\Encryption\Security\JWT\Token::verify()
to verify a token's signature #16094 - Added
Phalcon\Encryption\Security\JWT\Validator::getErrors()
to return any errors with the validation as an array #16094
- Fixed and improved return type of
object
&?object
#16023 - Fixed
Phalcon\Filter\Validation\Validator\Digit
to use only strings forctype_*
calls #16064 - Fixed
Phalcon\Flash\AbstractFlash::outputMessage
to return the message (implicitFlush) #16063 - Fixed
Phalcon\Filter\Validation\Validator\Numericality
to correctly detect illegal characters within string numbers #16070 - Fixed segmentation fault on Reflection of
Phalcon\Mvc\Model
class #16080 - Fixed segmentation fault on Reflection #16096
5.0.0rc4 (2022-08-08)
- Reverted to single quotes when volt code generates PHP code.
- Any
tag
helpers only accept parameters with double quotes - Renamed
Phalcon\Tag::form()
toPhalcon\Tag::formLegacy
(helperform_legacy
) #16019 - Fixed
Phalcon\Cli\Router::getMatchedRoute()
Phalcon\Cli\RouterInterface::getMatchedRoute()
Phalcon\Mvc\Router::getMatchedRoute()
Phalcon\Mvc\RouterInterface::getMatchedRoute()
to returnRouterInterface
ornull
#16030
- Fixed
Phalcon/Storage/Serializer/Base64::unserialize()
Phalcon/Storage/Serializer/Igbinary::unserialize()
Phalcon/Storage/Serializer/Igbinary::serialize()
Phalcon/Storage/Serializer/Php::unserialize()
to reset isSuccess value #16040
- Fixed
Phalcon\Paginator\Adapter\Model::paginate()
fix group parameter breaking total items #16042 - Fixed
Phalcon\Mvc\Model::doLowUpdate()
prevent RawValue getting overwritten #16037 - Refactored
Phalcon\Image\*
- Reorganized code in the image adapters
- Simplified various areas, speeding up processing
- Removed
getInternalImImage()
(same asgetImage()
) forPhalcon\Image\Adapter\Imagick
- Added better support for webm images #15977
5.0.0rc3 (2022-07-12)
- Added support for
webp
images forPhalcon\Image\Adapter\Gd
#15977 - Added
Phalcon\Mvc\Model\ManagerInterface::getBuilder()
to return the existing builder (created bycreateBuilder()
) #15966 - Added
Phalcon\Mvc\Model\Manager::getBuilder()
to return the existing builder (created bycreateBuilder()
) #15966
- Fixed
Phalcon\Tag::textArea()
to check if the value isnull
before callinghtmlspecialchars
#15992 - Fixed
Phalcon/Filter/Validation/Validator/Alnum
Phalcon/Filter/Validation/Validator/Alpha
Phalcon/Filter/Validation/Validator/Confirmation
Phalcon/Filter/Validation/Validator/CreditCard
Phalcon/Filter/Validation/Validator/StringLength/Max
Phalcon/Filter/Validation/Validator/StringLength/Min
to check if the value isnull
before calling internal PHP methods #15992
- Fixed
Phalcon\Html\Helper\Title
to properly use indent and delimiter #15984 - Fixed
Phalcon\Html\Helper\Doctype
to properly use indent and delimiter #15984 - Fixed
Phalcon\Mvc\View\Engine\Volt::isIncluded()
andPhalcon\Mvc\View\Engine\Volt::length()
to check for null values before calls to php methods #15984 - Fixed
Phalcon\Mvc\View\Engine\Volt\Compiler::expression()
to use double quotes instead of single ones #15984 - Fixed
Phalcon\Support\Version::getPart()
to always return string values #15984 - Fixed
Phalcon\Dispatcher\DispatcherInterface::setModuleName()
to acceptnull
#15997 - Fixed
Phalcon\Dispatcher\AbstractDispatcher::setModuleName()
to acceptnull
#15997 - Fixed
Phalcon\Dispatcher\AbstractDispatcher::getModuleName()
to also returnnull
#15997
5.0.0rc2 (2022-06-09)
- Changed the
StringVal
filter to now usehtmlspecialchars()
#15978
- Added
StringValLegacy
filter usingfilter_var()
for PHP < 8.1 #15978
- Fixed
Phalcon\Http\Response::getQualityHeader()
to check if the server variable isnull
before performingpreg_split
#15984
5.0.0rc1 (2022-05-31)
- Changed
Phalcon\Session\Bag::__construct()
to accept aPhalcon\Session\Manager
as the first parameter andname
as the second one #15904 - Changed
Phalcon\Logger\Logger
to no longer depend on PSR interfaces #15925 - Changed
Phalcon\Cache\Cache
to no longer depend on PSR interfaces #15927 - Changed
Phalcon\Html\Link
to no longer depend on PSR interfaces #15930
- Added
Phalcon\Encryption\Crypt::isValidDecryptLength($input)
to allow checking for the length of the decryption string #15879 - Added
Phalcon\Di\InitializationAwareInterface
to allow auto calling theinitialize
method when accessing service through DIC #15916 - Added
Phalcon\Storage\Serializer\MemcachedIgbinary
Phalcon\Storage\Serializer\MemcachedJson
Phalcon\Storage\Serializer\MemcachedPhp
Phalcon\Storage\Serializer\RedisIgbinary
Phalcon\Storage\Serializer\RedisJson
Phalcon\Storage\Serializer\RedisMsgpack
Phalcon\Storage\Serializer\RedisNone
Phalcon\Storage\Serializer\RedisPhp
to be used if adapter serialization is required #15904
- Added
Phalcon\Logger\LoggerInterface
Phalcon\Logger\AbstractLogger
to be used in the logger class but also the proxy-psr3 repo #15925
- Added
Phalcon\Cache\CacheInterface
Phalcon\Cache\AbstractCache
to be used in the cache class but also the proxy-psr16 repo #15927
- Added
- EvolvableLinkInterface.zep
Phalcon\Html\Link\Interfaces\EvolvableLinkProviderInterface
Phalcon\Html\Link\Interfaces\LinkInterface
Phalcon\Html\Link\Interfaces\LinkProviderInterface
Phalcon\Html\Link\AbstractLink
Phalcon\Html\Link\AbstractLinkProvider
to be used in the link class but also the proxy-psr13 repo #15930
- Added
Phalcon\Translate\Adapter\Csv::toArray()
andPhalcon\Translate\Adapter\NativeArray::toArray()
to return the translation array back #15902
- Fixed
Phalcon\Html\Helper\Input\Numeric
to produce correct elements #15896 - Fixed
Phalcon\Storage\Adapter\*
to correctly storenull
values #15904
- Removed
Phalcon\Container\Container
and moved its contents to theproxy-psr11
repo #15928 - Removed
Phalcon\Http\Message\*
andPhalcon\Http\Server\*
classes. This removes PSR from Phalcon. PSR-7 available in v6 #15929
5.0.0beta3 (2022-02-06)
- Renamed
Phalcon\Db\Result\Pdo
toPhalcon\Db\Result\PdoResult
to avoid collisions with\PDO
#15874 - Moved
Phalcon\Validation
toPhalcon\Filter\Validation
- Added
Phalcon\Html\Helper\Title:setSeparator
to allow setting the separator independently #15866
- Fixed
Phalcon\Logger\AbstractAdapter::getFormattedItem()
to not addPHP_EOL
at the end of the message and added it to thePhalcon\Logger\Adapter\Stream
#14547 - Fixed
Phalcon\Html\Helper\Title:__invoke()
to not use the$separator
as parameter - no need to redefine it in a view #15866 - Fixed the delimiters for
Phalcon\Support\Helper\SnakeCase
andPhalcon\Support\Helper\KamelCase
#15850 - Fixed
Phalcon\Mvc\Router\Route::getName()
andPhalcon\Mvc\Router\Route::getHostname()
to also returnnull
#15880 - Fixed
Phalcon\Mvc\Router\RouteInterface::getName()
andPhalcon\Mvc\Router\RouteInterface::getHostname()
to also returnnull
#15880 - Fixed
Phalcon\Mvc\Model::findFirst()
to returnmixed
ornull
#15883 - Fixed
Phalcon\Mvc\Model::belongsTo()
parameteroptions
array by default #15971 - Fixed
Phalcon\Mvc\Model::hasMany()
parameteroptions
array by default #15971 - Fixed
Phalcon\Mvc\Model::hasOne()
parameteroptions
array by default #15971 - Fixed
Phalcon\Mvc\Model::hasOneThrough()
parameteroptions
array by default #15971 - Fixed
Phalcon\Mvc\Model\Manager::addHasMany()
parameteroptions
array by default #15971 - Fixed
Phalcon\Mvc\Model\Manager::addHasManyToMany()
parameteroptions
array by default #15971 - Fixed
Phalcon\Mvc\Model\Manager::addHasOne()
parameteroptions
array by default #15971 - Fixed
Phalcon\Mvc\Model\Manager::addHasOneThrough()
parameteroptions
array by default #15971 - Fixed
Phalcon\Mvc\Model\Manager::addBelongsTo()
parameteroptions
array by default #15971
5.0.0beta2 (2022-01-06)
- Added
Phalcon\Support\Helper\Str\KebabCase
,Phalcon\Support\Helper\Str\PascalCase
andPhalcon\Support\Helper\Str\SnakeCase
helpers #15850
Phalcon\Mvc\View\Engine\Volt\Compiler::functionCall()
to check for container presence before checking thetag
service #15842Phalcon\Di\FactoryDefault()
to setassets
andtag
as shared services #15847Phalcon\Forms\Element\AbstractElement::getLocalTagFactory()
to return the tagFactory from itself, the form, the DI or a new instance #15847- Changed references to
sha1
withhash("sha256", $data)
to ensure that there are no collisions from the hashing algorithm #15844 - Changed
Phalcon\Support\Helper\Str\Camelize
to accept a third boolean parameter indicating whether the result will have the first letter capitalized or not #15850
5.0.0beta1 (2021-12-24)
- Marked as deprecated:
Phalcon\Mvc\Model::existsBelongsTo()
Phalcon\Mvc\Model::existsHasMany()
Phalcon\Mvc\Model::existsHasOne()
Phalcon\Mvc\Model::existsHasOneThrough()
Phalcon\Mvc\Model::existsHasManyToMany()
Phalcon\Translate\Adapter\Csv::exists()
Phalcon\Translate\Adapter\Gettext::exists()
Phalcon\Translate\Adapter\NativeArray::exists()
#15785
- Moved
Phalcon\Container
toPhalcon\Container\Container
#15796 - Changed the
Phalcon\Support\Collection::get()
to return the default value if the key does not exist or the value isnull
to mirror the behavior of v3. #15370 - Moved
Phalcon\Registry
toPhalcon\Support\Registry
#15802 - Moved
Phalcon\Url
toPhalcon\Mvc\Url
#15798 - Moved
Phalcon\Loader
toPhalcon\Autoload\Loader
#15797 - Changes to
Phalcon\Autoload\Loader
:- Renamed
registerClasses()
tosetClasses()
- Renamed
registerDirectories()
tosetDirectories()
- Renamed
registerExtensions()
tosetExtensions()
- Renamed
registerFiles()
tosetFiles()
- Renamed
registerNamespaces()
tosetNamespaces()
#15797
- Renamed
- Moved
Phalcon\Di
toPhalcon\Di\Di
#15799 - Removed references to
Phalcon\Tag
from the framework in favor ofPhalcon\Html\TagFactory
#15801 Phalcon\Forms\Form
requires aPhalcon\Html\TagFactory
to be set before it can render elements #15801Phalcon\Di\FactoryDefault
will now return aPhalcon\Html\TagFactory
for thetag
service #15801
- Added:
Phalcon\Mvc\Model::hasBelongsTo()
Phalcon\Mvc\Model::hasHasMany()
Phalcon\Mvc\Model::hasHasOne()
Phalcon\Mvc\Model::hasHasOneThrough()
Phalcon\Mvc\Model::hasHasManyToMany()
Phalcon\Translate\Adapter\Csv::has()
Phalcon\Translate\Adapter\Gettext::has()
Phalcon\Translate\Adapter\NativeArray::has()
#15785
- Added
filter
,camelize
,dynamic
anduncamelize
inPhalcon\Support\HelperFactory
#15805 - Added
Phalcon\Autoload\Loader::getDebug()
to collect debugging information from the loader (enabled from the constructor) #15797
Phalcon\Logger\LoggerFactory::load()
to correctly use the key of the adapters array as the name of the adapter #15831- Fixed
Phalcon\Dispatcher\Dispatcher::setParams()
not updating local params duringdispatch()
loop #15603 - Fixed related records auto-save with
belongsTo()
relation #15148
- Removed
Phalcon\Exception
; replaced by\Exception
#15800
5.0.0alpha7 (2021-11-16)
- Changes to the
Phalcon\Acl
:- Renamed
Phalcon\Acl\ComponentAware
toPhalcon\Acl\ComponentAwareInterface
- Renamed
Phalcon\Acl\RoleAware
toPhalcon\Acl\RoleAwareInterface
#15691
- Renamed
- Changed
require
torequire_once
inPhalcon\Loader
to avoid conflicts with other loaders #15489 - Changed
require
torequire_once
inPhalcon\Cli\Console
andPhalcon\Mvc\Application
for a bit of extra performance #15489 Phalcon\Collection
has been moved under theSupport
namespace:- Renamed
Phalcon\Collection
toPhalcon\Support\Collection
- Renamed
Phalcon\Collection\Exception
toPhalcon\Support\Collection\Exception
- Renamed
Phalcon\Collection\ReadOnly
toPhalcon\Support\Collection\ReadOnly
- Renamed
Phalcon\Collection
toPhalcon\Support\Collection
#15700
- Renamed
- Changes to
Phalcon\Session\Bag
:- Changed
Phalcon\Session\Bag::construct
to accept a container instead of internally calling the default - Changed
Phalcon\Session\Bag::construct
to throw an exception if the container is not specified - Changed
Phalcon\Session\Bag::init
to store the data in the session #15494
- Changed
- Changed
Phalcon\Events\Event::construct()
to allowsource
to be nullable #15133 - Changes to
Phalcon\Crypt
- Moved
Phalcon\Crypt\Exception
toPhalcon\Crypt\Exception\Exception
- Moved
Phalcon\Crypt\Mismatch
toPhalcon\Crypt\Exception\Mismatch
- Changed the ccm/gcm modes to store the
authTag
with the encryption string and process it with the decryption string #15717
- Moved
- Created new namespace
Phalcon\Encryption
- Moved
Phalcon\Crypt
toPhalcon\Encryption\Crypt
- Moved
Phalcon\Security
toPhalcon\Encryption\Security
- Moved the whole
Security
namespace underEncryption
Security\JWT\Exceptions\UnsupportedAlgorithmException
toEncryption\Security\JWT\Exceptions\UnsupportedAlgorithmException
Security\JWT\Exceptions\ValidatorException
toEncryption\Security\JWT\Exceptions\ValidatorException
Security\JWT\Signer\AbstractSigner
toEncryption\Security\JWT\Signer\AbstractSigner
Security\JWT\Signer\Hmac
toEncryption\Security\JWT\Signer\Hmac
Security\JWT\Signer\None
toEncryption\Security\JWT\Signer\None
Security\JWT\Signer\SignerInterface
toEncryption\Security\JWT\Signer\SignerInterface
Security\JWT\Token\AbstractItem
toEncryption\Security\JWT\Token\AbstractItem
Security\JWT\Token\Enum
toEncryption\Security\JWT\Token\Enum
Security\JWT\Token\Item
toEncryption\Security\JWT\Token\Item
Security\JWT\Token\Parser
toEncryption\Security\JWT\Token\Parser
Security\JWT\Token\Signature
toEncryption\Security\JWT\Token\Signature
Security\JWT\Token\Token
toEncryption\Security\JWT\Token\Token
Security\JWT\Builder
toEncryption\Security\JWT\Builder
Security\JWT\Validator
toEncryption\Security\JWT\Validator
Security\JWT\Validator
toEncryption\Security\JWT\Validator
Security\Exception
toEncryption\Security\Exception
Security\Random
toEncryption\Security\Random
#15729
- Moved
- Renamed
Phalcon\Crypt\Crypt::getHashAlgo()
toPhalcon\Crypt\Crypt::getHashAlgorithm()
Phalcon\Crypt\Crypt::getAvailableHashAlgos()
toPhalcon\Crypt\Crypt::getAvailableHashAlgorithms()
Phalcon\Crypt\Crypt::setHashAlgo()
toPhalcon\Crypt\Crypt::setHashAlgorithm()
#15717
- Renamed
Phalcon\Factory\AdapterFactory::getAdapters()
toPhalcon\Factory\AdapterFactory::getServices()
#15717 - Changed
Phalcon\Crypt\Crypt::__construct()
to haveuseSigning
set totrue
by default #15717 - Changes to
Phalcon\Config
- Moved
Phalcon\Config
toPhalcon\Config\Config
- Changed
Phalcon\Config\Config::path
by making thedelimiter
parameter astring
- Changed
Phalcon\Config\Adapter\Ini::__construct
to not acceptnull
as the mode. The default is nowINI_SCANNER_NORMAL
(2) - Refactored the code for more efficiency and speed #15720
- Moved
- Changed
Phalcon\Db\Adapter\AdapterInterface::getInternalHandler()
andPhalcon\Db\Adapter\Pdo\AbstractPdo::getInternalHandler()
to returnvar
instead of\PDO
for custom adapters with different engines #15119 - Moved
Phalcon\Filter
toPhalcon\Filter\Filter
; added more tests #15726 - Changed
Phalcon\Mvc\Model::getPreparedQuery()
to returnQueryInterface
instead ofQuery
#15562 - Moved
Phalcon\Cache
toPhalcon\Cache\Cache
#15728 - Changed
Phalcon\Factory\AdapterFactory
to define the factory exception ingetExceptionClass()
instead of a property. #15728 - Renamed
Phalcon\Db\Adapter\AbstractAdapter::getSqlVariables()
toPhalcon\Db\Adapter\AbstractAdapter::getSQLVariables()
to align with the rest of thegetSQL*
methods #15637 - Moved
Phalcon\Logger
toPhalcon\Logger\Logger
#15727 - Changes to
Phalcon\Escaper
- Moved
Phalcon\Escaper
toPhalcon\Html\Escaper
- Moved
Phalcon\Escaper\EscaperInterface
toPhalcon\Html\Escaper\EscaperInterface
- Moved
Phalcon\Escaper\Exception
toPhalcon\Html\Escaper\Exception
- Deprecated methods (to be removed at a future version)
escapeCss()
becomescss()
escapeJs()
, becomesjs()
escapeHtml()
becomeshtml()
escapeHtmlAttr()
becomesattributes()
escapeUrl()
becomesurl()
setHtmlQuoteType()
becomessetFlags()
#15757
- Moved
- Changed
Phalcon\Encryption\Security::hash()
to also usepassword_hash()
and acceptARGON2*
algorithms #15731 - Removed uncamelize of
realClassName
inPhalcon\Mvc\Router\Route::getRoutePaths()
if definition is string to make processing same as if array definition #15067 - Changed
Phalcon\Validation::getValue()
behavior to get value fromdata
if not found inentity
. #14203 - Changed
Phalcon\Forms\Form::isValid()
signature: addedwhitelist
argument. #14203 - Changed
Phalcon\Support\Collection\ReadOnly
toPhalcon\Support\Collection\ReadOnlyCollection
to avoid conflicts with the read-only feature in PHP 8.1 #15767 - Removed
Phalcon\Text
- replaced byPhalcon\Support\Helper\Str\*
#15776 - Removed
Phalcon\Helper\Arr
- replaced byPhalcon\Support\Helper\Arr\*
#15776 - Removed
Phalcon\Helper\File
- replaced byPhalcon\Support\Helper\File\*
#15776 - Removed
Phalcon\Helper\Json
- replaced byPhalcon\Support\Helper\Json\*
#15776 - Removed
Phalcon\Helper\Number
- replaced byPhalcon\Support\Helper\Number\*
#15776 - Removed
Phalcon\Helper\Str
- replaced byPhalcon\Support\Helper\Str\*
#15776 - Removed references to
Phalcon\Text
,Phacon\Helper\*
from the code replacing it withPhalcon\Support\Helper\*
#15776 - Synchronized tests with
phalcon/phalcon
thus increasing coverage #15776 - Changed
Phalcon\Assets\Manager
to require aPhalcon\Html\TagFactory
in its constructor #15776
- Added more tests in the suite for additional code coverage #15691
- Added
Phalcon\Events\AbstractEventsAware
class to handle the Events Manager when necessary #15691 - Added
Phalcon\Acl\Adapter\AdapterInterface::getInheritedRoles()
andPhalcon\Acl\Adapter\Memory::getInheritedRoles()
that returns the inherited roles based on a passed role name (or all if no parameter supplied) #15154 - Changes to
Phalcon\Crypt
- Added
Phalcon\Crypt\Padding\PadInteface
and padding adaptersPhalcon\Crypt\Padding\Ansi
Phalcon\Crypt\Padding\Iso10126
Phalcon\Crypt\Padding\IsoIek
Phalcon\Crypt\Padding\Noop
Phalcon\Crypt\Padding\PadInterface
Phalcon\Crypt\Padding\Pkcs7
Phalcon\Crypt\Padding\Space
Phalcon\Crypt\Padding\Zero
- Added
Phalcon\Crypt\PadFactory
to easily create padding adapters - Added more tests increasing coverage #15717
- Added
- Added
Phalcon\Cache\Adapter\*::setForever()
andPhalcon\Storage\Adapter\*::setForever()
to allow storing a key forever #15485 - Added
Phalcon\Encryption\Security::getHashInformation()
to return information for a hash #15731 - Added constants
Phalcon\Encryption\Security::CRYPT_ARGON2I
andPhalcon\Encryption\Security::CRYPT_ARGON2ID
#15731 - Added
allowEmpty
checks to common validators #15515 - Added
Phalcon\Forms\Form::getFilteredValue()
to get filtered value without providing entity #15438 - Added
Phalcon\Forms\Form::setWhitelist()
andPhalcon\Forms\Form::getWhitelist()
#14203 - Added
dirtyState
serialization inPhalcon\Mvc\Model
#15571 - Added short versions of helpers for
Phalcon\Html\TagFactory
(call service as a method) #15776 - Added short versions of helpers for
Phalcon\Support\HelperFactory
(call service as a method) #15776 - Added
Phalcon\Html\Helper\Doctype
helper fordoctype
generation #15776 - Added
style
orlink
tag option forPhalcon\Html\Helper\Style
#15776
- Fixed
Query::getExpression()
return type #15553 - Fixed
Phalcon\Mvc\Model::getRelated()
to correctly return relationships (cached or not) when the foreign key has changed #15649 - Fixed
Phalcon\Db\Adapter\Pdo\*
,Phalcon\Mvc\Model
andPhalcon\Mvc\Model\MetaData\Strategy\Annotations
to treatBIGINT
numbers as string #15632 - Fixed
Phalcon\Crypt\Crypt::decrypt()
to correctly calculate the hash when using signed mode #15717 - Fixed
Phalcon\Mvc\Model\Manager::isVisibleModelProperty()
to correctly check if setting property is visible #15276 - Fixed
Phalcon\Config\Config::merge
to retain numeric indexes in deep merges #14705 - Fixed globals (Zephir change) to correctly display string values for global settings in
phpinfo()
#15269 - Fixed
Phalcon\Storage\Adapter\Redis::getAdapter()
andPhalcon\Cache\Adapter\Redis::getAdapter()
to accept the connection timeout in the constructoroptions
#15744 - Fixed
Phalcon\Db\Adapter\AbstractAdapter::getSQLVariables()
to return an empty array when initialized #15637 - Fixed
Phalcon\Cache\Adapter\*
andPhalcon\Storage\Adapter\*
to delete a key whenset()
is called with a zero or negative TTL #15485 - Fixed
Phalcon\Db\Adapter\Pdo\Mysql
to not usePDO::ATTR_EMULATE_PREPARES
andPDO::ATTR_STRINGIFY_FETCHES
by default. This allows numbers to be returned with resultsets instead of strings for numeric fields #15361 - Fixed
Phalcon\Validation\Validator\File
to usemessageFileEmpty
#14928 - Fixed
Phalcon\Db\RawValue
usage bugs inPhalcon\Mvc\Model::doLowUpdate()
#15413 - Fixed
type
attribute for stylesheet links #15776 - Fixed
Phalcon\Debug
to not throw an exception if a URL service is not present #15381
- Removed
Phalcon\Kernel
- obsolete #15776
5.0.0alpha6 (2021-09-16)
- Adjusted the constructor for
Phalcon\Storage\Adapter\*
andPhalcon\Cache\Adapter\*
to allow an empty key prefix to be set if needed. #15480 - Changed:
Phalcon\Db\Adapter\AdapterInterface:lastInsertId()
to be identical asPdo:lastInsertId()
Phalcon\Db\Adapter\AdapterInterface:close()
now returnsvoid
instead ofbool
Phalcon\Db\Adapter\AdapterInterface:connect()
now returnsvoid
instead ofbool
and 1st argument default value is emptyarray
instead ofnull
#15659
- Added
Phalcon\Security\JWT\Builder::addClaim
for custom JWT claims. #15656 - Added
Phalcon\Support\Helper
namespace:- Added
Phalcon\Support\HelperFactory
, a handy factory to help with string, array and other manipulations - Added
helper
service inPhalon\Di\FactoryDefault
andPhalcon\Di\FactoryDefault\Cli
to point to thePhalcon\Support\HelperFactory
- Added array manipulation classes:
Phalcon\Support\Helper\Arr\Blacklist
Phalcon\Support\Helper\Arr\Chunk
Phalcon\Support\Helper\Arr\First
Phalcon\Support\Helper\Arr\FirstKey
Phalcon\Support\Helper\Arr\Flatten
Phalcon\Support\Helper\Arr\Get
Phalcon\Support\Helper\Arr\Group
Phalcon\Support\Helper\Arr\Has
Phalcon\Support\Helper\Arr\IsUnique
Phalcon\Support\Helper\Arr\Last
Phalcon\Support\Helper\Arr\LastKey
Phalcon\Support\Helper\Arr\Order
Phalcon\Support\Helper\Arr\Pluck
Phalcon\Support\Helper\Arr\Set
Phalcon\Support\Helper\Arr\SliceLeft
Phalcon\Support\Helper\Arr\SliceRight
Phalcon\Support\Helper\Arr\Split
Phalcon\Support\Helper\Arr\ToObject
Phalcon\Support\Helper\Arr\ValidateAll
Phalcon\Support\Helper\Arr\ValidateAny
Phalcon\Support\Helper\Arr\Whitelist
- Added file manipulation classes:
Phalcon\Support\Helper\File\Basename
- Added JSON manipulation classes:
Phalcon\Support\Helper\Json\Encode
Phalcon\Support\Helper\Json\Decode
- Added number manipulation classes:
Phalcon\Support\Helper\Number\IsBetween
- Added array manipulation classes:
Phalcon\Support\Helper\Str\Camelize
Phalcon\Support\Helper\Str\Concat
Phalcon\Support\Helper\Str\CountVowels
Phalcon\Support\Helper\Str\Decapitalize
Phalcon\Support\Helper\Str\Decrement
Phalcon\Support\Helper\Str\DirFromFile
Phalcon\Support\Helper\Str\DirSeparator
Phalcon\Support\Helper\Str\Dynamic
Phalcon\Support\Helper\Str\EndsWith
Phalcon\Support\Helper\Str\FirstBetween
Phalcon\Support\Helper\Str\Friendly
Phalcon\Support\Helper\Str\Humanize
Phalcon\Support\Helper\Str\Includes
Phalcon\Support\Helper\Str\Increment
Phalcon\Support\Helper\Str\Interpolate
Phalcon\Support\Helper\Str\IsAnagram
Phalcon\Support\Helper\Str\IsLower
Phalcon\Support\Helper\Str\IsPalindrome
Phalcon\Support\Helper\Str\IsUpper
Phalcon\Support\Helper\Str\Len
Phalcon\Support\Helper\Str\Lower
Phalcon\Support\Helper\Str\Prefix
Phalcon\Support\Helper\Str\Random
Phalcon\Support\Helper\Str\ReduceSlashes
Phalcon\Support\Helper\Str\StartsWith
Phalcon\Support\Helper\Str\Suffix
Phalcon\Support\Helper\Str\Ucwords
Phalcon\Support\Helper\Str\Uncamelize
Phalcon\Support\Helper\Str\Underscore
Phalcon\Support\Helper\Str\Upper
#15738
- Added
5.0.0alpha5 (2021-09-09)
- Merged all architectures (
build/phalcon/32bits
,build/phalcon/64bits
andbuild/phalcon/safe
) into single universal insidebuild/phalcon
#15647
- Fixed C code in
build/
directory #15647
5.0.0alpha4 (2021-09-05)
- Changed
composer.json
to use PSR 1.1.x #15504 - Changed
Phalcon\Di\Injectable:getDI()
to set default DI when no DI is set #15629
- Added
Phalcon\Flash\Direct::setCssIconClasses
andPhalcon\Flash\Session::setCssIconClasses
to allow setting icons in the flash messages (bootstrap related) #15292 - Added
Phalcon\Http\Message\RequestMethodInterface
andPhalcon\Http\Message\ResponseStatusCodeInterface
that contain constants to be used for any HTTP implementations (see PHP-FIG) #15615
- Fixed
Phalcon\Container
interface to abide withPsr\Container\ContainerInterface
after the upgrade to PSR 1.1.x #15504 - Fixed
Phalcon\Forms\Form
when no entity is passed with isValid(), it uses the entity set in the form #15567 - Fixed
Phalcon\Logger\Adapter\*
to not allow serialization of the object. Added an exception when destroying the object while in transaction mode #15638
5.0.0alpha3 (2021-06-30)
- Changed version format to allow alpha/beta/RC releases on PECL.
- Changed:
Phalcon\Mvc\Model\Resultset\Complex::__construct
now acceptsPsr\SimpleCache\CacheInterface
for the cachePhalcon\Mvc\Model\Resultset\Simple::__construct
now acceptsPsr\SimpleCache\CacheInterface
for the cachePhalcon\Mvc\Model\Resultset::__construct
now acceptsPsr\SimpleCache\CacheInterface
for the cachePhalcon\Mvc\Model\Resultset::getCache
now returnsPsr\SimpleCache\CacheInterface
#15471
- Changed
Phalcon\Db\Adapter\AbstractAdapter:delete()
signature of optional parameters. #15363 - Changed
bindCounts
argument to array type in:Phalcon\Db\Dialect:getColumnList()
Phalcon\Db\Dialect:getSqlColumn()
Phalcon\Db\Dialect:getSqlExpression()
Phalcon\Db\Dialect:getSqlExpressionBinaryOperations()
Phalcon\Db\Dialect:getSqlExpressionCase()
Phalcon\Db\Dialect:getSqlExpressionCastValue()
Phalcon\Db\Dialect:getSqlExpressionConvertValue()
Phalcon\Db\Dialect:getSqlExpressionFunctionCall()
Phalcon\Db\Dialect:getSqlExpressionGroupBy()
Phalcon\Db\Dialect:getSqlExpressionHaving()
Phalcon\Db\Dialect:getSqlExpressionJoins()
Phalcon\Db\Dialect:getSqlExpressionLimit()
Phalcon\Db\Dialect:getSqlExpressionList()
Phalcon\Db\Dialect:getSqlExpressionObject()
Phalcon\Db\Dialect:getSqlExpressionOrderBy()
Phalcon\Db\Dialect:getSqlExpressionScalar()
Phalcon\Db\Dialect:getSqlExpressionUnaryOperations()
Phalcon\Db\Dialect:getSqlExpressionWhere()
Phalcon\Db\DialectInterface:getSqlExpression()
- Fixed
Phalcon\Db\Adapter\AbstractAdapter:delete()
whenbindTypes
argument is passed. #15363 - Fixed
Phalcon\Storage\Adapter\Redis::getAdapter
to use passedconnectionTimeout
,retryInterval
andreadTimeout
options for the connection #15484 - Fixed
Phalcon\Mvc\View\Engine\Volt\Compiler
for a use case when a block will return null vs an array forstatementList
in PHP 8 #15556
5.0.0-alpha.2 (2021-05-05)
- Changed
Phalcon\Translate\Adapter\Gettext::setLocale
signature to allow the category and an array of locales #14764 Phalcon\Version
is now moved toPhalcon\Support\Version
_getSpecialVersion
and_getVersion
have been removed (marked deprecated in v4)- The class is no longer static; it has to be instantiated first
- References to
Phalcon\Debug
and the Volt compiler have been adjusted #15422
Phalcon\Debug
is now moved toPhalcon\Support\Debug
; CSS/JS references updated #14817- Changed the logging names types to uppercase #15375
- Changes to the
Phalcon\Logger
:- Renamed
Phalcon\Logger\Item::getName
toPhalcon\Logger\Item::getLevelName
- Renamed
Phalcon\Logger\Item::getType
toPhalcon\Logger\Item::getLevel
- Changed the logger timestamp to be
DateTimeImmutable
on a per item basis - more accurate timing - Changed
Phalcon\Logger
to accept aDateTimeZone
in the constructor - Changed placeholder
%type%
to%level%
to align with the variables #15411
- Renamed
- Changed
Phalcon\Mvc\Model::getSchema()
,Phalcon\Mvc\ModelInterface::getSchema()
,Phalcon\Mvc\Model\Manager::getModelSchema()
Phalcon\Mvc\Model\ManagerInterface::getModelSchema()
to returnstring | null
so as to abide with the latest Zephir #15411 - Changed the interpolation for the formatters to use the
Phalcon\Support\Helper\Str\Interpolate
#15411 - Changed the exceptions thrown from factories to be more specific to their namespaces vs. the Factory generic one #15411
- Changed
Phalcon\Mvc\Model\ManagerInterface:getRelationByAlias()
return type fromRelation|bool
toRelationInterface|bool
#15343 - Changed
Phalcon\Paginator\Repository:getItems()
return type fromarray
toResultsetInterface
#15074
- Added
BINARY
andVARBINARY
support for Phalcon\Db\Adapter\Mysql #14927 - Added
Phalcon\Db\Profiler\Item::getTotalElapsedNanoseconds()
andPhalcon\Db\Profiler\Item::getTotalElapsedMilliseconds()
for more precision #15249 - Added
Phalcon\Http\Response\Cookies::isSent()
andPhalcon\Http\Response\Headers::isSent()
; Added logic to not send the headers or cookies twice. #15334 - Added
Phalcon\Validation\Validator\File\AbstractFile::checkIsUploadedFile()
method to allow overriding when adding files to the$_FILES
array directly (not uploading). #15051 - Added
Phalcon\Support\Helper\Str\Interpolate
to be used throughout the code for interpolation (Logger/Translator)%type%
to%level%
to align with the variables #15411 - Added
Phalcon\Support\HelperFactory
for an easier creation/access of helpers #15411
- Corrected the
Phalcon\Db\Profiler\Item
calculation for seconds #15249 - Corrected
Phalcon\Http\Message\ServerRequestFactory
to populate with superglobals #15286 - Corrected
Phalcon\Mvc\Model\Query\BuilderInterface::orderBy
to usevar
instead ofstring
#15415 - Corrected
Phalcon\Db\Adapter\Pdo\AbstractPdo::connect
to take into account thepersistent
option for relevant connections #15241 - Corrected
Phalcon\Image\Adapter\Gd::processText
to correctly callimagettfbbox
when a font is specified #15188 - Corrected
Phalcon\Cache
to cast keys as strings before sending them to adapters #15249 - Binding form values with specified whitelist #15070
5.0.0-alpha.1 (2021-03-31)
- Support for PHP 7.4 and PHP 8.0
- Fixed
Logger\Log::log()
log
to recognize all log levels #15214 - Changed
setClaims
to be protected so that thePhalcon\Security\JWT\Builder
class can be properly extended. #15322 - Fixed
Phalcon\Mvc\Model::average()
to returnfloat
value when isstring
#15287 - Fixed
Phalcon\Storage\Serializer\Igbinary
to storeis_numeric
andbool
values properly #15240 - Fixed
Phalcon\Validation\Validator\Confirmation
was failing to compare cases such as 000123 = 123 #15347 - Fixed
Phalcon\Storage\Adapter
failing to retrieve empty like stored data (such as [], 0, false) 15125 - Fixed declarations for
function getEventsManager()
to allow null return 15010 - Removed underscore from method names (starting) to abide with PSR-12 15345
- Fixed
Phalcon\Flash\Session::has()
to properly check if any messages are existing 15204 - Fixed signature of
Phalcon\Forms\Element\Select::__construct()
- Fixed signature of
Phalcon\Assets\Manager::addCss()
- Fixed signature of
Phalcon\Assets\Manager::addJs()
- Fixed signature of
Phalcon\Db\Adapter\AdapterInterface::execute()
,Phalcon\Db\Adapter\AdapterInterface::fetchOne()
andPhalcon\Db\Adapter\AdapterInterface::query()
- Fixed
Phalcon\Annotations\Reader::parse()
to return constants annotations #15919 - Added
Phalcon\Annotations\Reflection::getConstantsAnnotations()
method that returns constants annotations #15919 - Changes to the
Phalcon\Annotations\Adapter\AdapterInterface
:- Added
getConstant()
method that returns class constant annotations collection - Added
getConstants()
method that returns class constants annotations array list
- Added