젠드 PHP 프로젝트에서 작업 중이며 코드를 사용자 정의 라이브러리 (예 : "사용자 정의")로 분리하려고합니다. 현재 이것은 주로 사용자 정의 양식으로 구성됩니다.Zend의 사용자 정의 라이브러리 자동로드 1.12
내 폴더 구조는 다음과 같습니다.
/project root
/Library
/Custom
/Forms
/Account
/Login.php
Base.php
/Zend
...
는 Login.php 및 Base.php는 다음과 같은 명명 규칙이 마지막으로
class Custom_Form_Account_Login extends Custom_Form_Base
{
}
class Custom_Form_Base extends Zend_Form
{
}
을, 나는에
autoloaderNamespaces[] = "Custom_"
그럼 내 application.ini 파일에 다음 줄을 배치 양식을 만들려면 콘트롤러에 ...
$form = new Custom_Form_Account_Login();
그러나 페이지를로드 할 때 Custom_Form_Account_Login을 찾을 수 없다는 오류가 표시됩니다. 포함 경로가 표시되고 "/ project root/Library"가 표시되어 클래스가 발견되지 않는 이유에 대해 약간 혼란스러워 보입니다.
application.ini에서 여러 행을 시도했지만 변경시 서버를 다시 시작했지만 오류가 계속 발생합니다. 내가 해봤
다른 라인은 다음과 같습니다 : 나는 젠드 1.12를 사용하고 언급 한 바와 같이
autoloadernamespaces[] = "Custom_" //All lowercase
autoloaderNamespaces[] = "Custom" //Without the underscore
autoloaderNamespaces.custom = "Custom_"
autoloaderNamespaces.0 = "Custom_"
. 나는 이것을 .ini 파일에 설정하는 것이 이상적이다.
감사합니다. 처음에는/root 폴더/appliation 아래에서 똑같은 구조를 가졌으므로 처음에는 분리 된 라이브러리로 옮기고 괜찮다고 생각 했으므로 괜찮을 것이라고 생각했습니다. 나는 그것이 왜 응용 프로그램 폴더 아래에 괜찮 았는지 궁금해? 건배! – cast01
'application' 폴더에서 작동하는 이유는 접두사/경로 매핑 묶음을 만드는 호출 된 자원 자동 로더가 있다는 것입니다. 'Zend_Application_Module_Autoloader' 클래스를 확인하십시오. 감사와 환호! –
아, 더 설명해 주셔서 감사합니다. :) – cast01