2010-02-02 3 views
1

나는이 같은 대체 자동 로더를 사용하는 자동 로더를 설정 예를 들어 /var/www/arc/views/helpers/에서 도우미를 읽으십시오.읽기 Zend_View_Helper_ *와 도우미 및 자동로드

fopen(/var/www/arc/views/helpers/Layout.php) [<a href='function.fopen'>function.fopen</a>]: 
failed to open stream: No such file or directory in file /private/var/www/arc/ZendFramework- 
1.9.5/library/Zend/Loader.php at line: 165 

그것은 문제처럼 보인다 여기에 있습니다 : : 다음은 샘플 통지는

["_prefixToPaths:protected"] => array(1) { 
    ["Zend_View_Helper_"] => array(2) { 
    [0] => string(17) "Zend/View/Helper/" 
    [1] => string(34) "/var/www/arc/views/helpers/" 
    } 

는 FallbackAutoloader 이런 일이 발생할 사용합니까? 잠재적 인 성능 문제 인 것 같습니다. 또한 Zend_View_Helper_ 네임 스페이스가 올바르게 해석되어야합니까? 내가 여기서 무엇을 놓치고 있니?

업데이트 : 아니요, Zend/View/Helper/Layout.php이 있습니다.

어쩌면 Zend_Loader_Autoloader가 수행해야 할 사항이 누락되었습니다. (이 경우 문서가 다소 약하다고 생각합니다.) 예를 들어

, 내 application.ini 다음 파일을 조정하면 :

 
[production] 
phpSettings.display_startup_errors = 0 
phpSettings.display_errors = 0 
includePaths.library = APPLICATION_PATH "/../library" 
includePaths.models= APPLICATION_PATH "/models" 
includePaths.helper= APPLICATION_PATH "/controllers/helpers" 
bootstrap.path = APPLICATION_PATH "/Bootstrap.php" 
bootstrap.class = "Bootstrap" 
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" 

및 출력의 include_path, 모델을, 디렉토리 경로하지만 클래스를로드하지 포함 명확하다. 나는 다음 부트 스트랩 _init 기능

$autoloader=Zend_Loader_Autoloader::getInstance(); 
$autoloader->setFallbackAutoloader(true); 

이 잘로드에 다음을 추가하면

. 이전 상황에서는 네임 스페이스를 설정해야합니까? 첫 번째 의견에

: 여기가 출력 전류 값은 다음과 같습니다

Zend_Debug::dump($loader->isFallbackAutoloader(),'is fallback autoloader'); 
is fallback autoloader bool(false) 

Zend_Debug::dump($loader->getDefaultAutoloader(),'default autoloader'); 
default autoloader array(2) { 
    [0] => &string(11) "Zend_Loader" 
    [1] => string(9) "loadClass" 
} 

Zend_Debug::dump($loader->getAutoloaders(),'autoloaders'); 
autoloaders array(0) { 
} 

답변

0

통지가 무슨 말을합니까? 나는 그 폴더에서 도우미를 자동로드하려고 시도하고 있다고 가정하고 그가 기대하는 클래스를 찾지 못한다.

+0

오른쪽이지만 이것들은 파일이며, 사용 된 각 도우미의 올바른 경로 (즉, 젠드/뷰/도우미)에서 찾습니다. – timpone

0

다른 오토로더가 있습니까? 그렇지 않은 경우, FallbackAutoloader (true)를 설정할 필요는 없습니다.

확실히 펑키 한 일이 있습니다. Zend/View/Helper/Layout.php가 어떻게 든 삭제 되었습니까?

+0

'첫 코멘트'에 정보를 추가했습니다. – timpone