2013-08-07 9 views
1

PHP API 라이브러리에 문제가 있습니다. 나는 codeigniter 프레임 워크를 사용하고있다.PHP 네임 스페이스 오류

내 eve_market_model에서 PHPEVECentral 라이브러리를 사용하려고합니다. 보시다시피 라이브러리는 네임 스페이스를 사용하는 여러 파일로 구성됩니다. 라이브러리를 사용하려면 PHPEVECentral이라는 기본 파일을 포함하기 만하면됩니다.

여기서 arborescence 폴더의 스크린 샷을 찾을 수 있습니다.

Class 'PHPEveCentral\Requests\MarketStat' not found in C:\wamp\www\Eve-board\application\libraries\PHPEveCentral\PHPEveCentral.php on line 68 

나는 PHPEveCentral \ 요청을 포함

\ MarketStat.php 파일 : 나는> MarketStat() 함수 PHPEveCentral-를 호출 할 때

http://s21.postimg.org/byz3udi8n/arbo.png

namespace PHPEveCentral; 

class PHPEveCentral 
{ 
    ... 

    public function MarketStat($typeid = array()) 
    { 
     return new \PHPEveCentral\Requests\MarketStat($typeid); 
    } 
} 

그래서, 나는 PHP는 오류가 , 거기에 더 이상이 오류가 있지만 다른 파일에 대한 다른 오류가 있으므로 그래서 너무 포함 할.

라이브러리의 각 파일을 수동으로 포함해야합니까? 조금 지루하기 때문에 다른 방법이 있기를 바랍니다.

도움을 주셔서 감사합니다.

편집

나는 폴더의 모든 파일을 포함 재귀하는 방법을 추가 된답니다 Loader 클래스를 확장했다. https://github.com/zallek/CodeIgniter/blob/master/MY_Loader.php

이 방법을 사용하면 오류가 발생하지 않으며 작동합니다. 유일한 문제는 최적화 문제입니다 :

Load-> file()은 Load-> class()가 클래스 (싱글 톤)를 한 번만 인스턴스화하는 동안 PHP 바닐라처럼 파일을 포함합니다. 하지만이 방법으로 작동하지 않는 인터페이스가 있기 때문에 Load-> class()를 사용할 수 없습니다. 어쩌면 클래스 파일인지 인터페이스 파일인지 발견하는 방법을 찾아야합니다 ...

+2

는 것 같은데 ('개체 이름' 'class_name에'$의 설정) codeinginter 로더 클래스와

$ this->로드 -> 라이브러리를 사용해보십시오 * 오토로더 *를 설치해야합니다. – deceze

답변