Это довольно странно. Я настроил кеширование с Memcached следующим образом:
framework.yaml
framework:
cache:
app: app.memcached_adapter
services.yaml
app.memcached_client:
class: Memcached
factory: 'Symfony\Component\Cache\Adapter\MemcachedAdapter::createConnection'
arguments: [['%app.memcached.dsn.1%', '%app.memcached.dsn.2%']]
public: true
app.memcached_adapter:
class: Symfony\Component\Cache\Adapter\MemcachedAdapter
arguments:
- '@app.memcached_client'
public: true
Я могу очистить кеш в терминале без каких-либо ошибок, но когда я загружаю свой сайт, я получаю следующее:
Type error: Argument 1 passed to Symfony\Component\Cache\Adapter\MemcachedAdapter::__construct()
must be an instance of Memcached, string given, called in
/users/me/project/please-dont-mention-the-company/sports/var/cache/lcl/ContainerXqbuh45/srcLclDebugProjectContainer.php
on line 1029
Посмотрев в указанный сгенерированный контейнерный класс, я нашел это:
/**
* Gets the public 'cache.app' shared service.
*
* @return \Symfony\Component\Cache\Adapter\TraceableAdapter
*/
protected function getCache_AppService()
{
return $this->services['cache.app'] = new \Symfony\Component\Cache\Adapter\TraceableAdapter(new \Symfony\Component\Cache\Adapter\MemcachedAdapter('kRTmoLLARw'));
}
Понятия не имею, как она генерируется с этой строкой в качестве аргумента, это должен быть клиент memcached!
Есть идеи? Что-нибудь, что я могу проверить без отладки генерации класса контейнера?