2010-12-21 66 views
4

我正在創建一些magento模塊, ,我需要使用外部文件「thirdPartyCode.php」中的一些3rdParty類「ThiredPartyClassA」和「ThiredPartyClassB」。我應該如何在magento模塊中包含外部php文件?

我應該在哪裏放置文件thirdPartyCode.php? 我應該如何引用(require_once),以便我可以在我的一個Action處理程序中使用它?

感謝, 的Eyal

回答

14

我結束了在我的模塊主目錄下創建一個lib目錄。這似乎是「兩全其美」。

$ExternalLibPath=Mage::getModuleDir('', 'My_Module') . DS . 'lib' . DS .'EXTERNALLIB.php'; 
require_once ($ExternalLibPath); 
4

您可以要求在PHP文件,就像你可以不Magento的,所以你可以實際使用require_once如果需要的話。如果你想保持你的代碼更清潔,你可能想把它放到Magento的/lib文件夾中,因爲它是一個系統庫。我不確定這是否在默認的包含路徑中,因此您可能不得不擺脫require。

對於清潔度,您可能還希望圍繞此代碼打包並使用Magento模型/幫助程序來操作它們。

希望有幫助!

謝謝, 喬

+0

我不想把它放在common/lib文件夾中,因爲它感覺這將超過我作爲模塊開發者的權利。 – epeleg 2010-12-23 08:07:39

+0

如果您不想在lib中使用它,請隨時將其放入模塊中。儘管如此,答案的其餘部分仍然存在。 – 2010-12-24 15:01:04

1

與任何PHP腳本 - 你可以自由地包含文件,無論你覺得喜歡。

但是,您可能想要使用Magento中的內置自動裝載器。我很確定Magento使用Zend進行自動加載。 (無論哪種方式它是可用的)

Zend,不像Magento,有很好的文檔。看看這裏http://framework.zend.com/manual/en/zend.loader.autoloader.html

+0

我以前試過這個,但是你最終必須在很多情況下手動移植代碼,然後做升級是一件痛苦的事情。在一個地方隔離代碼並使用包裝器對我來說在過去效果更好。 – 2010-12-22 13:11:53

相關問題