FOSHttpCache с обратным прокси-сервером Symfony

Поэтому я пытаюсь настроить FOSHttpCacheBundle (последняя версия ^ 2.0) со стандартным Symfony HttpCache.

Вот содержимое моего AppCache.php в соответствии с документы:

<?php

use FOS\HttpCache\SymfonyCache\CacheInvalidation;
use FOS\HttpCache\SymfonyCache\EventDispatchingHttpCache;
use FOS\HttpCache\SymfonyCache\DebugListener;
use FOS\HttpCache\SymfonyCache\CustomTtlListener;
use FOS\HttpCache\SymfonyCache\PurgeListener;
use FOS\HttpCache\SymfonyCache\RefreshListener;
use FOS\HttpCache\SymfonyCache\UserContextListener;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\HttpCache\HttpCache;
use Symfony\Component\HttpKernel\HttpKernelInterface;
use Symfony\Component\HttpKernel\HttpCache\StoreInterface;
use Symfony\Component\HttpKernel\HttpCache\SurrogateInterface;

class AppCache extends HttpCache implements CacheInvalidation
{
use EventDispatchingHttpCache;

/**
* Overwrite constructor to register event listeners for FOSHttpCache.
*/
public function __construct(
HttpKernelInterface $kernel,
StoreInterface $store,
SurrogateInterface $surrogate = null,
array $options = []
) {
parent::__construct($kernel, $store, $surrogate, $options);

$this->addSubscriber(new CustomTtlListener());
$this->addSubscriber(new PurgeListener());
$this->addSubscriber(new RefreshListener());
$this->addSubscriber(new UserContextListener());
if (isset($options['debug']) && $options['debug']) {
$this->addSubscriber(new DebugListener());
}
}

/**
* Made public to allow event listeners to do refresh operations.
*
* {@inheritDoc}
*/
public function fetch(Request $request, $catch = false)
{
return parent::fetch($request, $catch);
}
}

Теперь согласно Symfony документы, включение прокси-сервера для кэширования — это всего лишь вопрос настройки файла app.php следующим образом (раскомментируя эту последнюю строку):

$kernel = new AppKernel('prod', false);
$kernel->loadClassCache();
$kernel = new AppCache($kernel);

Что дает мне приятное:

PHP сообщение: PHP Catchable фатальная ошибка: Аргумент 2 передан
Symfony \ Component \ HttpKernel \ HttpCache \ HttpCache :: __ construct () должен
быть примером
Symfony \ Component \ HttpKernel \ HttpCache \ StoreInterface, не указано,
вызывается в /php/api/current/web/app.php в строке 11 и определяется в
/php/api/current/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpCache/HttpCache.php
на линии 78

Что имеет смысл, учитывая конструктор класса HttpCache.

Итак, вопрос в том, является ли этот документ устаревшим, или я просто упускаю что-то действительно очевидное?

0

Решение

use Symfony\Component\HttpKernel\HttpCache\Store;

$kernel = new AppKernel('dev', true);
$kernel->loadClassCache();
$store = new Store('app/cache');
$kernel = new AppCache($kernel, $store);
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]