2

Silex\Application現在、当初の予想よりも大きくなった a をリファクタリングしています。この作業の一環として、サービス定義をソースから services.yml に移動し、Symfony\Component\DependencyInjection\ContainerBuilder代わりに a を呼び出します。コードは次のようになります。

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

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

最後に、私の質問です。たとえば、Doctrine-Setup の最初の引数としての代わりに[src/Project/Entity]、次のようなことをしたい:[%ROOT_PATH%/src/Project/Entity]%ROOT_PATH%ように ContainerBuilder に追加されます。$container->???('ROOT_PATH', dirname(__DIR__)).

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

4

1 に答える 1

2

自分で見つけました。

追加するのと同じくらい簡単です:

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

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

于 2012-04-05T13:25:14.637 に答える