Magento观察员没有被事件触发

时间:2012-11-15 13:23:10

标签: magento

我正在尝试向Magento添加一个模块,该模块将观察者附加到sales_order_invoice_register事件,但无法使其工作。

我有一个小脚本,只执行以下操作:

require_once('app/Mage.php');
Mage::app();
Mage::dispatchEvent('sales_order_invoice_register');

当我从Magento安装的根目录中的命令行执行该脚本时,观察者方法按预期触发,因此我认为所有内容都已正确配置模块(在我的模块config.xml的全局部分内)

但是,当我创建订单然后从管理页面发货并开具发票时,我可以看到事件被调度但观察者没有被触发。这似乎是因为Config.php在查找$ _eventAreas ['global']时的getEventConfig()方法不包含我在自己的config.xml中添加的条目(也不包含sales_order_invoice_register事件的任何其他条目)。有没有人有任何想法如何发生,以及如何解决它?

1 个答案:

答案 0 :(得分:0)

对不起,我要回答我自己的问题。

一直看着它几个小时,只是把它写在上面让我更加注意到了一些问题。从命令行运行而不是通过apache运行时怎么办?配置必须正常,遗憾的是文件所有权不是。我是从我自己的用户而不是Web服务用户的命令行运行的。我用自己的用户而不是Web服务用户创建了模块配置文件。因此,对于扫描模块目录时的Web服务进程,我的新模块配置将不可见,导致无法加载。我只是将文件提交给Web服务用户,它立即起作用。

相关问题