2013-12-12 1 views
0

범용 클래스 로더 기능을 내 프로젝트에 팔콘에서 사용할 수 있지만 작동하지 않습니다.유니버설 클래스 로더를 올바르게 사용하는 방법은 무엇입니까?

내 앱에 구현 한 방법은 다음과 같습니다 (registerClasses 사용).

//... 
$loader->registerClasses(
    array(
     "Commons" => "library/classes/CommonsClass.php" 
    ) 
); 

$loader->register(); 

sampleController.php :

public function doAction() 
{ 
    $cc = new Commons(); 
} 

그리고 컨트롤러를 실행할 때, 날이 예외가 발생 :

의 index.php

Fatal error: Class 'Commons' not found in C:\the\path\to\phalcon_app\app\controllers\SomeController.php on line 63

Phalcon Documentation을 방금 수업을 등록해야한다고 말하면 그것을 당신의 기능으로 부르십시오. 내가 놓친 것이있다?

Ps .: 라이브러리 폴더가 어디에도 등록되지 않았으며 (필요한 경우 모름) 컨트롤러, 뷰 등과 같은 경로 (/app/)에 있습니다.

답변

0

디렉토리 구조를 확인해야합니다.

은 주어진 :

mah_app/app/config/loader.php 
mah_app/library/classes/Commons.php 

나는이 작업을 기대 :

// loader.php 
$loader->registerClasses(
    array(
     "Commons" => __DIR__ . "/../../library/classes/Commons.php" 
    ) 
)->register(); 
// works with $loader->registerDirs() for sure 

또한, 나는 또한 네임 스페이스를 사용 및/또는 클래스 이름을 파일 이름과 일치 건의 할 것입니다.

0

같은 문제가있었습니다. 나는 클래스 내부의 네임 스페이스 선언을 주석 처리했으며 작동했다. 버전 2.0.3.

관련 문제