2010-08-12 2 views
1

컨트롤러에서 invokeView() 함수가있는 프레임 워크에서 작업하고 있습니다. 지금부터는 기본적으로 $ target PHP 클래스에 include가 포함되어 있습니다.이 클래스는 똑똑한 템플릿을 표시합니다. 나는 $ target 클래스가 $ target 객체를 호출하는 곳과 같은 컨트롤러 내부에서 생성 된 $ response 객체에 접근 할 수있게하고 싶다.
$ target 페이지를 전역 영역 (예 : 세션 저장소)에서 $ response 객체를 가져 오는 대신 $ target 클래스에 전달하고 싶습니다. 아마도 $ target 객체에 display와 같은 함수를 넣고 싶습니다. ($ 응답). 이런 식으로하면 호출 스택이 계속 성장하고 성장하는 것처럼 보입니다. 좋지는 않을 것입니다.PHP 호출 스택 질문

내가 말하는 것은 말이 되니? 그렇다면 세션에서 $ 응답을 전달하거나 세션에서 응답을 얻는 것이 더 의미가 있습니까?

감사합니다.

+0

'invokeView'는 어떤 인수를 취할 수 있습니까? '$ target'은 View 클래스입니까? "일반적으로"컨트롤러는 뷰에서 사용할 수있는 컨텍스트 변수를 설정합니다. $ 응답을 추가 할 수 있습니까? 컨트롤러에서'$ target' 클래스를 설정하는 메소드를 오버라이드하고'$ target' 클래스'__construct' 메소드에 추가 매개 변수를 추가하는 것은 어떻습니까? – sberry

+0

컨트롤러 클래스는 $ request 객체의 속성을 기반으로 명령을 실행합니다. 모든 명령이 실행되면 (명령이 다른 명령으로 전달 된 경우) 컨트롤러는 방금 호출 된 명령과 해당 명령의 상태 (OK, ERROR 등)에 따라 표시 할보기를 결정합니다. 적절한 뷰가 있으면 'register'라고 말하면 invokeView ('target')가 호출됩니다. InvokeView는 다음을 호출합니다. '/lib/pages/target.php'를 포함합니다. 현재 'include'설정을 사용하여 대상에 액세스 할 수있는 세션 var에 $ request (또는 $ response) 객체를 추가해야합니다. – user417918

+0

변수를 전달하는 것이 최선의 방법인지 확실하지 않습니다. 대상 클래스에 _-construct가 있다면 컨트롤러 클래스에서 인스턴스화하여 스택에서 결코 벗어날 수없는 호출을 많이 생성 할 것이라고 걱정합니다. – user417918

답변

0

아니요, 의미가 없으므로 문제가되지 않습니다. PHP는 중첩 된 코드 호출을 너무 깊게 처리하는 함수 중첩 제한을 가지고 있습니다.

관련 문제