- Не отключалась буферизация вывода, из-за чего в случае исключения в
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\Cache
Unit-тестами - Добавлена поддержка 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() для замены устаревших;