2017-04-24 6 views
0

YAML 구성 API 내에서 고민 중입니다. 해당 문서는 here입니다. 내 사용 사례 :실버 스트라이프 3 구성 조건

나는이 "설정"속성

class Foo extends Object { 
    private static $host = null; 
    private static $port = null; 
} 

지금은 환경에 따라 서로 다른 호스트 이름을 필요

,하지만 같은 포트가있는 클래스가 있습니다. dev 환경에서 $ 호스트는 1.1.1.1이어야하고 실제 환경에서는 2.2.2.2가되어야한다고 가정합니다. 포트는 10000으로 설정해야합니다. 만 "바 :: null의 예에서

--- 
Name: myexcitingconfig 
--- 
Only: 
    environment: 'dev' 
--- 
Foo: 
    host: '1.1.1.1' 
    port: 10000 
--- 
Only: 
    environment: 'live' 
--- 
Foo: 
    host: '2.2.2.2' 
    port: 10000 
--- 
Bar: 
    test: 'hooray' 

,"푸 "의 모든 속성 :

다른 모든 섹션은 모든 ENV 유형

config.yml (작동하지 않습니다)

유효 기간이 남아 있어야합니다 테스트 "가 설정됩니다.

Debug::dump(Config::inst()->get('Foo', 'host')); // => null 
Debug::dump(Config::inst()->get('Foo', 'port')); // => null 
Debug::dump(Config::inst()->get('Bar', 'test')); // => 'hooray' 

내가 뭘 잘못하고 있니?

+0

클래스 이름 공간이 있습니까? – bummzack

+0

@bummzack : 아니요, 아니요 – derRobert

답변

2

YAML 파일의 구조는 실제 구성 지침이 YAML 문서 "헤더"로 잘못 해석되고 환경 기반 규칙이 config로 해석되는 것으로 생각합니다. 이런 식으로 해봤습니까?

--- 
Name: myexcitingconfig 
--- 
# Global config here 
Bar: 
    test: 'hooray' 

--- 
Only: 
    environment: 'dev' 
--- 
Foo: 
    host: '1.1.1.1' 
    port: 10000 
--- 
Only: 
    environment: 'live' 
--- 
Foo: 
    host: '2.2.2.2' 
    port: 10000 
--- 

또한 네임 스페이스가 적용된 클래스를 사용할 때는 정규화 된 클래스 이름을 YAML 파일에 작성해야합니다. Foo 네임 스페이스 My\Awesome\Module에있는 경우 그래서, 당신의 구성 항목은 다음과 같습니다

My\Awesome\Module\Foo: 
    host: '2.2.2.2' 
    port: 10000 
+0

예! "유일한"조건 후에 구문 분석 된 구성 설정이없는 것으로 보입니다. 다음 작품,하지만 마지막 "TEST2"속성 : ' --- 이름 : myexcitingconfig --- 바 : 시험 : '만세' --- 만 : 환경 'DEV' --- 푸 : 호스트 : '1.1.1.1' 포트 : 10000 --- 만 : 환경 : '라이브'--- 푸 : 호스트 : '2.2.2.2' 포트 : 10000 --- 바 : test2 : '만세, 또' ' – derRobert

0

예! "유일한"조건 후에 구문 분석 된 구성 설정이없는 것으로 보입니다. 다음은 작동하지만 마지막 "test2"속성은 작동하지 않습니다.

--- 
Name: myexcitingconfig 
--- 
Bar: 
    test: 'hooray' 
--- 
Only: 
    environment: 'dev' 
--- 
Foo: 
    host: '1.1.1.1' 
    port: 10000 
--- 
Only: 
    environment: 'live' 
--- 
Foo: 
    host: '2.2.2.2' 
    port: 10000 
--- 
Bar: 
    test2: 'hooray, also' 
+0

평가가 잘못되었다고 생각합니다. 구성 설정은 "유일한"조건 후에 구문 분석되어야하지만 한 yaml 파일에서 동일한 객체를 두 번 "재구성"할 수는 없습니다. 당신이'바 '를 맨 위에,'바즈'를 맨 아래에 둔다면'바즈 '도 데려 갈 것이라고 확신합니다. – bummzack