Фалканк: изменения в версии 1.3.1 и 1.3.0
-
В Phalcon\Mvc\Model\Manager::getRelationRecords добавлены условия судьи.
-
Убрано ключевое слово final из конструктора модели.
-
Замена bindParam на bindValue для избежания неожиданных изменений ссылок (проблема №2111).
-
Tag::linkTo() позволяет добавлять параметры строки запроса (проблема №2002).
-
Добавлена опция allowEmpty в \Phalcon\Mvc\Model\Validator*.
-
Используется phalcon_camelize для пространства имён.
-
\Phalcon\Session\Adapter::setId добавлен.
-
Исправлена ошибка в BUG \Phalcon\Model\Validate*.
-
Быстрые сборки Travis.
-
Проблема №2157 исправлена, добавлены тесты.
-
Объявлены недостающие функции (проблема №2196).
-
Добавлен параметр allowEmpty в \Phalcon\Mvc\Model\Validator* (проблема №2002).
-
Метод \Phalcon\Db\Result\Pdo::nextRowset добавлен (проблема №2018).
-
Используется phalcon_camelize для пространства имён.
-
Решена проблема с сегфолтом в Phalcon\Di\Service::resolve при отсутствии строкового класса (проблема №2205).
-
Глобальные zvals перемещены в RINIT/RSHUTDOWN для улучшения стабильности на Windows TS сборках.
-
Предварительно выделенные фреймы перемещены в RINIT/RSHUTDOWN для улучшения стабильности на Windows TS сборках.
-
Сегфолт при замене адаптера Phalcon\Session на PHP пользовательский адаптер исправлен.
-
Ошибка zval недопустимого косвенного обращения в Phalcon\Security hash исправлена.
-
Сегфолт при передаче недопустимого количества аргументов в Phalcon\Annotations\Reader::parseDocBlock исправлен.
-
Частные и защищённые свойства не были раскрыты в Phalcon\Annotations\Reader.
-
Первый символ имени контроллера был удалён при включённом флаге isExactHandler.
Версия 1.3.0:
-
Исходный код совместим с PHP 5.6-dev и PHP 5.7-dev (проблема №1762).
-
Произведена очистка кода: устранены предупреждения компилятора, устранён мёртвый код, произведено дублирование кода, использованы статические анализаторы кода для устранения возможных ошибок (проблемы №801, №802, №810, №825, №827, №838, №849, №942, №968, №1001, №1093, №1169, №1214, №1223, №1224, №1375, №1430, №1787, №1794, №1828).
-
Различные утечки памяти исправлены (проблемы №469). — Исправлены проблемы с доступом к памяти, ошибки сегментирования и т. д. (#469, #849 и др.).
— Исправлены PHP-уведомления, предупреждения и другие несовместимости (#894, #1222 и др.).
— Исправлено наследование для Phalcon\Forms\Exception, Phalcon\Loader\Exception и Phalcon\Http\Request\Exception (#1770).
— Проведены значительные оптимизации исходного кода (#1785 и др.)
Примечание: в ответе не удалось перевести некоторые специальные символы. Контроль поведения Phalcon через настройки INI
Управление поведением Phalcon с помощью настроек INI
Проблемы безопасности:
- Усиление защиты:
- исправления для повышения надёжности (#1044);
- проверка интерфейса (#1043, #1048);
- тщательная проверка данных в wakeup() (#1043,
#1634, #1635);
- устранены уязвимости XSS (#1216, #1190);
- функция Phalcon\Security::checkHash() позволяет ограничить длину пароля, чтобы избежать атак, подобных описанной на сайте www.djangoproject.com (2013, сентябрь 15, раздел «Безопасность») (#1261);
- исправлен сбой при рендеринге метки элемента (#1210);
- предотвращение атак внедрения запросов MongoDB (#1265);
- не допускается переопределение суперглобальных переменных в представлениях (#1617).
Phalcon Kernel:
- 32- и 64-битные хэши могут быть вычислены на одной и той же архитектуре ЦП (#817);
- общее использование памяти сокращено (#834,
#891, #893);
- оптимизация распределения памяти (#912,
#1220, #1987);
- более быстрые внутренние манипуляции с массивами и строками (#822,
#823, #830,
#833, #837,
#890, #1972);
- Camelize больше не игнорирует последний символ строки (#1436);
- исправлена ошибка в phalcon_fix_path() (#1601);
- используются собственные аналоги для memory_get_usage(), gettype(), json_encode(), json_decode(), session_XXX(), header(), headers_sent(), debug_backtrace(), lcfirst(), ob_XXX(), array_unshift(), array_values(), array_keys(), htmlentities() (#836,
#847, #936,
#945, #1099);
- функции хеширования адаптированы для обработчиков объектов (#842);
- оптимизированы вызовы функций и методов пользовательского пространства (#843,
#954);
- чтение, изменение и обновление свойств оптимизировано (#848);
- добавлена поддержка областей self/parent/static в статических свойствах (#943);
- оптимизации поиска области видимости (#948);
- память из функций ядра не восстанавливается (#960,
#976);
- диагностические сообщения при компиляции Phalcon в режиме разработки (#1009,
#1054,). - Оптимизация возвращаемого значения ([#1046, #1047, #1075]).
- Исправлена проблема с локалью ([#1095]).
- Добавлена поддержка интернированных строк (PHP 5.4+).
- Оптимизация статического свойства fetch/update ([#1293]).
- Исправление вводящей в заблуждение диагностики при исключении ([#1297]).
- Использование предварительно выделенных постоянных zvals вместо null, true, false, 0 и 1 ([#1302]).
- Исправление ошибки в phalcon_fix_path() ([#1591]).
- Постоянный кэш функций для методов Phalcon ([#1825]).
- Оптимизация вызова функции ([#1846]).
- Использование Native Reflection API ([#1957]).
Phalcon\Acl:
- Устранена ошибка наследования ACL ([#905]).
- Исправлено, когда ACL разрешал доступ к запрещённым ресурсам ([#1303]).
- Устранена ошибка с подстановочным знаком ACL * ([#1409]).
- Устранена ошибка с числовыми ресурсами ([#1513]).
- Phalcon\Acl\Adapter теперь реализует Phalcon\Acl\AdapterInterface ([#1852]).
Phalcon\Annotations:
- Исправлен баг getProperty() в AnnotationsAdapter ([#996]).
- Оптимизации Phalcon\Annotations ([#1141]).
- Исправлен анализ аннотаций, содержащих / ([#1480]).
- Аннотационный парсер оптимизирован ([#1957]).
Phalcon\Assets:
- Исправлены ошибки, когда минификатор не выдавал никакого вывода вообще ([#811, #821]).
- Исправлено объединение ([#951]).
- Добавлена поддержка символов UTF-8 в jsmin.
- Исправлена цепочка фильтров CSS/JS ([#1198]).
- Фильтры Phalcon\Assets\Filters\CssMin и JsMin реализуют интерфейс Phalcon\Assets\FilterInterface ([#1539]).
- Добавлен Phalcon\Assets\Collection::setTargetLocal() ([#1532]).
Phalcon\Cache:
- Добавленный бэкэнд кэша Libmemcached ([#913]).
- Поддержка APCu 4.0.2+ ([#1234]).
- Реализован Phalcon\Cache\Backend\Memory::queryKeys() ([#1093]).
- Исправления ошибок в Phalcon\Cache\Backend\Xcache ([#1406]).
- Оптимизированы фронтенды Phalcon\Cache\Frontend\Data, Phalcon\Cache\Frontend\None, Phalcon\Cache\Frontend\Base64, Phalcon\Cache\Frontend\Igbinary, Phalcon\Cache\Frontend\Output, Phalcon\Cache\Frontend\Json. Оптимизации бэкенда кэша памяти Phalcon (#1093):
- Оптимизации бэкенда кэша файлов Phalcon (#1093).
- Оптимизации бэкенда APC кэша Phalcon (#1093).
- Оптимизации бэкенда Xcache кэша Phalcon (#1093).
- Оптимизации бэкенда Memcache кэша Phalcon (#1093).
- Оптимизации бэкенда Mongo кэша Phalcon (#1093).
- Оптимизация и исправление ошибок в бэкенде Libmemcached кэша и Phalcon\Cache\BackendInterface (#1852).
Добавлены методы increment() и decrement() (#1374).
Добавлен метод flush() (#1352).
Phalcon\Config:
- Ускоренная реализация Phalcon\Config с использованием обработчиков объектов (#837, #1277).
- Поддержка числовых свойств в Phalcon\Config (#837).
- Реализован Phalcon\Config::offsetUnset() (#732).
- Phalcon\Config\Adapter\Ini корректно обрабатывает пустые секции и INI-файлы без секций (#829, #837).
- Добавлен класс Phalcon\Adapter\Config\Json для чтения конфигураций JSON (#844).
- Теперь Phalcon\Config::merge работает с производными классами (#1024).
- Правильно обрабатываются директивы с точками в INI-файлах (#872).
- Поддерживаются массивы PHP в качестве конфигурационных файлов (#1439).
Phalcon\Crypt:
- В Phalcon\Crypt добавлена поддержка различных схем заполнения (PKCS7, ANSI X.923, ISO 10126, ISO/IEC 7816-4, заполнение нулями, заполнение пробелами) (#864, #887).
- Снижено пиковое использование памяти (#1237).
- encryptBase64() и decryptBase64() могут опционально использовать RFC 4648 вариант BASE64 (#1353, #1919).
Phalcon\Db:
- Добавлена поддержка масштаба DECIMAL (#940).
- Исправлены некорректные имена последовательностей для PostgreSQL (#1022).
- Добавлена поддержка типа MySQL DOUBLE (#1128).
- Диалекты баз данных теперь поддерживают тип данных BOOLEAN (#816).
- Добавлена поддержка POINT типа в MySQL (#1536).
- Решена проблема с RawValue('default') для составного первичного ключа (#1534).
- Добавлена поддержка столбцов AUTO_INCREMENT для addColumn() (MySQL, SQLite) и modifyColumn() (MySQL) (#1695).
- Phalcon\Db\Dialect\Mysql::getColumnDefinition() теперь возвращает INT вместо INT(0) (#1695).
- Добавлена поддержка следующих режимов выборки из PDO: FETCH_LAZY, FETCH_BOUND, FETCH_COLUMN, FETCH_CLASS, FETCH_INTO, FETCH_FUNC, FETCH_NAMED, FETCH_KEY_PAIR. Перевод текста на русский язык:
1642:
- Добавлена поддержка следующих модификаторов режима выборки из PDO: FETCH_GROUP, FETCH_UNIQUE, FETCH_CLASSTYPE, FETCH_SERIALIZE, FETCH_PROPS_LATE 1642.
- Оптимизации Phalcon\Db 1693.
- Оптимизации Phalcon\Db\Adapter 1693.
- Оптимизации Phalcon\Db\Index 1693.
- Оптимизации Phalcon\Db\Profiler 1693.
- Оптимизации Phalcon\Db\Reference 1693.
- Оптимизации Phalcon\Db\Result\Pdo 1693.
- Phalcon\Db\Adapter теперь реализует интерфейс Phalcon\Db\AdapterInterface 1852.
- Phalcon\Db\Dialect теперь реализует интерфейс Phalcon\Db\DialectInterface 1852.
- Phalcon\Debug:
- Поддержка UTF-8 добавлена в \Phalcon\Debug 1099.
- Теперь Phalcon\Debug::uri поддерживает как http, так и https 987.
- Исправлена ошибка преобразования массива в строку 1103.
- Добавлена поддержка xdebug.file_link_format 1401.
- Phalcon\Di:
- Оптимизация Phalcon\Di 1014 с обходными путями для NuSphere DBG 1714.
- Метод Phalcon\Di\Service::isResolved() добавлен 1242.
- Убедитесь, что 'persistent' разрешается только при первом обращении 1637.
- Более быстрая реализация DI с использованием обработчиков объектов 1473.
- Изменения в интерфейсе Phalcon\DiInterface 2034:
- метод setShared() удалён, поскольку он является сокращением для set($name, $definition, true);
- метод attempt() удалён, поскольку он является сокращением для
has()
+ set()
;
- переименован setRaw() в setService(), потому что getRaw() на самом деле getService() + $service->getDefinition();
- setRaw() теперь является псевдонимом для setService(), но будет выдавать E_DEPRECATED;
- удалён
getRaw()
, потому что это getService()
+ $service->getDefinition()
;
- модифицирован
setService($name, $raw_definition)
в setService($raw_definition)
, поскольку имя службы можно получить из определения.
- Phalcon\Dispatcher:
- Параметры диспетчеризации теперь могут быть изменены в событиях 'beforeExecuteRoute'.
- События 'beforeException' теперь могут обрабатывать исключения, возникающие при выполнении действий 140.
- Добавлены методы Phalcon\Dispatcher::getHandlerClass и Phalcon\Dispatcher::getActionMethod.
- Реализовано событие afterInitialize 782.
- Оптимизация Phalcon\Dispatcher 782.
- Добавлены getPreviousControllerName() и getPreviousActionName() 1462.
- Если обработчик событий генерирует исключение, вызовите dispatch:beforeException и прервите цикл отправки 1763.
- Phalcon\Dispatcher::_handleException() вызывается независимо от того, присутствует ли менеджер событий 1953.
- Phalcon\Element:
- В методе Phalcon\Element::addFilter() NULL неправильно добавляется в начало списка 1019.
- Phalcon\Escaper:
- Ошибки в Phalcon\Escaper исправлены 917.
- Оптимизация Phalcon\Escaper. Phalcon\Mvc\Model\Query\Builder теперь может использовать как целочисленные, так и строковые плейсхолдеры (#701).
Mvc\Model\getMessages() теперь фильтруется (#885).
Исправлена реализация отношения hasManyToMany (#938).
Исправлено регулярное выражение в \Phalcon\Mvc\Model\Validator\Email (#1243).
Методы Phalcon\Mvc\Model::hasOne, hasMany, belongsTo, hasManyToMany, addBehavior() теперь являются публичными (#1166).
Добавлен метод Phalcon\Mvc\Model\Row::toArray() (#1506).
Phalcon\Mvc\Model\Validator::getOption() возвращает NULL, если опция не существует (#1530).
Устранена ошибка с пользовательским Event Manager в Phalcon\Mvc\Models (#1314).
__construct() в Phalcon\Mvc\Model\Query\Builder больше не игнорирует объединения (#1327).
Исправлен HAVING в Phalcon\Mvc\Model\Query\Builder (#1396).
Микроколлекции возвращают Phalcon\Mvc\Micro\CollectionInterface (#1130).
Phalcon\Mvc\Url::get() может добавлять параметры запроса (#723, #877).
Оптимизация регулярного выражения для Phalcon\Mvc\Router (#977).
PHQL: добавлена поддержка плейсхолдеров в LIMIT (#1023).
Добавлены методы Phalcon\Mvc\Router::getDefautXXX() (#1087).
Разрешено использование HAVING без GROUP BY в Query Builder (#1115).
Оптимизации mvc/model/query.c (#1129, #1132).
Поддержка массива (limit, offset) в качестве конструктора ключа «limit» в Query Builder (#1208).
Поддержка условий в Phalcon\Mvc\Model\Query\Builder::__construct() (#1236).
Добавлены Phalcon\Mvc\View::isDisabled(), Phalcon\Mvc\View::getRenderLevel(), Phalcon\Mvc\View::getDisabledLevels() (#907, #1320).
Добавлена Phalcon\Mvc\View::getCurrentRenderLevel() (#907, #1326).
Исправлена ошибка в Phalcon\Mvc\Model\Resultset\Simple::toArray() (#1377).
Исправлены ошибки в компиляторе Volt (#1387).
Оптимизирован компилятор Volt (#1729).
Оптимизированы Phalcon\Mvc\Model\Query\Builder (#1414).
Можно устанавливать директории без конечных слэшей в Phalcon\Mvc\View (#406, #1440).
Phalcon\Mvc\Model\Validator::getOption() возвращает null, если опции не существует (#1531).
Добавлена функция Phalcon\Mvc\Model::selectWriteConnection() (#1519).
Добавлены функции Phalcon\Mvc\Router\Group::convert()/getConverters() (#1555, #1572).
Добавлена функция Phalcon\Mvc\Router\Route::getGroup() (#1682).
Добавлены функции Phalcon\Mvc\Router\Group::getName() и setName(). - Faster Phalcon\Mvc\Model\Row
- Optimized Phalcon\Mvc\Router\Group
- Исправлена ошибка: в обработчике beforeMatch в Phalcon\Mvc\Router не передавались аргументы
- Добавлена диагностика, когда валидатор возвращает false, но не вызывает appendMessage()
- Исправлено обращение с числовыми пространствами имён/модулями/контроллерами/действиями
- Добавлены Phalcon\Mvc\View::exists() и Phalcon\Mvc\View(\Simple)::getRegisteredEngines()
- Volt: исправлена ошибка в email_filed()
- Исправлены предупреждения об устаревании в Phalcon\Mvc\Collection::save() и Phalcon\Mvc\Collection::delete()
- Phalcon\Mvc\Model\Behavior теперь реализует Phalcon\Mvc\Model\BehaviorInterface
- Phalcon\Mvc\Model\Metadata теперь реализует Phalcon\Mvc\Model\MetadataInterface
- Phalcon\Mvc\Model\Validator теперь реализует Phalcon\Mvc\Model\ValidatorInterface
- Phalcon\Mvc\View\Engine теперь реализует Phalcn\Mvc\View\EngineInterface
- Методы Phalcon\Mvc\Model\Validator::getOption()/getOptions()/isSetOption() теперь являются публичными
- Phalcon\Mvc\Model::findFirst() теперь работает, когда phqlLiterals имеет значение false
- Исправлены уведомления, когда phalcon.orm.column_renaming равен 0
- Реализован reset() для адаптеров метаданных, отличных от памяти
- Ослаблено требование к маршруту начинаться с косой черты
- В Phalcon\Mvc\Router\Group: сливаются косые черты, когда префикс маршрута заканчивается, а шаблон маршрута начинается с косой черты
- Phalcon\Mvc\Model\Criteria::fromInput() теперь работает с картами столбцов
Phalcon\Paginator:
- Phalcon\Paginator\Adapter\Model возвращает правильные результаты, даже когда номер страницы неправильный
- Оптимизирован Phalcon\Paginator\Adapter\QueryBuilder
- setCurrentPage() возвращает $this для всех адаптеров
- Оптимизирован Phalcon\Paginator\Adapter\NativeArray
Phalcon\Queue:
- Исправлена ошибка в Phalcon\Queue\Beanstalk::read()
- Исправлены ошибки в реализации протокола beanstalkd
- Оптимизация
- Добавлен peekDelayed() и peekburied() в Phalcon\Queue\Beanstalk
- Добавлены kick(), bury(), release(), touch() в Phalcon\Queue\Beanstalk\Job
Phalcon\Registry
Phalcon\Security:
- Phalcon\Security\Exception наследуется от Phalcon\Exception, а не от \Phalcon\Di\Exception
- Добавлен Phalcon\Security::computeHmac() Исправления ошибок и улучшения в Phalcon:
-
Исправление ошибок (Phalcon\Security::checkHash()). Сравнение строк с постоянным временем для предотвращения атак по времени (#1347).
-
Сравнение строк с постоянным временем в Phalcon\Security::checkHash() для предотвращения атак по времени (#1755).
-
Правильное обращение с хэшами, отличными от bcrypt, в Phalcon\Security::checkHash().
-
Поддержка всех хэшей, поддерживаемых crypt(), в Phalcon\Security::hash().
-
Устранение необходимости в OpenSSL в Phalcon\Security::getSaltBytes().
Изменения в Phalcon\Session:
-
Исправлена ошибка в Phalcon\Session\Bag::remove().
-
Добавлен метод remove() в интерфейс Phalcon\Session\BagInterface.
-
Метод get() в адаптере Phalcon\Session может дополнительно удалять данные из сессии.
-
Оптимизация адаптера Phalcon\Session.
-
__destruct в Phalcon\Session\Adapter теперь вызывает session_write_close().
-
Интерфейс Phalcon\Session\AdapterInterface совместим с SessionHandlerInterface.
-
Адаптер Phalcon\Session теперь реализует интерфейс Phalcon\Session\AdapterInterface.
-
Теперь метод __get в Phalcon\Session\Bag возвращает значение по ссылке (в отличие от get()).
-
Phalcon\Session\Bag реализует интерфейсы ArrayAccess, Countable, IteratorAggregate.
-
Адаптер Phalcon\Session реализует интерфейсы ArrayAccess, Countable, IteratorAggregate.
-
Оптимизированный адаптер Phalcon\Session с использованием обработчиков объектов.
Изменения в Phalcon\Tag:
-
Исправлены ошибки (#903).
-
Исправлено создание радиокнопок (#947).
-
Непротиворечивое поведение setAutoescape() (#1263).
-
Добавление отсутствующих типов ввода HTML5 (#824, #1323).
-
Добавлена функция setTitleSeparator() (#1365).
-
Поддержка (#1422).
-
Исправлена непоследовательность в Tag::stylesheetLink/javascriptInclude относительно локальных URL-адресов (#1486).
Изменения в Phalcon\Translate:
-
Оптимизация Phalcon\Translate\Adapter и Phalcon\Translate\Adapter\NativeArray с использованием обработчиков объектов (#1668).
-
В Phalcon\Translate\Adapter\NativeArray::query() теперь заменяются заполнители, даже если строка не найдена в языковом контенте (#2044).
Изменения в Phalcon\Validation:
-
Поддержка кодов ошибок (#1171).
-
Исправленные ошибки (#1399).
-
Оптимизация Phalcon\Validation\Message\Group с использованием собственных итераторов (#1657).
-
Оптимизация Phalcan\Validation\Message\Group с использованием обработчиков объектов (#1765).
-
Валидатор Phalcon теперь реализует интерфейс валидатора Phalcon\Validation\ValidatorInterface (#1852).
Изменения в Psr\Log:
-
При установке параметра phalcon.register_psr3_classes в php.ini интерфейс Psr\Log\LoggerAwareInterface, интерфейс Psr\Log\LoggerInterface, абстрактный класс Psr\Log\AbstractLogger, исключение Psr\Log\InvalidArgumentException, уровень Psr\Log\LogLevel регистрируются как классы PSR-3. Phalcon: обновления и улучшения
-
Psr\Log\NullLogger, Psr\Log\LoggerAwareTrait (PHP 5.4+), Psr\Log\LoggerTrait (PHP 5.4+) зарегистрированы как внутренние интерфейсы/классы/traits в Phalcon (#1888).
Модульные тесты:
- Travis CI улучшения (#819, #846, #949).
- Использовать markTestSkipped() вместо echo (#862).
- Не запускать APC тесты под CLI, когда apc.enable_cli равен 0 (#1449).
- Добавлены новые тесты (#865, #1256, #1260, #1339, #1560, #1563).
- Пропускать тесты базы данных, если СУБД недоступна (#970).
- Поддержка опционального RVO (#1147).
- Визуализация тестового покрытия (#1307, #1361).
- Исправления ошибок в тестах (#1313, #1334, #1335, #1449, #1467).
Документация:
- Исправлены ошибки (#1069, #1070, #1072, #1145, #1146, #1205, #1372, #1397, #1521, #1523, #1586 и многие другие).
- Рефакторинг, улучшение и оптимизация скрипта сборки (#1218).
- Другие исправления ошибок (#1051, #1131, #1040, #1275, #1392, #1396, #1399, #1425, #1426 и др.).
1.2.6 (2014-01-26)
- Phalcon\Security::checkHash() корректно обрабатывает хэши, отличные от bcrypt (#1912).
1.2.5 (2014-01-13)
- __toString в Phalcon\Http\Cookie не будет вызывать исключения (#1427).
- __toString в Phalcon\Http\Cookie будет возвращать строковое значение (#1428).
- Camelize больше не игнорирует последний символ строки (#1436).
- APC тесты не запускаются под CLI, когда apc.enable_cli равно 0 (#1449).
- Phalcon\Debug::uri теперь поддерживает http и https (#987).
- Устранена несогласованность в Tag::stylesheetLink/javascriptInclude относительно локальных URL-адресов (#1486). Исправлена ошибка в Phalcon\Queue\Beanstalk::read() (#1348, #1612).
Phalcon\Flash\Session::getMessages() некорректно удалял все сообщения (#1575).
Исправлена ошибка в phalcon_fix_path() (#1601).
Добавлен метод Phalcon\Mvc\Model\Row::toArray() (#1506).
Добавлена поддержка типа POINT в MySQL (#1536).
Phalcon\Mvc\Model\Validator::getOption() возвращает NULL, если опция не существует (#1530).
Исправлено парсинг аннотаций, содержащих / (#1480).
Убедитесь, что «persistent» разрешается только при первом доступе (#1637).
Исправлен Phalcon\Session\Bag::remove() (#1637).
Исправлены ошибки в реализации протокола beanstalkd.
Phalcon\Paginator\Adapter\Model возвращает правильные результаты, даже когда номер страницы неправильный (#1654).
Исправлена ошибка: обработчику beforeMatch в Phalcon\Mvc\Router не передавались аргументы (#1556).
Учитывается настройка уровня логирования Phalcon\Logger\Adapter::setLogLevel() транзакциями (#1716).
Исправлены ошибки в Phalcon\Db\Adapter\Pdo::describeColumns() (#1562).
Теперь __destruct в Phalcon\Session\Adapter вызывает session_write_close() (#1624).
Volt: исправлена ошибка в email_filed() (#1723).
Исправлены PHP-уведомления в Phalcon\Debug::onUncaughtException() (#1683).
Phalcon\Logger\Adapter::commit() очищает очередь (#1748).
Сравнение строк с постоянным временем в Phalcon\Security::checkHash() (#1755).
Исправьте phalcon_escape_multi(), чтобы он генерировал действительный UTF-8 (#1681).
Версия 1.2.4 (2013-10-23)
Исправлена неработающая иерархия ACL (#905).
Исправлен сбой при рендеринге метки элемента (#1210).
Исправлены уязвимости XSS (#1216, #1190).
Добавлена поддержка APCu 4.0.2+ (#1234).
Исправлено связывание фильтров CSS/JS (#1198).
Исправлены уведомления и предупреждения со сложными запросами PHQL (#1222).
Оптимизировано выделение памяти (#1220).
Исправлен регулярный выражение в \Phalcon\Mvc\Model\Validator\Email (#1243).
Исправлены недочёты документации.
Методы Phalcon\Mvc\Model::hasOne/hasMany/belongsTo/hasManyToMany/addBehavior() теперь являются общедоступными (#1166).
Добавлена поддержка типа MySQL DOUBLE (#1128).
Поддерживаются символы UTF-8 в jsmin.
Поддержка UTF-8 добавлена в \Phalcon\Debug (#1099).
Исправлена регрессия в \Phalcon\Http\Request::getRawBody() (#1091).
Реализован \Phalcon\Cache\Backend\Memory::queryKeys() (#1093).
В перенаправлениях используются описания статусов из RFC 2616. 1.2.3 (2013-08-16)
- Исправлены проблемы с безопасностью (#1144).
1.2.2 (2013-08-06)
- Phalcon\Mvc\Model\Query\Builder теперь может использовать как целочисленные, так и строковые заполнители (#701).
- Устранены проблемы с некорректным чтением памяти при включённом GC (#469, #927).
- Теперь Phalcon\Flash\Session::getMessage('key') возвращает пустой массив, если ключ не найден (#908, #920).
- Исправления в Phalcon\Escaper (#917).
- Решены проблемы с утечками памяти для PHP < 5.4 (#910, #914, #916).
- Исправлены нарушения доступа к памяти (#911, #918, #927, #928).
- Оптимизировано выделение памяти (#912).
1.2.1 (2013-07-25)
- Снижено общее использование памяти (#834, #891, #893).
- Улучшена скорость внутренней обработки массивов и строк (#830, #833, #837).
- Исправлена компиляция PHP 5.5 на Windows.
- Параметры диспетчеризации теперь можно изменять в событиях «beforeExecuteRoute». В запросе представлен текст, связанный с разработкой и тестированием программного обеспечения на основе фреймворка Phalcon.
В тексте описаны изменения и улучшения в различных компонентах фреймворка, а также добавлены новые функции и возможности.
Основной язык текста — английский. Поддержка минимизации CSS на лету.
- Поддержка реальных вложенных транзакций в Phalcon\Db с использованием точек сохранения базы данных.
- Поддержка создания/списка/удаления представлений в Phalcon\Db.
- Добавлено событие application:viewRender в Phalcon\Mvc\Application, позволяющее разработчику вызывать метод $view->render по своему усмотрению.
- Добавлена опция отключения литералов в PHQL-выражениях, что значительно снижает вероятность атаки с помощью SQL-инъекций.
- Теперь можно передавать массив переменных с виртуальной локальной областью видимости в Phalcon\Mvc\View::partial().
- Синтаксис CAST(expr AS datatype) теперь поддерживается PHQL.
- Поддержка CONVERT(expr USING charset) в PHQL.
- Поддержка {% include "hello" with [var1, var2] %}
- Phalcon\Mvc\Collection::find получает параметр «fields» для указания списка полей.
- Добавлены Phalcon\Forms\Element\Email и Phalcon\Tag::emailField.
- Поддержка определения массивов с использованием фигурных скобок в Volt {'a': 'b', 'c': 'd'}.
- Поддержка выполнения множественных присваиваний в одном наборе в Volt {% set a = b, c = d %}.
- Volt теперь поддерживает блоки «if» / «else» с пустыми телами.
- Поддержка действия «cascade» в дополнение к «restrict» в виртуальных внешних ключах (ORM).
- Добавлен отсутствующий Phalcon\Http\Request\File::getType().
- Phalcon\Tag больше не является абстрактным, позволяя создавать его экземпляры.
- Phalcon\Tag теперь зарегистрирован как «tag» в Phalcon\Di\FactoryDefault.
- В обработчике в Phalcon\Mvc\Micro возвращается объект, реализующий Phalcon\Http\ResponseInterface, ответ автоматически отправляется.
- У Phalcon\Mvc\View теперь есть цепной API.
- Phalcon\Mvc\Micro теперь может опционально получать DI в своём конструкторе.
- Теперь, если метод получает неправильное количество параметров, вместо предупреждения генерируется исключение BadMethodCallException.
- Phalcon\Mvc\Model/Phalcon\Mvc\Collection теперь проверяет наличие метода «onConstruct», позволяя разработчику выполнять инициализацию каждый раз при создании экземпляра модели/коллекции.
- Phalcon\Mvc\Model/Phalcon\Mvc\Collection теперь проверяет наличие метода «afterFetch», позволяя разработчику выполнять инициализацию каждый раз, когда экземпляр модели/коллекции создаётся в операции findFirst/find.
- Добавлен Phalcon\Mvc\Collection::summatory, упрощающий генерацию этого типа агрегации.
- Поддержка логических литералов в PHQL.
- Поддержка сложных выражений в GROUP BY в PHQL.
- Теперь исключения PHQL включают само выражение PHQL.
- Псевдонимы для пространств имён теперь поддерживаются в PHQL.
- Acl\Memory был переписан, чтобы сделать его проще и быстрее, вы можете регенерировать свои сериализованные ACL.
- Поддержка операторов присваивания +=, -=, *=, /= в Volt.
- Поддержка сценариев установки оптимизации на основе профиля (см. блог).
- Добавлен Phalcon\Annotations\Adapter\Xcache для хранения аннотаций в Xcache.
- Добавлен Phalcon\Mvc\Model\Metadata\Xcache для хранения метаданных моделей в Xcache.
- Улучшения в построителе запросов, позволяющие определять связанные параметры в методах «where».
- Добавлен Mvc\Model\Query\Builder::inWhere для добавления выражения IN к запросу.
- Добавлен Mvc\Model\Query\Builder::notInWhere для добавления выражения NOT IN к запросу.
- Добавлен Mvc\Model\Query\Builder::betweenWhere для добавления выражения BETWEEN к запросу.
- Теперь Phalcon\Session\Bag автоматически внедряет стандартный DI, если он не был назначен вручную.
- Добавлен Phalcon\Forms\Manager для ссылки на формы и извлечения их из любой части приложения.
- Если элемент в Phalcon\Forms не имеет определённой метки, теперь возвращает имя элемента в качестве метки.
- Теперь, если валидатор в Phalcon\Validator определил опцию «cancelOnFail» => true, проверка будет прервана, если валидатор не пройдёт.
- Добавлен Phalcon\Validation\Validator\Between для проверки значения между. Диапазон двух значений
- Добавлен Phalcon\Validation\Validator\Confirmation для проверки соответствия значения подтверждающему значению (другой атрибут в проверяемых данных).
- Phalcon\Forms\Form теперь расширяет Phalcon\Di\Injectable, позволяя разработчикам использовать сервисы приложения при инициализации формы.
- Теперь вызовы Phalcon\Mvc\Router можно связывать.
- Phalcon\Mvc\Router::getRewriteUri теперь является публичным.
- Добавлена возможность реализации произвольных условий для отмены сопоставления с помощью Phalcon\Mvc\Router\Route::beforeMatch.
- В Phalcon\Mvc\Model теперь можно настроить выдачу исключения при неудачном сохранении процесса.
- Добавлен компонент Phalcon\Assets для управления ресурсами CSS/Javascripts в приложении.
- Добавлен метод Phalcon\Annotations\Collection::getAll для возврата всех аннотаций в коллекции, соответствующих имени.
- Добавлен компонент Phalcon\Crypt для обеспечения средств шифрования для приложений Phalcon.
- Теперь Phalcon\Http\Request: get, getQuery и getPost возвращают соответствующие суперглобальные переменные в случае отсутствия параметров.
- Теперь Phalcon\Mvc\Router поддерживает ограничения хоста simple/regex.
- Добавлена поддержка фильтрации/очистки в Phalcon\Validation.
- Добавлены события beforeValidation/afterValidation в Phalcon\Validation и Phalcon\Forms\Form.
- Добавлена возможность регистрации пользовательских опций в элементах Phalcon\Forms\Form.
И так далее...
Примечание: полный перевод текста не представлен, поскольку некоторые фрагменты содержат специфическую терминологию, для корректного перевода которой требуются дополнительные технические знания.
Опубликовать ( 0 )