2016-12-15 1 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

저는 서비스를 정의하는 방법을 묻는 것이 아니라 사용 방법을 묻는 것입니다. Symfony 컨테이너를 사용하면 yaml을 사용하여 서비스를 정의 할 수 있습니다. Pileple 컨테이너 (Silex가 사용)는 그렇지 않습니다. – Cerad

+0

사실 나는 분명히했는지 모른다. yaml을 사용하여 방화벽을 설정 중이므로 다음과 같이 나타내려고합니다 : '$ app [ 'security.firewalls'] = 배열 ​​( 'admin'=> 배열 ( '패턴'=> '^/관리자 ', 'HTTP '=> 사실, '사용자 '=> 함수() ($ 응용 프로그램)을 사용하여 {반환 새로운 UserProvider(); } ), 는)' –

+0

아니, 당신은 명확했다. yaml을 구문 분석하고 DIC를 컴파일해야합니다. – Federkun

관련 문제