0

sncRedisBundle を正常にインストールし、コントローラー内で predis 要素を使用しました。

$this->container->get('snc_redis.default');

拡張機能内で同じことをしたい:

class MyExtension extends Extension
{
    /**
     * {@inheritDoc}
    */
    public function load(array $configs, ContainerBuilder $container)
    {
        $configuration = new Configuration();
        $config = $this->processConfiguration($configuration, $configs);
        $redis = $container->get('snc_redis.default');
    }
}

しかし、私は得る:

The service definition "snc_redis.default" does not exist.

これはスコーピングの問題ですか?拡張機能内から redis にアクセスするにはどうすればよいですか?

ありがとう!

4

1 に答える 1

0
services:
    site:
        class: Emlaktown\AppBundle\Site\Site
        arguments: [%api_url%, "@request_stack", "@service_container"]

....

use Symfony\Component\DependencyInjection\Container;

....

public function __construct($apiUrl, RequestStack $requestStack, Container $container)
    {
        $this->client = new Client($apiUrl);
        $this->redis = $container->get('snc_redis.cache');
        $request = $requestStack->getCurrentRequest();
        $this->client->setDefaultOption('Accept-Language', $request->getLocale());
    }
于 2015-02-13T14:17:11.740 に答える