2010-11-24 2 views
0

내 모델 클래스의 경우 "Default_Model_Class1"이라는 이름을 지정하지 않고 간단히 "Class1"이라고 지정합니다.Zend Framework에서 간단한 모델 클래스 이름을 얻는 방법?

나는 그것을 할 수있는 방법을 찾을 수 없습니다. 감사합니다.

+2

또 다른 질문은 다음과 같습니다. 왜 그걸 원하니? 좋은 이유가 있습니다. 왜 사용되지 않았습니까? 먼저 클래스 이름 충돌 때문에 문제가 생길 수 있습니다. 그런 다음 접두사는 일종의 네임 스페이스이기도합니다 (PHP <5.3은 기본 네임 스페이스를 지원하지 않습니다). 제거하면 제거됩니다. 그래서 "Object는 'Class1'(이것이 무엇이든간에) 모델이며 Default-Module의 것입니다."Object는 'Class1'이라고 말하고 싶습니다. – KingCrunch

+0

이것은 간단한 웹 사이트이므로 쉽게 개발할 수 있습니다. 게다가 클래스/함수 이름 없이도 사용하고 싶습니다 : http://framework.zend.com/manual/en/zend.db.table.relationships.html –

답변

4

답변? 부정 행위로. 당신이 모든 모델이있는 경우가 좋은 네이밍 사례 (KingCrunch의 의견을 참조)

에 따라 찾을 수 없을 때

, 당신은 당신의 경로를 포함에 해당 경로를 추가하고 폴백 (fallback) 젠드의 자동 로더를 설정할 수의 응용 프로그램/모델, 가정 해 봅시다 당신이 당신의 모델 경로에있는 YourModel를로드 할 때, 오토로더가 그것을 처리 할 수 ​​있어야합니다 그리고

$loader = Zend_Loader_Autoloader::getInstance(); 
$loader->setFallbackAutoloader(true); 
$loader->suppressNotFoundWarnings(false); 

을 당신은 간단한 이름을 사용하여 참조를 구축 할 수 있습니다 :

는 폴백 오토로더를 이야기합니다.

응용 프로그램이 작더라도 항상 최상의 방법을 사용하는 것이 좋습니다.

0

어떤 버전의 PHP가 use 키워드 (아마도 네임 스페이스 추가시 5.3)를 추가했는지는 모르겠지만 젠드 프레임 워크의 네임 스페이스 부족을 설명하기 위해 일반적으로 긴 클래스 이름을 유지했습니다. use을 사용하여 스크립트에서 더 짧게 만들었습니다. 또한 어떤 이유로 클래스를 옮기거나 이름을 변경해야한다면 파일 당 하나의 use 문만 변경해야한다는 것을 의미합니다.

use Application_Model_Users_User as Model_User; 
관련 문제