Releases: phalcon/cphalcon
Releases · phalcon/cphalcon
v3.4.5
v4.0.0-rc.2
Added
- 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
- 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
- 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
v4.0.0-rc.1
Added
- 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
- 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
- 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
- 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
v4.0.0-beta.2
Fixed
- 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
- Removed dead libsodium-related code. It was never called in PHP >= 7.0.
v4.0.0-beta.1
Added
- 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
Changed
- 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
. #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\Validator\Validator
#14213 - Renamed
Phalcon\Validator\Validator
toPhalcon\Validator\AbstractValidator
#14213 - Renamed
Phalcon\Validator\ValidatorComposite
toPhalcon\Validator\AbstractValidatorComposite
#14213 - Renamed
Phalcon\Validator\CombinedFieldsValidator
toPhalcon\Validator\AbstractCombinedFields
#14213 - Renamed
Phalcon\Validator\Validator\File\FileAbstract
toPhalcon\Validator\Validator\File\AbstractFile
#14213
Fixed
v3.4.4
Fixed
- Generated Dialect Class referring to a PHP class can't be found #13867
- Changed default gcc's CFLAGS so that, the extension should be properly generated for most hosts, including Docker #13143
Phalcon\Forms\Form::clear()
now correctly clears single fields. #14217- Used latest stable Zephir from 0.10.x branch to prevent segfaults with PHP 7.3.6 #14160
v4.0.0-alpha.5
Added
- 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\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
Changed
- 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
- 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](https://gi...
v4.0.0-alpha.4
Added
- Added
delimiter
andenclosure
options toPhalcon\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
- 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
Changed
- 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 relaced later on. #13915
Removed
- Removed
Phalcon\Session\BagInterface
#13893
v4.0.0-alpha.3
Added
- 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 - Changed view engine service closures to no longer receive the dependency injector as the second parameter. Instead use
$this
for the DI. #11926
Fixed
- 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
- 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
- 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