2011-07-17 2 views
3

저는 Zend Framework의 초보자이며 문서를 이해하기 어렵습니다. 내가 사용한 유일한 PHP 프레임 워크는 CodeIgniter뿐입니다.인스턴스화 된 객체는 zend 프레임 워크에 어디에 저장됩니까?

내가 사용하는 라이브러리에서이 방법을 사용하고 있습니다 : 지금까지 나는이 코드는 젠드에서 어떻게 작동하는지 알아내는거야

//load the My_Library class and assign the object to $this->myLibrary property 
$this->load->library('my_Library'); //CodeIgniter way 

public function index() 
{ 
    $this->my_Library->method(); //make use of the methods in the loaded library 
} 

는 부트 스트랩 클래스의 말 :

protected function _initSetDoctype() 
{ 
     $doctypeHelper = new Zend_View_Helper_Doctype(); 
     $doctypeHelper->doctype('XHTML1_STRICT'); 
} 

그리고에 layout.phtml 파일 우리는 넣을 수 있습니다 :

<?php echo $this->doctype() ?> 

내 질문은 : 나는 새로운인스턴스화했기 때문에 ZF는 $this->doctype을 어떻게 지정했으며이를 볼 수있게 만들었습니까? 이 값이 뷰 객체를 업데이트하는 저장 장치가 있습니까?

젠드에서 흐름이 어떻게 작동하는지 알아 내려고 노력하면서 리소스를 활용하는 방법을 더 잘 이해할 수있었습니다. 미안해. 내 영어를 이해하기 힘들다면 @ _ @ 대단히 감사합니다!

+0

이 질문에 답변 해 드릴 수 있습니다. 디버거를 시작하십시오! 진짜 질문이 아니라는 결론을 내리는 투표. – markus

+0

프레임 워크를 알고 나면 설명서가 나쁘지 않습니다. 롤! 놀랍게도, 그들은 ZF를 독립형 객체로 분리하고 MVC 패턴으로 분리하는 작업을 잘 수행하지 못했습니다. 일부 예제는 MVC에 클래스를 올바르게 구현하는 방법에 대한 정보가 전혀없는 반면 다른 예제는 MVC 패턴에서만 작동합니다. –

답변

2

보통 ZF는 Zend_Registry를 사용하여 생성 한 객체의 인스턴스를 저장합니다. 제공 한 구체적인 예 (예 : _initSetDoctype)는 Zend_View_Helper_Doctype의 생성자가 Zend_Registry에 이미 저장되어 있는지 여부를 확인하기 때문에 작동합니다. 따라서 부트 스트랩에서 new Zend_View_Helper_Doctype()은 레지스트리에 doctype 정보를 저장하고 (처음 생성되기 때문에), layout.phtml에서 레지스트리에 저장된 값이 검색됩니다.

Zend_View, Zend_Layout과 같은 다른 ZF 리소스 (또는 개체)도 레지스트리를 통해 저장되고 액세스됩니다.

물론 자신의 개체 (또는 무엇이든)를 레지스트리에 저장할 수도 있습니다. 이렇게하면 ZF 앱의 모든 장소에서 액세스 할 수 있습니다.

+0

나는 본다! 나는이 프레임 워크를 몇 시간 동안 면밀히 조사 해왔다. CodeIgniter와 비교하면 정말 다릅니다. 고마워요! – Rei

관련 문제