PhalconPHP 3.0.0 正式发布了,由于新版BC问题,根据semver,2.1.x不再发布,改为3.0.0。 下载地址: https://github.com/phalcon/cphalcon/archive/v3.0.0.tar.gz 更新日志: PHP 5.3 and 5.4 are now fully deprecated Phalcon\Mvc\Model\Validation is now deprecated in favor of Phalcon\Validation Changed default hash algorithm in Phalcon\Security to CRYPT_BLOWFISH_Y Changed constructor of Phalcon\Mvc\Model to allow pass an array of initialization data Removed support for prefixes strategy in Phalcon\Loader Now Phalcon\Mvc\View supports many views directories at the same time An absolute path can now be used to Mvc\View::setLayoutsDir Fixed odd view behavior#1933 related to setLayout() and pick() Phalcon\Di is now bound to services closures allowing use Phalcon\Di as $this to access services within them If an object is returned after firing the event beforeServiceResolve in Phalcon\Di this overrides the default service localization process Placeholders :controller and :action in Mvc\Router now defaults to /([\\w0-9\\_\\-]+) instead of /([\\a-zA-Z0-9\\_\\-]+) Modifier #u (PCRE_UTF8) is now default in regex based routes in Mvc\Router Return 'false' from an action disables the view component (same as $this->view->disable()) Return a string from an action takes it as the body of the response (same as return $this->response->setContent('Hello world')) Return a string from an Mvc\Micro handler takes it as the body of the response Mvc\Router\Route now escapes characters such as . or + to avoid unexpected behaviors Closures used as handlers inMvc\Micro are now bound to the $app instance Routes now can have an associated callback that can override the default dispatcher + view behavior Phalcon\Mvc\Model now implements JsonSerializable making easy serialize model instances When destructing a Mvc\Model\Manager PHQL cache is clean Method isSetOption in Phalcon\Validation\ValidatorInterface marked as deprecated, please use hasOption Added internal check "allowEmpty" before calling a validator. If it option is true and the value of empty, the validator is skipped Added default header: Content-Type: "application/json; charset=UTF-8" in method Phalcon\Http\Response::setJsonContent Now Phalcon\Events\Event implements Phalcon\Events\EventInterface Phalcon\Events\Event::getCancelable renamed to Phalcon\Events\Event::isCancelable Removed Phalcon\Events\Manager::dettachAll in favor of Phalcon\Events\Manager::detachAll Phalcon\Mvc\Model\Criteria::getOrder renamed to Phalcon\Mvc\Model\Criteria::getOrderBy Added method getOption() in Phalcon\Mvc\Model\RelationInterface Added ability to spoof HTTP request method Added FULLTEXT index type to Phalcon\Db\Adapter\Pdo\Mysql Fixed the use of the annotation router with namespaced controllers Added Phalcon\Acl\RoleAware 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 type Phalcon\Acl\AdapterInterface::allow and Phalcon\Acl\AdapterInterface::deny have 4th argument - function, which will be called when using Phalcon\Acl\AdapterInterface::isAllowed Phalcon\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 name Added method getActionSuffix() in Phalcon\DispatcherInterface CLI parameters are now handled consistently. Added Phalcon\Mvc\Controller\BindModelInterface and associated model type hint loading through dispatcher. Added Phalcon\Dispatcher::hasParam(). Phalcon\Cli\Console and Phalcon\Mvc\Application now inherit Phalcon\Application. Fixed afterFetch event not being sent to behaviors Fixed issue with radio not being checked when default value is 0 #11358 Fixed issue with Model::__set that was bypassing setters #11286 Fixed issue with Model::__set that was setting hidden attributes directly when setters are not declared #11286 Added Phalcon\Cli\DispatcherInterface, Phalcon\Cli\TaskInterface, Phalcon\Cli\RouterInterface and Phalcon\Cli\Router\RouteInterface. Added Phalcon\Mvc\Collection::update, Phalcon\Mvc\Collection::create and Phalcon\Mvc\Collection::createIfNotExist Removed __construct from all interfaces #11410 Fires the dispatch:beforeException event when there is any exception during dispatching #11458 Added OR operator for Phalcon\Mvc\Model\Query\Builder methods: betweenWhere, notBetweenWhere, inWhere and notInWhere Fixed bug of destroy method of Phalcon\Session\Adapter\Libmemcached Added Phalcon\Cache\Backend\Memcache::addServers to enable pool of servers for memcache Added setLastModified method to Phalcon\Http\Response Added Phalcon\Validation\Validator\Date Added \Phalcon\Queue\Beanstalk::ignore() It removes the named tube from the watch list for the current connection. Added \Phalcon\Queue\Beanstalk:auseTube() Can delay any new job being reserved for a given time. Added \Phalcon\Queue\Beanstalk::kick() It moves jobs into the ready queue. If there are any buried jobs, it will only kick buried jobs. Otherwise it will kick delayed jobs. Added \Phalcon\Queue\Beanstalk::listTubeUsed() Returns the tube currently being used by the client. Added \Phalcon\Queue\Beanstalk::listTubesWatched() Returns a list tubes currently being watched by the client. Added \Phalcon\Queue\Beanstalk:eekDelayed() Return the delayed job with the shortest delay left. Added \Phalcon\Queue\Beanstalk::jobPeek() Return job. Mcrypt is replaced with openssl in Phalcon\Crypt Default encrypt algorithm in Phalcon\Crypt is now changed to AES-256-CFB Removed methods setMode(), getMode(), getAvailableModes() in Phalcon\CryptInterface Added Phalcon\Assets\Manager::exists() to check if collection exists Phalcon\Mvc\Model\Manager::load() now can load models from aliased namespaces Phalcon\Mvc\Model\Transaction\Manager now correctly keeps account of transactions #11554 Phalcon\Db\Dialect\Sqlite now maps additional column types to SQLite columns equivalents. Phalcon\Security is using now Phalcon\Security\Random Enforced that Phalcon\Security::getToken() and Phalcon\Security::getTokenKey() return a random value per request not per call Phalcon\Security::getToken() and Phalcon\Security::getTokenKey() are using now Phalcon\Security::_numberBytes instead of passed as a argument or hardcoded value Phalcon\Security::hash() corrected not working CRYPT_STD_DES, CRYPT_EXT_DES, MD5, CRYPT_SHA256 Phalcon\Security::hash() CRYPT_SHA512 fixed wrong salt length Added missing unit-tests for Phalcon\Security Fixed Filter::add method handler #11581 Removed Phalcon\Session #11340 Phalcon\Tag::getTitle() shows a title depending on prependTitle and appendTitle Using a settable variable for the Mongo Connection Service name instead of a hard coded string #11725 Added new getter Phalcon\Mvc\Model\Query\Builder::getJoins() - to get join parts from query builder Fixed Phalcon\Db\Dialect\Oracle:repareTable() to correctly generate SQL for table aliases #11799 Fixed Phalcon\Mvc\Model\Resultset::update() - removed endless loop queries The cache backend adapters now returns boolean on call Phalcon\Cache\BackendInterface::save Fixed the Session write callback #11733 Added '\Phalcon\Loader::registerFiles' & '\Phalcon\Loader::getFiles'. This allows you to add files to the autoloader Added Phalcon\Security::hasLibreSsl and Phalcon\Security::getSslVersionNumber Added new setter Phalcon\Escaper::setDoubleEncode() - to allow setting/disabling double encoding Added Phalcon\Cache\Frontend\Msgpack - Added Msgpack Support for Frontend Cache Phalcon\Debug\Dump skip debugging di, fix detecting private/protected properties Added option to validate multiple fields with one validator(fix uniqueness validator as well), also removes unnecessary model => $this in Phalcon\Validation\Validator\Uniqueness. Phalcon\Validation\Validator\Alpha now correctly validates non-ASCII characters #11386 Phalcon\Validation\Validator\Digit now correctly validates digits #11374 Added Phalcon\Validation\CombinedFieldsValidator, validation will pass array of fields to this validator if needed Added ability to autoescape Flash messages #11448 Fixed Phalcon\Config::merge for working with php7 Added ability to use custom delimiter for Phalcon\Text::camelize and Phalcon\Text::uncamelize #10396 Added support of CONNECT, TRACE and PURGE HTTP methods Refactored Phalcon\Http\Request::getHttpHost. Now it always return host name or empty string. Optionally validates and clean host name #2573 Added Phalcon\Http\Request::getPort. To get information about the port on which the request is made. Added Phalcon\Http\Request::setStrictHostCheck and Phalcon\Http\Request::isStrictHostCheck to manage strict validation of host name. Fixed matching host name by Phalcon\Mvc\Route::handle when using port on current host name #2573 Fixed Phalcon\Text:dynamic() to allow custom separator #11215 Fixed Phalcon\Validation::appendMessage to allow append message to the empty stack #10405 Fixed Phalcon\Session\Flash::getMessages. Now it returns an empty array in case of non existent message type request #11941 Amended Phalcon\Mvc\RouterInterface and Phalcon\Mvc\Router. Added missed addPurge, addTrace and addConnect methods Fixed incorrect query when using NULL fields with Phalcon\Validation\Validator\Uniqueness Fixed Phalcon\Forms\Form::getValue. Now Elements can have names that match with the internal Form getters #10398 Add setContentLength() method to Phalcon\Http\Response Fixed Phalcon\Mvc\Model\Manager::_mergeFindParameters - Merging conditions #11987 Renamed Phalcon\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. Fixed wildcard inheritance in Phalcon\Acl\Adapter\Memory #12004 Dropped support of Oracle #12008 Improved Phalcon\Mvc\Collection::findById. Added check if a id in a valid format #12010 Added convert option to Phalcon\Validation\Validator\Uniqueness to convert values to do the database lookup #12005 PhalconPHP 3.0.0 正式发布,高性能 PHP 框架下载地址