2010-12-21 62 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

相关问题