-1

내 목표를 달성하기 위해 이것을 구조화하는 더 좋은 방법이 있다면 여러분의 생각을 환영합니다.젠드 프레임 워크에서 어떻게 다른 액션을 실행하고 변수의 뷰 출력을 얻을 수 있습니까?

사용자가 페이지 (사이드 바, 헤더 등)를 편집 할 수있는 CMS가 있습니다.이 CMS는 모두 IndexController에서 수행됩니다.

일부 페이지에는 자체 컨트롤러 인 ContactController가 필요합니다. 그러나 나는 그들에게 똑같이 커스터마이즈 할 수 있기를 바란다.

From IndexController :: IndexAction NewsletterController :: IndexAction을 실행하고 뷰 출력을 문자열로 가져올 수 있습니까? 뷰 파일을 렌더링하고 싶지는 않지만 Action에있는 것을 실행하고 싶습니다.

답변

0

멍청한 놈 방법하지만은 : 당신이 file_get_contents을 시도했다가() 또는 컬 젠드 URL보기 도우미

+0

이것은 여러 가지 이유로 나쁜 생각입니다. 특히 : 웹 서버에 불필요한로드를 추가하고 페이지의 건물에 추가 HTTP 요청을 추가하면 (이는 동기식으로 실행되며 기본 요청을 차단하는 동안 차단됩니다. 완료). –

+0

더 이상 동의 할 수 없음 :) – banzsh

+0

동의 함, 추가 부하를 모두 생성하고 싶지는 않습니다. 다른 컨트롤러에서 원하는 것을 렌더링 할 수는 있지만 작업을 호출하지 않습니다. DB 읽기 비트를 수행합니다. – Patabugen

1

로 URL을 구축하는 동안 당신이 요구하는 것은 (ZF1에) 기술적으로 가능하지만 그것은 일반적으로 좋은 생각이 아니다. ZF 작업을 시작하는 데 소요되는 일정 수준의 오버 헤드가 있으므로 단일 요청을 처리하기 위해 여러 번 수행하려는 작업이 아닙니다. 또한 응용 프로그램을 디버그하기가 더 어려워집니다. 이 주제에 대한 자세한 내용은 Google의 'zend framework actionstack'을 참조하십시오.

당신은 무엇을 하려는지보기 도우미로 해결할 수 있습니다. 예를 들어, NewsletterController :: IndexAction에서 원하는 것이 뉴스 레터 구독 양식 인 경우 대신이 양식을 출력하는보기 도우미를 작성하십시오. 이 뷰 도우미가 출력하는 양식은 여전히 ​​NewsletterController에 제출할 수 있습니다. 그러나 얻을 수있는 것은 훨씬 빠르고 깨끗하며 테스트하기 쉽습니다.

+0

NewsletterController에서 원하는 것은 Newsletters 형식의 목록입니다. 이것은 Action의 DB에서 가져온 것이며 View에 출력됩니다. example.com/newsletter는 내가 원하는 출력을 제공하지만, IndexController :: Index와 동일한 묶음으로 포장하고 싶습니다. Index는 DB 바인딩 페이지에 제공합니다. 코드를 IndexController에 복사 (또는 이동) 할 수 있지만 별도로 정리할 수 있습니다. – Patabugen