компилируется...
Перейти к основному содержанию
Рекомендовать во Вконтакте Рекомендовать в Фейсбуке Рекомендовать в Твиттере

Новое в Symfony 4.4: Улучшения кэша

Позволяет использовать URL DSN в PDO-адаптерах.

Адаптер кэша PDO позволяет настроить соединение несколькими способами: с помощью объекта PHP PDO, Doctrine DBAL Connection или Data Source Name (DSN). В Symfony 4.4 также можно будет использовать URL DSN. Это означает, например, что вы можете повторно использовать значение DATABASE_URL, если захотите:

# config/packages/cache.yaml
framework:
    cache:
        pools:
            cache.app:
                adapter: cache.adapter.pdo
                provider: app.my_pdo_provider

services:
    app.my_pdo_provider:
        factory: ['Symfony\Component\Cache\Adapter\PdoAdapter', 'createConnection']
        arguments:
            - '%env(DATABASE_URL)%'

Добавлены новые маршаллеры

В информатике маршаллер преобразует представление объекта памяти в формат данных, пригодный для хранения или передачи. В Symfony 4.4 мы добавили двух маршаллеров в компонент Кэша.

Маршалинг в информатике — процесс преобразования информации, хранящейся в оперативной памяти, в формат, пригодный для хранения или передачи. Процесс похож на сериализацию. Обычно применяется тогда, когда информацию необходимо передавать между различными частями одной программы или от одной программы к другой

Первый - TagAwareMarshaller, который оптимизирует хранение данных при использовании адаптеров кэша с поддержкой тегов. Этот маршаллер включен автоматически, так что вам не нужно ничего делать.

Второй - DeflateMarshaller, который сжимает содержимое перед кэшированием для экономии места (а затем автоматически сжимает его, чтобы весь процесс был прозрачным для пользователя).

Этот маршаллер не включен по умолчанию, поскольку это может нарушить пулы кэша, которые разделяются между различными приложениями. Вы можете включить его с помощью декорирования:

# config/services.yaml
services:
    Symfony\Component\Cache\Marshaller\DeflateMarshaller:
        decorates: cache.default_marshaller
        arguments: ['@Symfony\Component\Cache\Marshaller\DeflateMarshaller.inner']

Более быстрое удаление элементов кэша

Адаптеры кэша на базе файловой системы используют вложенную структуру каталогов для хранения своего содержимого. В Symfony 4.4 мы ввели некоторые оптимизации для более быстрой навигации по структуре каталогов при удалении элементов.

Профилирование Blackfire показало значительное улучшение производительности (до 100%) благодаря удалению тысяч вызовов функций, связанных с RecursiveDirectoryIterator.

Простая настройка пулов кэширования по цепочке

В Symfony 4.4 определение пулов кэша будет намного проще:

# config/packages/cache.yaml
framework:
    cache:
        pools:
            my_chained_pool:
                default_lifetime: 12
                adapters:
                  - cache.adapter.array
                  - cache.adapter.filesystem
                  - { name: cache.adapter.redis, provider: 'redis://foo' }

Комментарии

Пока что нет комментариев, вы можете быть первым.
Войти или Регистрация , чтобы оставлять комментарии.
Наш сайт использует куки. Узнайте больше о нашем использовании куки: политика в отношении файлов cookie
Наш сайт существует только благодаря показу онлайн-рекламы нашим посетителям.
Пожалуйста, поддержите нас, отключив блокировку рекламы.