- Не отключалась буферизация вывода, из-за чего в случае исключения в
callbackмогла возникнуть ошибка[ErrorException] ob_start(): Cannot use output buffering in output buffering display handlers.
- расширена зависимость до
symfony/contracts: ^1.1.8 || ^2.0 || ^3.0ради совместимости сsymfony/symfony: ^4.4.
- зависимость от
symfony/cache-contracts: ^2.1иsymfony/service-contracts: ^2.1заменена наsymfony/contracts: ^2.5 || ^3.0
- возможность отключения exception chaining при ошибке кешируемого callback
методом
\WebArch\BitrixCache\Cache::setCallbackExceptionChaining().
- ограничение
psr/cache: ^1.0для поддержкиPHP 8.0.
- незначительные изменения кода в связи с обнаруженными ошибками и предупреждениями от PHPStan и PhpStorm;
- обновление
friendsofphp/php-cs-fixerс^2.16до^3.0.
- по умолчанию в
\WebArch\BitrixCache\LockRegistryбыл доступен только один конкурирующий запрос, а теперь 12.
- формально некорректные вызовы
set_error_handler()в\WebArch\BitrixCache\LockRegistry::open()и\WebArch\BitrixCache\Test\CacheItemTest::testNoLoggerTriggersUserWarning(); - поддержка
PHP ^8.0
- Поддержка тегированного кеша в
\WebArch\BitrixCache\AntiStampedeCacheAdapter
- Поддержка
PHP 8.0
- Замыкание, переданное в
\WebArch\BitrixCache\Cache::callback(), теперь может установить теги кеша.
Изменений в клиентском коде нет. Исправлена интеграция с Travis CI: поддержка xDebug v3
- Метод
\WebArch\BitrixCache\Cache::clearByIblockTag(), очищающий кеш по тегу инфоблока
- Создание
\WebArch\BitrixCache\AntiStampedeCacheAdapterпри использовании неcacheenginememcacheприводило к ошибкеInvalidArgumentException
- Адаптер
\WebArch\BitrixCache\AntiStampedeCacheAdapterс двойной защитой от "давки в кеше" ("cache stampede"; другое название - "собачья свалка" , "dog piling") методами "блокировки"("locking") и "вероятностного преждевременного устаревания"("probabilistic early expiration"), адаптированными из Symfony Cache 5.1
- Класс
\WebArch\BitrixCache\BitrixCacheигнорируется при составлении coverage отчёта
- Тесты: команда
composer check:allдля выполнения всех проверок сразу: code-style, статический анализ кода, unit тесты и проверка безопасности используемых пакетов/библиотек.
- Метод
\WebArch\BitrixCache\Cache::setPathByClass(), которым можно удобно выставлять$pathпо имени любого класса.
- Метод
\WebArch\BitrixCache\Cache::set()больше не перезаписывает существующий кеш, а возвращаетfalse
- Вложенное кеширование замыканий приводило к некорректной записи кеша из-за того, что экземпляр
\Bitrix\Main\Data\Cacheхранился в статическом свойстве.
- Сообщение об исключении в замыкании содержит больше информации для использования в системах, не поддерживающих exception chaining.
- Тесты: автоматизация статического анализа кода и code style
- Исключение из релиза файлов и папок, необходимых для разработки
- Исправление всех ошибок, найденных статическим анализатором PHPStan
- Обновление
webarchitect609/bitrix-taxidermistдо^0.1
- Применена библиотека
webarchitect609/bitrix-taxidermistдля изготовления имитаций Битриксовых классов
- Новая версия работы с кешем
\WebArch\BitrixCache\Cache, которая используется на версии 2.0. Подробнее смотрите в инструкции по обновлению - 100% покрытие
\WebArch\BitrixCache\CacheUnit-тестами - Добавлена поддержка PHP Coding Standards Fixer с интеграцией с PhpStorm
- Лицензионное соглашение изменено на BSD-3-Clause
- Класс
\WebArch\BitrixCache\BitrixCacheпомечен полностью устаревшим и будет удалён в версии 2.0. Подробнее смотрите в инструкции по обновлению
- PHP ^5.5 и <= 7.1 больше не поддерживаются
- Добавлено использование Roave Security Advisories
Вместо исключения UnexpectedValueException в executeCallback() и невозможности из-за этого очистить кеш через административную панель добавлена автоматическая перезапись кеша. Ситуация может произойти при переходе кода от использования resultOf() к callback() при наличии существующего валидного кеша.
Добавлен метод очистки кеша \WebArch\BitrixCache\BitrixCache::clear(), который может использоваться для сброса кеша без необходимости вызывать \WebArch\BitrixCache\BitrixCache::callback().
Повышение удобства
Новый метод BitrixCache::callback() возвращает строго тоже самое, что возвращается из кешируемого замыкания, а не только массив, что упрощает работу при кешировании объектов или примитивных типов; Уточнено требование к версии php: ^5.5 | ^7.1; Помечены устаревшими и будут удалены с версии 2.0 все setter-методы в BitrixCache, начинающиеся с 'with*'; Добавлены setter-методы в BitrixCache, начинающиеся с 'set*', для замены устаревших; Помечены устаревшими и будут удалены с версии 2.0 методы BitrixCache::resultOf() и BitrixCache::execute(); Добавлены методы BitrixCache::callback() и BitrixCache::executeCallback() для замены устаревших;