2011-09-08 6 views
0

저는 Zend 프레임 워크를 사용해 보았습니다. 몇 가지 작업을 해봤지만 몇 가지 다른 것들은 작업에 더 많은 어려움이있는 것처럼 보입니다.Zend Framework에서 클래스를 자동로드하는 방법

바로 지금 제 php.ini 파일을 편집 했으므로 정상적으로 작동하지만 제 질문은 양식을 작성하는 것입니다. require 모든 경로가 필요합니다. 예를 들어

:

require_once('Zend/Form.php'); 
require_once('Zend/Form/Element.php'); 
require_once('Zend/Form/Exception.php'); 
require_once('Zend/Form/Element/Text.php'); 

는 내가 부족 뭔가가 있나요?

감사합니다.

+2

Zend가 아니라 Zend Framework라고도합니다. Zend는 프레임 워크 개발을 후원하는 회사입니다. – Layke

+0

더 많은 것 : 그와 같은 것들은 분명히 문서화되어 있습니다. 문서를 읽는 데 조금 더 시간을 할애하면 대부분의 질문을 해결할 수 있습니다. –

답변

4

Zend_Autoloader에 대한 모든 것이 누락되었습니다. 1 초 그리고 몇 가지 링크와 예제를 가져 오겠습니다.

http://zendframework.com/manual/1.11/en/learning.autoloading.usage.html

OK 당신은 일반적으로 기본 자동 로더, 또 다른 내가 쓴 라이브러리 (대부분 사용자 정의 유효성 검사기 등을위한 자동 로더를 설정하여 응용 프로그램 부트 스트랩 그래서

<?php 
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap 
{ 
    protected function _initDoctype() 
    { 
     $this->bootstrap('view'); 
     $view = $this->getResource('view'); 
     $view->doctype('XHTML1_STRICT'); 
    } 

    protected function _initAutoload() 
    { 
     $auto_loader = Zend_Loader_Autoloader::getInstance(); 

     $resource_loader = new Zend_Loader_Autoloader_Resource(
      array(
       'basePath'  => APPLICATION_PATH, 
       'namespace'  => '', 
       'resourceTypes' => array(
        'my' => array(
         'path'  => '/../library/My/', 
         'namespace' => 'My_' 
        ), 
       ) 
      ) 
     ); 

     return $auto_loader; 
    } 

    ... MORE FUNCTIONS 
} 

에 오토로더를 구성 할 수 있도록 Zend 라이브러리 옆에있는 "My"라고 부릅니다.

각 모듈에 부트 스트랩 파일이 있습니다.

<?php 
class Default_Bootstrap extends Zend_Application_Module_Bootstrap 
{ 

} 
그것은 거기에 아무것도 할 필요가 없습니다, 부모 모듈 부트 스트 래퍼는 해당 모듈에 대한 자동 로딩을 설정

마지막 한가지, 웹 루트에 대한 모든 요청을 전달하는 index.php 파일이 있습니다 너의 어플리케이션. 라이브러리를 php include 경로에 추가했는지 확인하십시오.

// Ensure library/ is on include_path 
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'), 
    get_include_path(), 
))); 
+0

감사합니다. – PapaSmurf

+0

추가 정보가 추가되었습니다. 정보를 확인하십시오. –

+0

나는 이것을 지금까지했다 'require_once 'Zend/Loader.php'; Zend_Loader_Autoloader :: registerAutoload(); require_once 'Zend/Form.php'; ' 이제 치명적인 오류가 발생합니다 :'Zend_Loader_Autoloader '클래스가 없습니다. – PapaSmurf

0

오토로더를 사용해야합니다. 각 구성 요소는 개별적으로 자유롭게 사용할 수 있습니다. Zend Framework의 전체 MVC 디스패치 흐름을 사용하도록 강요 당하지는 않지만 그렇다면 사용자 정의 네임 스페이스를 구성하고 자동 로더를 설정해야합니다.

이미 존재하지 않는 클래스를 사용할 때는 언제든지 필요합니다. 당신이해야 할 모든 당신의 ZF 라이브러리의 경로를 설정

http://framework.zend.com/manual/en/zend.loader.autoloader.html

:

다음은 워드 프로세서입니다.

+0

또한 해당 페이지의 코멘트를보십시오. – Layke

관련 문제