2011-03-05 7 views
0

좋습니다. 매우 간단하고 작은 프로젝트에서는 그에 따라 이름이 지정된 파일에 클래스가 정의되어있는 것이 일반적입니다. 예를 들어이 자동로드 기능이 작동 할 수 있도록 : 프로젝트가 커짐에젠드 프레임 워크와 같은 클래스를 구성하는이 디렉토리 구조에는 이름이 있습니까?

function __autoload($class_name) { 
    require_once $class_name . '.php'; 
} 

하지만 때 진짜 엉망이 될 수 있으며, 이름은 오해와 혼동 될 수 있습니다. 이 문제를 해결하기 위해 많은 접근법을 보았습니다.

일부 회사는 모든 클래스에 접두어를 붙입니다. "class.MyClass.php"와 같이 한 수준에서 혼란을 정리하십시오.

일부는 디렉토리에서 구성합니다. 그러나 경로를 포함 시키려면 애플리케이션을 모두 추가해야하며 애플리케이션을 느리게하거나 사용하기 전에 변경해야합니다. 코드가 복잡하고 이상해 질 수 있습니다.

PHP는 버전 5.3부터 네임 스페이스를 도입했는데, 아직 기능에 대해서는 잘 모르겠습니다.

function __autoload($className){ 
    require_once str_replace('_','/',$className).'.php'; 
} 

이 사소한 자동 로더가 이미 개념을 표현 : 나는 더 자주 나는 생각 하는 더 보았다 표준 때문에 젠드 프레임 워크의 인기를 얻었다 그러나

는 다음과 같습니다.

클래스 이름 앞에는 구분 기호로 밑줄이있는 경로가옵니다.

예를 들어 "서비스"구성 요소는 다양한 서비스 공급자에게 api를 보유합니다.

Zend/Service/Amazon.php은 클래스 Zend_Service_Amazon을 보유합니다.

Amaozn s3에 대한보다 전문화 된 API는 Zend_Service_Amazon_S3 클래스 인 Zend/Service/Amazon/S3.php에 있습니다.

이 개념은 유지하기가 매우 쉽고 매우 직관적이며 지금까지는 매우 일반적이라고 생각하며 대부분의 요구에 적용 할 수 있습니다.

그러나 어떻게 호출됩니다. 이름이 있습니까?

답변

1

제안. 이름이 없지만 젠드 프레임 워크가 먼저 젠드 스타일 구조라고 불리는 Zend Style Structure를 사용합니다.

관련 문제