我寻找将更多参数注入symfony配置缓存的方法。目前,我在kernel.cache_warmer
中使用services.yml
挂钩到我的类来生成目录中的另一个yml文件。然后,它将包含在symfony配置缓存中,是否有任何可能的方法将变量注入生成的配置缓存而无需创建Yml文件?
基本上,我想在运行app/console cache:clear
时每次都更改缓存键。这是我的服务,
services.yml
imports: - { resource: version.yml } services: cacheManager: class: "%cacheManager.class%" calls: - [ setCachePrefix, ["%memcache.deploymentPrefix%"]] memcacheDataVersioning: class: WarmUpListener tags: - { name: kernel.cache_warmer, priority: 0}
WarmUpListener.php
class WarmUpListener implements CacheWarmerInterface{ public function warmUp($dir) { $array = ['parameters' => ['memcache.deploymentPrefix' => date('Ymd')]]; $dumper = new Dumper(); $yaml = $dumper->dump($array); file_put_contents(__DIR__ . '/../Resources/config/version.yml', $yaml); } public function isOptional() { return false; } }
答案 0 :(得分:0)
我已添加到DependencyInjection / * Extension类,如下所示
的 DependencyInjection / somethingExtension.php 强> 的
$container->setParameter('memcache.deploymentPrefix', date('Ymd') );
这将有助于在缓存的配置中注入变量,而无需生成Yml文件,并且可以删除问题上的所有warmUp连接。