2012-04-05 7 views
2

私は現在、最初に予想したよりも大きく成長したSilex\Applicationをリファクタリングしています。この作業の一環として、サービス定義をソースからservices.ymlに移動し、代わりにSymfony\Component\DependencyInjection\ContainerBuilderを呼び出します。コードは次のようになります。Symfony Component DependencyInjectionを使用したパスによるSilexアプリケーションの設定

Setup::createAnnotationMetadataConfiguration(array("src/Project/Entity"), true); 

私services.ymlで次のようになります:

services: 
    doctrine_config: 
     class: Doctrine\ORM\Configuration 
     factory_class: Doctrine\ORM\Tools\Setup 
     factory_method: createAnnotationMetadataConfiguration 
     arguments: 
      - [src/Project/Entity] 
      - true 

use Symfony\Component\DependencyInjection\ContainerBuilder; 
use Symfony\Component\Config\FileLocator; 
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader; 

$container = new ContainerBuilder(); 
$loader = new YamlFileLoader($container, new FileLocator(__DIR__)); 
$loader->load(__DIR__ . '/services.yml'); 

Doctrine\ORM\EntityManager作成の一部である次のコード行を、考えてみましょう

最後に、私の質問です。コンテナビルダーにキーと値を渡したいと思います。コンテナビルダーにはパラメータなどのアクセスが可能です。 Doctrine-Setupの最初の引数として[src/Project/Entity]の代わりに、[%ROOT_PATH%/src/Project/Entity]%ROOT_PATH%がこの$container->???('ROOT_PATH', dirname(__DIR__))のようなContainerBuilderに追加されています)を実行します。

私はこのドキュメントには何も見つかりませんでした。 ContainerBuilder.phpを読んで何かを見つけることができますが、その用語についてはわかりません。私のシナリオで%OOT_PATH%が変数、定義、エイリアスであるかどうか...

答えて

2

自分で見つけました。

これは、追加するのと同じくらい簡単です:

$container->setParameter("ROOT_PATH", dirname(__DIR__)); 

を上記の私のスニペットで。

関連する問題