我试图在我的环境中使用不同的缓存系统.我想有,例如,Filesystem用于开发和memcached进行督促.
我正在使用symfony 3.3.10.
为实现这一目标,我想将CacheInterface自动装配如下:
use Psr\SimpleCache\CacheInterface;
class Api {
public function __construct(CacheInterface $cache)
{
$this->cache = $cache;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的配置文件:
config_dev.yml:
framework:
cache:
app: cache.adapter.filesystem
Run Code Online (Sandbox Code Playgroud)
config_prod.yml:
framework:
cache:
app: cache.adapter.memcached
...
Run Code Online (Sandbox Code Playgroud)
将FilesystemCache声明为服务时,错误消失:
services:
Symfony\Component\Cache\Simple\FilesystemCache: ~
Run Code Online (Sandbox Code Playgroud)
但是现在我不能为NullCache这样的测试环境建立另一个缓存系统.实际上,我只需要声明一个继承自CacheInterface的服务.这是不可能config_test使用config_dev了.
这是services.yml的开始,如果它可以帮助:
services:
_defaults:
autowire: true
autoconfigure: true
public: false
Run Code Online (Sandbox Code Playgroud)
有关如何根据环境自动装配不同缓存系统的任何想法?
这是工作配置:
use Psr\Cache\CacheItemPoolInterface;
class …Run Code Online (Sandbox Code Playgroud)