2016-12-15 7 views
1

私はSilexとYAMLを使ってPHPアプリケーションを開発しています。YAMLでPHPクロージャを表現するには?

今、YAML言語の概念を使用してPHPクロージャを表現したいと考えています。何が最善の方法ですか?それを行う方法がありますか?

次のコードは、YAMLに翻訳したいものの例です。

'users' => function() use ($app) { 
    return new UserProvider(); 
} 

ありがとうございます!

答えて

0

これはSymfonyの役割です。まず、ユーザプロバイダをサービスとして定義します。 Silexを使用すると、次のようにすることができます:

$app['my_user_provider'] = function() use ($app) { 
    return new UserProvider(); 
}; 

次に、yaml設定では、使用するサービスIDを渡します。何かのように:

security: 
    user_provider: my_user_provider 
+0

私は彼がサービスを定義する方法ではなく、1つを使用する方法を尋ねていると確信しています。 Symfonyコンテナでは、yamlを使用してサービスを定義できます。 Pimpleコンテナ(Silexが使用する)はありません。 – Cerad

+0

実際に私は明らかかどうかわかりません。私はyamlを使ってファイアウォールを設定していますので、次のように表現したいと思います: '$ app ['security.firewalls'] = array( 'admin' => array( 'pattern' => '^ /管理者、 'HTTP' => trueの場合、 'ユーザー' =>関数()($アプリ)を使用する{) (新しいUserProviderを返します。 } )、 ); ' –

+0

はありません、あなたは透明でした。 yamlを解析してDICをコンパイルするだけです。 – Federkun