20

これはおそらく不可能だと思いますが、YAML config/services/etc 内で PHP クラス定数を使用するクリーンな方法はありますか? Symfony2 のファイル?

たとえば、これがある場合:

namespace My\Bundle\DependencyInjection;

class MyClass
{
    const MY_CONST = 'cookies';
}

次のようなことは可能ですか (.yml ファイル内):

services:
    my_service:
        class: Some\Class
        arguments:
            - %My\Bundle\DependencyInjection\MyClass::MY_CONST%

これは、2 つの間の一貫性を維持するのに大いに役立ちます。

4

7 に答える 7

17

Symfony 3.2 より前のバージョンでは、PHP 定数の注入は XML でのみ機能します。

<parameter key="my_service.my_const" type="constant">My\Bundle\DependencyInjection\MyClass::MY_CONST</parameter>

yml ファイルを保持したい場合は、xml ファイルを services.yml にインポートするだけです。構成スタイルを混在させるのは少し見苦しいかもしれませんが、私の知る限り、これが唯一の方法です。

これがうまくいかない場合は、あなたの質問に対する私のコメントが適用されます。

于 2013-02-06T09:40:24.353 に答える
-6

これはうまくいくはずです

arguments:
 - <?php echo My\Bundle\DependencyInjection\MyClass::MY_CONST."\n" ?>
于 2013-02-05T18:06:13.553 に答える