2011-05-04 5 views
3

이것은 아마도 zend에 대해 배우는 초보자에게 가장 실망스러운 부분 일 것입니다.zend에서 플러그인을 만들면 어디에서 파일을 저장합니까?

어디에서 새 클래스 파일을 만들 수 있습니까? http://forums.zend.com/viewtopic.php?f=69&t=4988

또는 여기에 또 다른 하나 :이 플러그인은 http://framework.zend.com/manual/1.11/en/zend.controller.plugins.html

그러나 그들 중 누구도 언급하지를 작성해야

여기 exemple이있다?

답변

4

가장 좋은 아이디어는 오토로더가 클래스를 찾을 수있는 곳에 클래스를 배치하는 것입니다. 또한 Zend 클래스 이름 구조를 모방 한 의사 규정입니다.

예를 들어 "Foo"라는 컨트롤러 플러그인을 만들었다 고 가정 해보십시오. 클래스 이름을

class My_Controller_Plugin_Foo extends Zend_Controller_Plugin_Abstract 

library/My/Controller/Plugin/Foo.php으로 저장하십시오.

단순히 application.ini 파일이 추가, (이것은 PHP 5.3 네임 스페이스 아니라, 주) 오토로더가 "내"네임 스페이스를 선택

autoloaderNamespaces.My = "My_" 

여기에 유일한 제한이 있다는 것입니다해야합니다 귀하의 " 내 "폴더가 포함 경로에 있어야합니다. "라이브러리"폴더에 넣으면이 문제가 해결됩니다.

+0

답변 해 주셔서 감사합니다. 나는 _autoload 메카니즘을 아주 좋아한다. 나는 그걸로 갈거야. –

+0

ZF는 극도로 이해하기 어려운 App_Model_Rubbish 자료로 입증 된 자동로드 스키마 (/ 라이브러리의 라이브러리,/models)를 크게 변경 한 것 같습니다. –

4

당신은 당신의 application.ini 파일에 플러그인 디렉토리를 지정할 수 있습니다

resources.frontController.plugindirectory = APPLICATION_PATH "/plugins" 

또는

이 당신이
/path/to/library/My/Controller/Plugin/MyPlugin.php 

젠드에서 Application's Directory Layout에 대해 자세히 알아 있다고 가정
autoloaderNamespaces[] = "My_" 
resources.frontController.plugins.MyPlugin = 
          "My_Controller_Plugin_MyPlugin" 

뼈대.

+0

정말 고마워요. 그것은 그들을 모두 해결할 수있는 링크였습니다! 내가 새로 만든 클래스에 적용 할 수있는 몇 가지 일반적인 규칙을 찾고있었습니다. 그것에 대해 웹에 더 많은 반향이 있어야합니다. –

관련 문제