2010-11-28 1 views
2

실제 디렉토리 경로 (1/2/Three.php)로 변환되는 절대 이름 공간 이름 (\ One \ Two \ Three) 오히려 간단합니다.디렉토리 구조에 해당하는 이름 공간 이름 (절대 및 상대)으로 클래스 자동로드

그러나 이름 공간이 인 상대 인스턴스 (\ One에서 현재 Two \ Three 로딩 중)을 사용하여 (PHP 프로세스에서 처음으로 인스턴스화 된) 클래스를 자동로드하는 방법이 있는지 궁금합니다. 예를 들어,).

"__autoload"는 글로벌 공간에서 실행 만 내가 어디 클래스를 찾을하는 알 수 볼 수 없습니다 (네임 스페이스 구성 요소를 포함하여, 클래스 이름) 하나 매개 변수를 허용한다.

그러나 일부 PHP 마법사는 절대 이름 공간 이름으로 항상 클래스를 지정하는 것이 매우 불편하므로이 문제에 대한 해결책을 발견했다고 가정합니다.

미리 도움을 청하십시오!

답변

1

당신은 항상 당신의 자동 로더의 전체 네임 스페이스를받을 수 있나요 :

<?php 
namespace { 
    function __autoload($class) 
    { 
     var_dump($class);die(); 
    } 
} 

namespace One { 
    new Two\Three(); 
} 
?> 

출력 :

string(13) "One\Two\Three" 
+0

하하,이 아주 오래된 질문에 대답을 주셔서 감사합니다. 나는 이것도 발견했지만 질문을 삭제할 방법을 찾지 못했습니다. 감사! –