2011-01-26 4 views
0

이것은 내 액션 내 변수 선언입니다 : public $var = sfConfig::get('constant_name');Symfony : 액션 내부에서 클래스 속성으로 상수를 선언하는 문제

PHP 오류를 반환합니다 : Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in C:\wamp\www\project\app\module\actions\actions.class.php on line 13

내가 $var = sfConfig::get('constant_name'); 넣어 잘 때 작동합니다. 문제는 sfConfig :: get()을 action 클래스 내부의 함수 외부에서 사용하면 발생합니다. 왜 이것이 작동하지 않는가? 감사.

답변

0

, 당신의 행동 클래스의 preExecute 방법을 사용해보십시오 :

public function preExecute() 
{ 
    $this->var = sfConfig::get("constant_name"); 
} 

이 그럼 당신은 모든 방법에 $this->var를 사용 할 수 있습니다 당신의 액션 클래스를 사용하여 원하는 결과를 얻습니다. 클래스 멤버를 초기화하려면 상수 값 (예 : "42"또는 "Foo")을 사용해야합니다. 함수 호출 결과를 사용할 수 없습니다.

+0

대신'__construct()'방식을 사용하지 않는 이유는 무엇입니까? – Shoe

+0

symfony는'preExecute'와'postExecute'를 사용하여 언급합니다 - http://www.symfony-project.org/gentle-introduction/1_4/en/06-Inside-the-Controller-Layer#chapter_06_sub_repeating_code_for_several_action_of_a_module을보십시오. 'parent :: __ construct()'메서드를 호출하는 동안'__construct()'는 괜찮을 것입니다. Symfony의'executeMyActionName()'문맥에서 의미가있는'preExecute()'만 사용했습니다. – richsage

관련 문제