문제

방금 ZF 1.7에서 ZF 1.9로 업그레이드했고 거의 Autoloader를 제외하고는 모든 것이 잘 작동합니다.

오래된:

require_once('Zend/Loader.php');  
Zend_Loader::registerAutoload();

새로운:

require_once 'Zend/Loader/Autoloader.php';  
$loader = Zend_Loader_Autoloader::getInstance();  
$loader->registerNamespace('MySiteName_');
$loader->setFallbackAutoloader(true);

자동로드에 필요한 파일은 대부분 네임 스펙이없는 것이 아닙니다 (사전 이름이 찍힌 대규모 프로젝트이기 때문에). 그들은 다음과 같은 디렉토리에 있습니다.

  • /응용 프로그램/컨트롤러
  • /공통/모델
  • /도서관
  • /공급업체

이 사이트는 /library/form.php를 찾을 수 없다는 점을 제외하고는 잘 작동하는 것 같습니다.
예전에는 가능했지만 더 이상은 아닙니다. require_once 'library/form.php'를 추가하면 작동하지만 필요하지 않아야합니다. 어떤 곳에서 시작하면 Autoloader와 하드 코드를 포기해야합니다. 모두 포함됩니다. "setfallbackautoLoader (true)"를 추가하면 내 포함 된 경로에 "라이브러리"가있는 것과 결합되어 고정되지 않았지만 그렇지 않았습니다.

내 포함 된 경로는 다음과 같습니다.
. :/user/lofye/documents/htdocs/mysiteName/벤더
:/user/lofye/documents/htdocs/mysiteName/common
:/user/lofye/documents/htdocs/mysiteName/common/models
:/user/lofye/documents/htdocs/mysitename/library
:/users/lofye/documents/htdocs/mysiteName

도움이 크게 감사드립니다!

도움이 되었습니까?

해결책

당신은 당신이 이것을하면 작동한다고 말했습니다.

require_once 'library/Form.php';

그러나 라이브러리 경로가 포함 된 경우 Autoloader와 같이 다음과 같이 지정해야합니다.

require_once 'Form.php';

required_once 'form.php'를 입력 해보십시오. 스크립트에. 폭탄이 있습니까? 그런 다음 포함 된 경로에는 /라이브러리가 없으므로 수정해야합니다.

다른 팁

Autoloader는 시작하는 로딩 클래스 만 시도합니다. MySiteName_. 추가 해보세요 Form 아마도 네임 스페이스로?

$loader->registerNamespace('Form');

파일 내부의 클래스 이름 library/Form.php 해야한다 Form. 당신의 수업 이름은 무엇입니까?

나는 여기서 테스트했고 잘 작동합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top