2011-03-10 3 views
1

나는 현재의 PHP 기술을 넘어선 것으로 생각합니다. 코드는 외부 PHP 클래스를 호출하는 Magento .phtml 템플릿 파일에 있습니다.외부 PHP 클래스 오류가있는 Magento Observer 함수

$ExternalLibPath=Mage::getModuleDir('', 'My_Module') . DS . 'lib' . DS .'class.authentication.php'; 
require_once ($ExternalLibPath); 
$myauth = new Authentication(); 
$credentials = $myauth->get("account_credentials"); 
echo "Connecting as " . $credentials->user_name ; 

(.phtml 파일에서 클래스는 포함에서 호출됩니다.) 프론트 엔드 템플릿 파일에서 Magento 모듈/확장으로 이벤트를 트리거하는 클래스로 코드를 이동하려고합니다. 외부 클래스에 액세스 할 때까지 * $ credentials-> user_name *을 사용하면 정의되지 않은 속성이 발생합니다 : stdClass : error.

코드가 .phtml 템플릿에서 작동하고 모듈에서 작동하지 않는 이유 또는 내가 잘못하고있는 것을 이해할 수 없습니다!

도움을 주시면 감사하겠습니다.

피트.

+0

"작동하지 않음"(예상되는 동작 대 실제 동작) "모듈로"의미하는 것을 정의하십시오.이 문구를 사용하면 Magento 커뮤니티 내의 용어에 대한 일반적인 이해를 방해하지 않습니다. . –

+0

예상 동작 - mysite/authenticate.phtml로 액세스 할 때처럼 코드가 오류없이 실행됩니다. 실제 동작 PHP 예외 오류! "모듈로"는 magento 확장 코드를 의미합니다. app/code/local/MY/Module/Model/code.php에서 app/code/local/MY/Module/lib의 PHP 클래스를 사용하여 작성한 코드입니다. @Alan Storm – Pete

+0

그리고보고있는 오류 메시지가 무엇입니까? –

답변

0

당신은 PHTML에서 직접 클래스를 호출해야합니다

$ 자격 증명 = 마법사 ::을 getModel ('네임 스페이스/custom_class') -> getAccountCredentials();

및 필요한 것을 반환하십시오.

+0

'Mage :: getModule'이 존재하지 않습니다. – clockworkgeek

+0

getModule이 아닌 sry - getModel – dbcn

+0

$ myauth는 클래스에서 생성 된 개체이며 해당 클래스 내에서 "get"은 계정 자격 증명을 반환합니다. – Pete