私は、ファイルparameters.yml
持っSymfony2:twigフィルタ/拡張モジュールのparameters.ymlからコンテナパラメータを取得するには? <pre><code>parameters: ............ image_news_url: http://image.dev/news/ </code></pre> <p></p>が今私のバンドルに私は新しい小枝の拡張機能を作成します:
// src/DesktopBundle/Twig/AppExtension.php
namespace App\DesktopBundle\Twig;
use Symfony\Component\DependencyInjection\ContainerBuilder;
class AppExtension extends \Twig_Extension
{
public function getFilters()
{
return array(
new \Twig_SimpleFilter('get_image', array($this, 'getImage')),
);
}
public function getImage($domen, $image_id)
{
$o_container = new ContainerBuilder();
switch($domen){
case 'news':
return sprintf('%s%s',$o_container->getParameter('image_news_url'),$image_id.'.slide.jpg');
break;
}
}
public function getName()
{
return 'app_extension';
}
} をそして、私はエラーを持っている:You have requested a non-existent parameter "image_news_url
を。私を助けてくれますか?なぜ私がparameters.ymlにアクセスできないのか分かりません。 Thxは事前に私の英語のために申し訳ありません
+1;完全性のために、コードがコンテナに依存することを避けるのが最良の方法です。したがって、 'arguments:['%image_news_url%']'でパラメータのみを注入する方が良い選択です。 – Federkun
は、パラメータ自体を注入するのがベストプラクティスであることに完全に同意します。 :) 私は 'switch'ステートメントを見たので、いくつかの条件に基づいてパラメータを選択したいと思っていました。だから、私は自分の答えにコンテナ自体を使っていたのです。 – nifr