Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Magento观察者不做太多观察_Php_Model View Controller_Magento_Observer Pattern_Mage - Fatal编程技术网

Php Magento观察者不做太多观察

Php Magento观察者不做太多观察,php,model-view-controller,magento,observer-pattern,mage,Php,Model View Controller,Magento,Observer Pattern,Mage,这是我的第一个模块,所以我想会有错误。但是我被困住了,我认为stack overflow社区的智能可以提供帮助 本质上,我希望我的模块侦听目录搜索索引更新事件,并在此基础上执行一些代码 因此,我告诉magento在中识别我的模块: app/etc/modules/Nate\u SearchToFind.xml <?xml version="1.0"?> <config> <modules> <Nate_SearchToFind&g

这是我的第一个模块,所以我想会有错误。但是我被困住了,我认为stack overflow社区的智能可以提供帮助

本质上,我希望我的模块侦听目录搜索索引更新事件,并在此基础上执行一些代码

因此,我告诉magento在中识别我的模块:

app/etc/modules/Nate\u SearchToFind.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Nate_SearchToFind>
            <active>true</active>
            <codePool>local</codePool>
        </Nate_SearchToFind>
    </modules>
</config> 
<?xml version="1.0"?>
<config>
  <global>
    <models>
        <natesearchtofindbundle>
             <class>Nate_SearchToFind_Bundle_Model</class>
        </natesearchtofindbundle>
    </models>
    <events>
        <catalogindex_plain_reindex_after>
            <observers>
                 <Nate_SearchToFind_Observer>
                     <type>singleton</type>
                     <class>Nate_SearchToFind_Bundle_Model_Observer</class>
                     <method>beautify_search</method>
                 </Nate_SearchToFind_Observer>
             </observers>
        </catalogindex_plain_reindex_after>
    </events>
  </global>
</config>

符合事实的
地方的
然后进入:app/local/Nate/SearchToFind/etc/config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Nate_SearchToFind>
            <active>true</active>
            <codePool>local</codePool>
        </Nate_SearchToFind>
    </modules>
</config> 
<?xml version="1.0"?>
<config>
  <global>
    <models>
        <natesearchtofindbundle>
             <class>Nate_SearchToFind_Bundle_Model</class>
        </natesearchtofindbundle>
    </models>
    <events>
        <catalogindex_plain_reindex_after>
            <observers>
                 <Nate_SearchToFind_Observer>
                     <type>singleton</type>
                     <class>Nate_SearchToFind_Bundle_Model_Observer</class>
                     <method>beautify_search</method>
                 </Nate_SearchToFind_Observer>
             </observers>
        </catalogindex_plain_reindex_after>
    </events>
  </global>
</config>

Nate_SearchToFind_Bundle_模型
独生子女
Nate_SearchToFind_Bundle_Model_Observer
美化搜索
然后进入:app/code/local/Nate/SearchToFind/Model/Observer.php

<?php
class Nate_SearchToFind_Bundle_Model_Observer
{
    public function __construct()
    {
    }
    public function beautify_search($observer)
    {
        //perform function operations here
    }
}

您的观察者类名错误。它应该是PHP类文件和XML Observer部分中的
Nate\u SearchToFind\u Model\u Observer

Zend框架中的类名遵循目录结构。您试图使用的类前缀,
Nate\u SearchToFind\u Bundle\u Model
,实际上是指
app/code/{core,local,community}/Nate/SearchToFind/Bundle/Model
中的文件。它需要更改为
Nate\u SearchToFind\u Model
,以反映您当前的目录结构


您还定义了类前缀,但没有使用它。例如,observer部分的
部分可以读取
natesearchtofindbundle/observer
,假设前缀与目录结构对齐,则会映射到
Nate\u SearchToFind\u Model\u observer

您的observer类名错误。它应该是PHP类文件和XML Observer部分中的
Nate\u SearchToFind\u Model\u Observer

Zend框架中的类名遵循目录结构。您试图使用的类前缀,
Nate\u SearchToFind\u Bundle\u Model
,实际上是指
app/code/{core,local,community}/Nate/SearchToFind/Bundle/Model
中的文件。它需要更改为
Nate\u SearchToFind\u Model
,以反映您当前的目录结构

您还定义了类前缀,但没有使用它。例如,observer部分的
部分可以读取
natesearchtofindbundle/observer
,假设您将前缀与目录结构对齐,它将映射到
Nate\u SearchToFind\u Model\u observer