2012-03-13 3 views
0

젠드 프레임 워크로 자동 로딩 기능을 이해하는 중입니다.젠드 프레임 워크에서 자동 로딩 수수께끼

질문 :

1 - 나는라는 폴더를/내 응용 프로그램에 추가 폴더를하고 싶은 말은 X/Foo.php라는 이름의 클래스를 포함. 컨트롤러에서 새로운 Foo()를 할 때 어떻게 자동로드 되나요? 그리고 클래스 Foo라는 이름을 어떻게 지정해야합니까? "Foo"가 괜찮습니까? 아니면 "Application_X_Foo"라는 이름을 사용해야합니까?

2 -이 이야기는 $ autoloader-> registerNamespace ('My_')로 무엇입니까? My_ 네임 스페이스의 클래스가 어디에 있어야합니까?

감사합니다 추가 할 경우 클래스 이름으로 Application_Model_Foo을 사용해야하고

2 .- "응용 프로그램/모델/Foo.php"아래에있는 응용 프로그램 특정 클래스의

답변

1

1 .- 다른 네임 스페이스/라이브러리를 프로젝트에 추가하면 라이브러리/폴더 아래에 추가 할 수 있습니다. "My_"네임 스페이스의 경우 "library/My"폴더에 추가해야합니다. 내가 젠드 프레임 워크 빠른 시작 가이드에 모습을 가지고 당신을 권 해드립니다 것이다 그런데

|-- application 
| |-- Bootstrap.php 
| |-- configs 
| | `-- application.ini 
| |-- controllers 
| | |-- ErrorController.php 
| | `-- IndexController.php 
| |-- models 
| `-- views 
|  |-- helpers 
|  `-- scripts 
|   |-- error 
|   | `-- error.phtml 
|   `-- index 
|    `-- index.phtml 
|-- library 
|-- public 
| |-- .htaccess 
| `-- index.php 
`-- tests 
    |-- application 
    | `-- bootstrap.php 
    |-- library 
    | `-- bootstrap.php 
    `-- phpunit.xml 

: 여기

, 당신은 기본 젠드 프레임 워크 프로젝트의 디렉토리 구조를 살펴 가질 수 http://framework.zend.com/manual/en/learning.quickstart.html

+0

1 - ok하지만이 방법을 사용하면 모델/잠재적으로 다른 도메인에 속할 수있는 클래스로 채워져있을 것입니다. application/models/mypackage/Foo.php와 같은 서브 패키지를 가질 수 있습니까? 2 -이 두 번째 시나리오와 관련해서는 모두 명확합니다. – nourdine

+0

올바른 구문을 사용하는 경우 원하는 모든 하위 디렉터리를 가질 수 있습니다. 지정한 것 중 올바르지 않은 것이 있다면 모델 대신/MyPackage/Foo.php를 사용해야하며이 클래스는 Application_Model_MyPackage_Foo라고합니다. 또는 이것이 필요한 경우 모듈 식 구조를 사용할 수 있습니다. http://framework.zend.com/manual/en/zend.controller.modular.html – arraintxo

+0

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

관련 문제