resources/CHANGELOG-3.0.md
Phalcon\Forms\Element::label to accept 0 as label instead of validating it as empty. #12148Phalcon\Crypt::getAvailableCiphers, Phalcon\Crypt::decrypt, Phalcon\Crypt::encrypt by getting missed aliases for ciphers #12539Phalcon\Mvc\Model by adding missed use statement for ResultsetInterface #12574Phalcon\Validation\Validator\Uniquenss to allow using except fields other than unique fieldsPhalcon\Translate\Adapter\Gettext::query and removed ability to pass custom domain #12598, #12606Phalcon\Validation\Message\Group::offsetUnset to correct unsetting a message by index #12455Phalcon\Acl\Role and Phalcon\Acl\Resource as parameters for Phalcon\Acl\Adapter\Memory::isAllowedPhalcon\Mvc\Collection to correctly set dirty states when saved/createdPhalcon\Forms\Form that could cause a run-time warningPhalcon\Cache\Backend\Redis::get, Phalcon\Cache\Frontend\Data::afterRetrieve to allow get empty strings from the Redis database #12437Phalcon\Cache\Backend\Redis::exists to correct check if cache key exists for empty value in the Redis database #12434Phalcon\Security::checkToken to prevent possible timing attack #12418Phalcon\Mvc\Model\Resultset\Simple to save snapshot when cachingPhalcon\Http\Request::getHeaders to handle auth headers correctly #12480Phalcon\Http\Request::getMethod to handle X-HTTP-Method-Override header correctly #12478Phalcon\Mvc\Model\Criteria::limit and Phalcon\Mvc\Model\Query\Builder::limit to work with limit and offset properly #12419Phalcon\Forms\Form to correct form validation and set messages for elements #12465, #11500, #11135, #3167, #12395Phalcon\Cache\Backend\Libmemcached::queryKeys to correct query the existing cached keys #11024Phalcon\Cache\Backend\Redis::save to allow save data termlessly #12327Phalcon\Http\Response\Headers::send to send correct status header #12179Phalcon\Mvc\Model::setSnapshotData, Phalcon\Mvc\Model\Resultset\Simple::toArray by fixing an issue like fetch a, a[key] using Zephir #11205, #12147Phalcon\Cache\Backend\Memcache::flush to remove all query keys after flush memcached #12182Phalcon\Cache\Backend\Memory::delete to correct remove items from Phalcon\Cache\Backend\Memory::$_dataPhalcon\Cache\Frontend\Data::afterRetrieve, Phalcon\Cache\Frontend\Igbinary::afterRetrieve, Phalcon\Cache\Frontend\Msgpack::afterRetrieve to unserialize only raw data #12186Phalcon\Mvc\Model::cloneResultMapHydrate to correct create array/objects from data by column map with types #12191Phalcon\Validation\Validator\Confirmation::validate to use fieldWith instead of field when looking up the value for labelWith.Phalcon\Cache\Backend\Redis::_connect to use select redis internal function only when the index is greater than zero.Phalcon\Config\Adapter\Ini::_cast to allow create extended config adapters #12230.Phalcon\Tag::appendTitle, Phalcon\Tag::prependTitle to stack title prepending and appending #12233.Phalcon\Debug::getVersion to provide valid link to the latest Phalcon major version #12215Phalcon\Session\Adapter\Libmemcached::read, Phalcon\Session\Adapter\Libmemcached::destroy, Phalcon\Session\Adapter\Memcache::read, Phalcon\Session\Adapter\Memcache::destroy, Phalcon\Session\Adapter\Redis::read and Phalcon\Session\Adapter\Redis::destroy in accordance with the session_set_save_handler API #12206Phalcon\Validation::getValue() to use filters when having entityPhalcon\Db\Dialect\Mysql::describeReferences() and Phalcon\Db\Dialect\Postgresql::describeReferences() to return proper sqlPhalcon\Db\Column::hasDefault to return false for autoincrement columns phalcon/phalcon-devtools#853Phalcon\Db\Dialect\Postgresql::createTable, Phalcon\Db\Dialect\Postgresql::addColumn, Phalcon\Db\Dialect\Postgresql::modifyColumn to correct escape default values #12267, phalcon/phalcon-devtools#859Phalcon\Forms\Form::bind to clean form elements #11978, #12165, #12099, #10044Phalcon\Tag::resetInput for proper use without attempts to clear $_POST #12099Phalcon\Db\Dialect\Mysql and Phalcon\Db\Dialect\Postresql to correctly check schema in missing methodsPhalcon\Cache\Backend\Apc::flush to remove only it's own keys by prefix #12153Phalcon\Acl\Adapter\Memory::isAllowed to call closures when using wildcard #12333Phalcon\Validation\Validator\File array to string conversion in minResolution and maxResolution #12349Phalcon\Cache\Backend\File::queryKeys() to compare the filename against parsed prefixPhalcon\Cache\Backend\Redis::flush in order to flush cache correctlyPhalcon\Mvc\Model\Manager::getRelationRecords to correct using multi relation column #12035Phalcon\Acl\Resource. Now it implements Phalcon\Acl\ResourceInterface #11959save method for all cache backends. Now it updates the _lastKey property correctly #12050Phalcon\Config\Adapter\Ini constructor can now specify parse_ini_file() scanner mode #12079Phalcon\Cache\Backend\Apc::save due to which the Apc::increment/Apc::decrement could not be used properly #12109Phalcon\Mvc\Model\Criteria::inWhere so that now the second parameter can be an empty array #10676Phalcon\Mvc\View::getActiveRenderPath behavior #12139Phalcon\Security\Random::base64Safe so that now the method returns correct safe string #12141Phalcon\Translate\Adapter\Gettext::getOptionsDefault visibility #12157Phalcon\Mvc\Model\Validation is now deprecated in favor of Phalcon\ValidationPhalcon\Security to CRYPT_BLOWFISH_YPhalcon\Mvc\Model to allow pass an array of initialization dataPhalcon\LoaderPhalcon\Mvc\View supports many views directories at the same timeMvc\View::setLayoutsDirPhalcon\Di is now bound to services closures allowing use Phalcon\Di as $this to access services within thembeforeServiceResolve in Phalcon\Di this overrides the
default service localization process:controller and :action in Mvc\Router now defaults to /([\\w0-9\\_\\-]+) instead of /([\\a-zA-Z0-9\\_\\-]+)#u (PCRE_UTF8) is now default in regex based routes in Mvc\Router$this->view->disable())$this->response->setContent('Hello world'))Mvc\Micro handler takes it as the body of the responseMvc\Router\Route now escapes characters such as . or + to avoid unexpected behaviors Mvc\Micro are now bound to the $app instancePhalcon\Mvc\Model now implements JsonSerializable making easy serialize model instancesMvc\Model\Manager PHQL cache is cleanisSetOption in Phalcon\Validation\ValidatorInterface marked as deprecated, please use hasOptionContent-Type: "application/json; charset=UTF-8" in method Phalcon\Http\Response::setJsonContentPhalcon\Events\Event implements Phalcon\Events\EventInterfacePhalcon\Events\Event::getCancelable renamed to Phalcon\Events\Event::isCancelablePhalcon\Events\Manager::dettachAll in favor of Phalcon\Events\Manager::detachAllPhalcon\Mvc\Model\Criteria::getOrder renamed to Phalcon\Mvc\Model\Criteria::getOrderBygetOption() in Phalcon\Mvc\Model\RelationInterfacePhalcon\Db\Adapter\Pdo\MysqlPhalcon\Acl\RoleAware and Phalcon\Acl\ResourceAware Interfaces, Now you can pass objects to Phalcon\Acl\AdapterInterface::isAllowed as roleName and resourceName, also they will be automatically passed to function defined in Phalcon\Acl\AdapterInterface::allow or Phalcon\Acl\AdapterInterface::deny by typePhalcon\Acl\AdapterInterface::allow and Phalcon\Acl\AdapterInterface::deny have 4th argument - function, which will be called when using Phalcon\Acl\AdapterInterface::isAllowedPhalcon\Acl\AdapterInterface::isAllowed have 4th argument - parameters, you can pass arguments for function defined in Phalcon\Acl\AdapterInterface:allow or Phalcon\Acl\AdapterInterface::deny as associative array where key is argument namegetActionSuffix() in Phalcon\DispatcherInterfacePhalcon\Mvc\Controller\BindModelInterface and associated model type hint loading through dispatcher.Phalcon\Dispatcher::hasParam().Phalcon\Cli\Console and Phalcon\Mvc\Application now inherit Phalcon\Application.afterFetch event not being sent to behaviorsModel::__set that was bypassing setters #11286Model::__set that was setting hidden attributes directly when setters are not declared #11286Phalcon\Cli\DispatcherInterface, Phalcon\Cli\TaskInterface, Phalcon\Cli\RouterInterface and Phalcon\Cli\Router\RouteInterface.Phalcon\Mvc\Collection::update, Phalcon\Mvc\Collection::create and Phalcon\Mvc\Collection::createIfNotExist__construct from all interfaces #11410dispatch:beforeException event when there is any exception during dispatching #11458OR operator for Phalcon\Mvc\Model\Query\Builder methods: betweenWhere, notBetweenWhere, inWhere and notInWheredestroy method of Phalcon\Session\Adapter\LibmemcachedPhalcon\Cache\Backend\Memcache::addServers to enable pool of servers for memcachesetLastModified method to Phalcon\Http\ResponsePhalcon\Validation\Validator\Date\Phalcon\Queue\Beanstalk::ignore() It removes the named tube from the watch list for the current connection.\Phalcon\Queue\Beanstalk::pauseTube() Can delay any new job being reserved for a given time.\Phalcon\Queue\Beanstalk::kick() It moves jobs into the ready queue. If there are any buried jobs, it will only kick buried jobs. Otherwise it will kick delayed jobs.\Phalcon\Queue\Beanstalk::listTubeUsed() Returns the tube currently being used by the client.\Phalcon\Queue\Beanstalk::listTubesWatched() Returns a list tubes currently being watched by the client.\Phalcon\Queue\Beanstalk::peekDelayed() Return the delayed job with the shortest delay left.\Phalcon\Queue\Beanstalk::jobPeek() Return job.Phalcon\CryptPhalcon\Crypt is now changed to AES-256-CFBPhalcon\CryptInterfacePhalcon\Assets\Manager::exists() to check if collection existsPhalcon\Mvc\Model\Manager::load() now can load models from aliased namespacesPhalcon\Mvc\Model\Transaction\Manager now correctly keeps account of transactions #11554Phalcon\Db\Dialect\Sqlite now maps additional column types to SQLite columns equivalents.Phalcon\Security is using now Phalcon\Security\RandomPhalcon\Security::getToken() and Phalcon\Security::getTokenKey() return a random value per request not per callPhalcon\Security::getToken() and Phalcon\Security::getTokenKey() are using now Phalcon\Security::_numberBytes instead of passed as a argument or hardcoded valuePhalcon\Security::hash() corrected not working CRYPT_STD_DES, CRYPT_EXT_DES, MD5, CRYPT_SHA256Phalcon\Security::hash() CRYPT_SHA512 fixed wrong salt lengthPhalcon\SecurityFilter::add method handler #11581Phalcon\Session #11340Phalcon\Mvc\Model\Query\Builder::getJoins() - to get join parts from query builderPhalcon\Db\Dialect\Oracle::prepareTable() to correctly generate SQL for table aliases #11799Phalcon\Mvc\Model\Resultset::update() - removed endless loop queriesPhalcon\Cache\BackendInterface::savePhalcon\Security::hasLibreSsl and Phalcon\Security::getSslVersionNumberPhalcon\Escaper::setDoubleEncode() - to allow setting/disabling double encodingPhalcon\Cache\Frontend\Msgpack - Added Msgpack Support for Frontend CachePhalcon\Debug\Dump skip debugging di, fix detecting private/protected propertiesmodel => $this in Phalcon\Validation\Validator\UniquenessPhalcon\Validation\Validator\Alpha now correctly validates non-ASCII characters #11386Phalcon\Validation\Validator\Digit now correctly validates digits #11374Phalcon\Validation\CombinedFieldsValidator, validation will pass array of fields to this validator if neededPhalcon\Config::merge for working with php7Phalcon\Text::camelize and Phalcon\Text::uncamelize #10396CONNECT, TRACE and PURGE HTTP methodsPhalcon\Http\Request::getHttpHost. Now it always return host name or empty string. Optionally validates and clean host name #2573Phalcon\Http\Request::getPort. To get information about the port on which the request is made.Phalcon\Http\Request::setStrictHostCheck and Phalcon\Http\Request::isStrictHostCheck to manage strict validation of host name.Phalcon\Mvc\Route::handle when using port on current host name #2573Phalcon\Text:dynamic() to allow custom separator #11215Phalcon\Validation::appendMessage to allow append message to the empty stack #10405Phalcon\Session\Flash::getMessages. Now it returns an empty array in case of non existent message type request #11941Phalcon\Mvc\RouterInterface and Phalcon\Mvc\Router. Added missed addPurge, addTrace and addConnect methodsPhalcon\Validation\Validator\UniquenessPhalcon\Forms\Form::getValue. Now Elements can have names that match with the internal Form getters #10398setContentLength() method to Phalcon\Http\ResponsePhalcon\Mvc\Model\Manager::_mergeFindParameters - Merging conditions #11987Phalcon\Http\Request::isSoapRequest to Phalcon\Http\Request::isSoap and Phalcon\Http\Request::isSecureRequest to Phalcon\Http\Request::isSecure. Left the originals functions as aliases and marked them deprecated.Phalcon\Acl\Adapter\Memory #12004Phalcon\Mvc\Collection::findById. Added check if a id in a valid format #12010convert option to Phalcon\Validation\Validator\Uniqueness to convert values to do the database lookup #12005