Php Magento 1.9.2.1-观察者:目录(产品)(保存)';t火

Php Magento 1.9.2.1-观察者:目录(产品)(保存)';t火,php,events,magento-1.9,observers,Php,Events,Magento 1.9,Observers,在决定写这个问题之前,我已经搜索了我不知道有多少个谷歌页面,我知道已经有一些非常相似的问题的非常好的答案,但不幸的是,我一直无法解开为什么我的观察者没有像应该的那样开火 这不是我第一次玩观察家游戏,我已经从admin和手动刷新了var/cache文件夹中的缓存,我尝试了不同的工作语法来调用模型(完整的模型路径,带下划线、模块/模型、大写、小写)。我有其他观察员每天都在同一个安装上工作得很好,我试图以完全相同的方式进行安装,但没有成功。我也试着用singleton而不是model打电话。我尝试了三

在决定写这个问题之前,我已经搜索了我不知道有多少个谷歌页面,我知道已经有一些非常相似的问题的非常好的答案,但不幸的是,我一直无法解开为什么我的观察者没有像应该的那样开火

这不是我第一次玩观察家游戏,我已经从admin和手动刷新了var/cache文件夹中的缓存,我尝试了不同的工作语法来调用模型(完整的模型路径,带下划线、模块/模型、大写、小写)。我有其他观察员每天都在同一个安装上工作得很好,我试图以完全相同的方式进行安装,但没有成功。我也试着用singleton而不是model打电话。我尝试了三种范围视图(全局、前端和adminhtml)。我已经搜索过任何直接或间接的核心覆盖,仍然有可能我会错过隐藏在其他模块中的一个,但我几乎总是使用著名开发人员提供的模块,他们尊重大多数Magento标准

我的代码中有一部分:

require_once('/home/user/public_html/app/Mage.php');

Mage::init();

$observer = Mage::getModel('module/observer');
app/code/local/NameSpace/Module/etc/config.xml

<global>
  <models>
    <module>
      <class>NameSpace_Module_Model</class>
      <resourceModel>module_mysql4</resourceModel>
    </module>
  </models>
  <events>
    <catalog_product_save_before>
      <observers>
        <module>
          <type>singleton</type>
          <class>NameSpace_Module_Model_Observer</class>
          <method>catalogProductSaveBefore</method>
        </module>
      </observers>
    </catalog_product_save_before>
  </events>
</global>
<?xml version="1.0"?>
<config>
  <modules>
    <NameSpace_Module>
      <active>true</active>
      <codePool>local</codePool>
      <version>0.1.0</version>
      <depends>
          <Mage_Catalog />
      </depends>
    </NameSpace_Module>
  </modules>
</config>

更新 app/etc/modules/名称空间_Module.xml

<global>
  <models>
    <module>
      <class>NameSpace_Module_Model</class>
      <resourceModel>module_mysql4</resourceModel>
    </module>
  </models>
  <events>
    <catalog_product_save_before>
      <observers>
        <module>
          <type>singleton</type>
          <class>NameSpace_Module_Model_Observer</class>
          <method>catalogProductSaveBefore</method>
        </module>
      </observers>
    </catalog_product_save_before>
  </events>
</global>
<?xml version="1.0"?>
<config>
  <modules>
    <NameSpace_Module>
      <active>true</active>
      <codePool>local</codePool>
      <version>0.1.0</version>
      <depends>
          <Mage_Catalog />
      </depends>
    </NameSpace_Module>
  </modules>
</config>

真的
地方的
0.1.0

我甚至尝试在代码中添加随机字符来证明一个致命错误,但它从未被调用。这可能是我的一个非常简单的错误,我所知道的是,我仔细地忽略了我的代码,似乎找不到问题所在

在给出答案之前,请尝试发表评论,因为我已经尝试了许多解决方案,也许你也已经尝试过了。


非常感谢您的帮助,如有任何建议,将不胜感激

有时我会问自己

-我真的是一个开发者吗

在这些时刻,我所有的复杂代码都得到了验证,并且以各种可能的方式充分发挥了作用,除了一些非常基本和小的东西

验证我的观察者模型是否真的存在于Magento内部后:

require_once('/home/user/public_html/app/Mage.php');

Mage::init();

$observer = Mage::getModel('module/observer');
是的,我也意识到输出是简单的文本


添加
您是否尝试过使用调试器?你试过为它创建一个模块吗?如果是,您将模块清单保存在哪里?@iam解码器感谢您的评论。我没有试过任何调试器,你能推荐一个吗?据我所知,这个观察员实际上是一个功能齐全、工作正常的模块的一部分。对不起,我不太明白你说的“清单”是什么意思?多年来我一直做得很好,清单是模块的XML文件。由于您的模块正在工作,您是否遵循了模块的文件夹结构?如果没有XML片段,很难说清楚。你是说这个文件:app/etc/modules/NameSpace_Module.XML吗?是的,它有一个文件夹结构,需要遵循这个结构,以便模块控制那里的操作。我不知道你是否已经仔细阅读了这篇文章,但它可能会对你有所帮助