내 모델 클래스의 경우 "Default_Model_Class1"이라는 이름을 지정하지 않고 간단히 "Class1"이라고 지정합니다.Zend Framework에서 간단한 모델 클래스 이름을 얻는 방법?
나는 그것을 할 수있는 방법을 찾을 수 없습니다. 감사합니다.
내 모델 클래스의 경우 "Default_Model_Class1"이라는 이름을 지정하지 않고 간단히 "Class1"이라고 지정합니다.Zend Framework에서 간단한 모델 클래스 이름을 얻는 방법?
나는 그것을 할 수있는 방법을 찾을 수 없습니다. 감사합니다.
답변? 부정 행위로. 당신이 모든 모델이있는 경우가 좋은 네이밍 사례 (KingCrunch의 의견을 참조)
에 따라 찾을 수 없을 때, 당신은 당신의 경로를 포함에 해당 경로를 추가하고 폴백 (fallback) 젠드의 자동 로더를 설정할 수의 응용 프로그램/모델, 가정 해 봅시다 당신이 당신의 모델 경로에있는 YourModel를로드 할 때, 오토로더가 그것을 처리 할 수 있어야합니다 그리고
$loader = Zend_Loader_Autoloader::getInstance();
$loader->setFallbackAutoloader(true);
$loader->suppressNotFoundWarnings(false);
을 당신은 간단한 이름을 사용하여 참조를 구축 할 수 있습니다 :
는 폴백 오토로더를 이야기합니다.
응용 프로그램이 작더라도 항상 최상의 방법을 사용하는 것이 좋습니다.
어떤 버전의 PHP가 use
키워드 (아마도 네임 스페이스 추가시 5.3)를 추가했는지는 모르겠지만 젠드 프레임 워크의 네임 스페이스 부족을 설명하기 위해 일반적으로 긴 클래스 이름을 유지했습니다. use
을 사용하여 스크립트에서 더 짧게 만들었습니다. 또한 어떤 이유로 클래스를 옮기거나 이름을 변경해야한다면 파일 당 하나의 use
문만 변경해야한다는 것을 의미합니다.
use Application_Model_Users_User as Model_User;
또 다른 질문은 다음과 같습니다. 왜 그걸 원하니? 좋은 이유가 있습니다. 왜 사용되지 않았습니까? 먼저 클래스 이름 충돌 때문에 문제가 생길 수 있습니다. 그런 다음 접두사는 일종의 네임 스페이스이기도합니다 (PHP <5.3은 기본 네임 스페이스를 지원하지 않습니다). 제거하면 제거됩니다. 그래서 "Object는 'Class1'(이것이 무엇이든간에) 모델이며 Default-Module의 것입니다."Object는 'Class1'이라고 말하고 싶습니다. – KingCrunch
이것은 간단한 웹 사이트이므로 쉽게 개발할 수 있습니다. 게다가 클래스/함수 이름 없이도 사용하고 싶습니다 : http://framework.zend.com/manual/en/zend.db.table.relationships.html –