2011-03-10 37 views
1

我想完成的東西,我認爲超越了我目前的PHP技能! 我有工作代碼在一個Magento .phtml模板文件,調用一個外部的PHP類,例如Magento觀察者功能與外部PHP類錯誤

$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文件中,類是通過include調用的)。我試圖將代碼從前端模板文件移動到一個事件觸發類的Magento模塊/擴展。我的模塊工作正常,直到外部類訪問試圖訪問* $ credentials-> user_name *導致未定義的屬性:stdClass:錯誤。

我不明白爲什麼代碼在.phtml模板中工作,而不在模塊中,或者我做錯了什麼!

任何幫助,將不勝感激。

皮特。

+0

定義您的「不工作」(預期行爲與實際行爲)的含義定義您在「模塊」中的含義,您對短語的使用不會與對Magento社區中術語的共同理解。 – 2011-03-10 20:16:56

+0

預期的行爲 - 代碼執行時沒有錯誤,因爲它使用mysite/authenticate.phtml進行訪問,實際行爲PHP異常錯誤! 「在模塊中」我的意思是一個magento擴展,在app/code/local/MY/Module/Model/code.php中使用PHP類在app/code/local/MY/Module/lib中創建的代碼@Alan Storm – Pete 2011-03-11 12:25:04

+0

你看到的錯誤信息是什麼? – 2011-03-11 17:06:30

回答

0

您應該從PHTML直接調用類:

$憑證=法師:: getModel( '命名空間/ custom_class') - > getAccountCredentials();

並返回你需要的任何東西。

+0

'Mage :: getModule'不存在。 – clockworkgeek 2011-03-10 20:18:50

+0

sry - getModel,not getModule – dbcn 2011-03-10 20:20:22

+0

$ myauth是一個從類創建的對象,在該類的「獲取」函數返回帳戶憑據。 – Pete 2011-03-11 12:28:52