私は現在、最初に予想したよりも大きく成長した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%
が変数、定義、エイリアスであるかどうか...