젠드 프레임 워크로 자동 로딩 기능을 이해하는 중입니다.젠드 프레임 워크에서 자동 로딩 수수께끼
질문 :
1 - 나는라는 폴더를/내 응용 프로그램에 추가 폴더를하고 싶은 말은 X/Foo.php라는 이름의 클래스를 포함. 컨트롤러에서 새로운 Foo()를 할 때 어떻게 자동로드 되나요? 그리고 클래스 Foo라는 이름을 어떻게 지정해야합니까? "Foo"가 괜찮습니까? 아니면 "Application_X_Foo"라는 이름을 사용해야합니까?
2 -이 이야기는 $ autoloader-> registerNamespace ('My_')로 무엇입니까? My_ 네임 스페이스의 클래스가 어디에 있어야합니까?
감사합니다 추가 할 경우 클래스 이름으로 Application_Model_Foo을 사용해야하고
2 .- "응용 프로그램/모델/Foo.php"아래에있는 응용 프로그램 특정 클래스의
1 - ok하지만이 방법을 사용하면 모델/잠재적으로 다른 도메인에 속할 수있는 클래스로 채워져있을 것입니다. application/models/mypackage/Foo.php와 같은 서브 패키지를 가질 수 있습니까? 2 -이 두 번째 시나리오와 관련해서는 모두 명확합니다. – nourdine
올바른 구문을 사용하는 경우 원하는 모든 하위 디렉터리를 가질 수 있습니다. 지정한 것 중 올바르지 않은 것이 있다면 모델 대신/MyPackage/Foo.php를 사용해야하며이 클래스는 Application_Model_MyPackage_Foo라고합니다. 또는 이것이 필요한 경우 모듈 식 구조를 사용할 수 있습니다. http://framework.zend.com/manual/en/zend.controller.modular.html – arraintxo
ooh yes u r right! 기본적으로 모델에서 원하는만큼 깊게 갈 수 있고 원하는 모든 하위 패키지를 만든 다음 그 구조를 내가 정의하는 클래스의 이름으로 반영 할 수 있습니다. 예를 들어, Application_Model_A_B_C_D_Foo의 클래스 이름을 가진 A/B/C/D/Foo.php 모델. 좋은! 나는 조금 파고 이것에 의존하는 것처럼 보입니다. http://framework.zend.com/manual/en/zend.loader.autoloader-resource.html#zend.loader.autoloader-resource.module – nourdine