在Magento中创建自定义模块

时间:2012-02-20 05:03:41

标签: php magento

我是magento的新手,我想尝试创建自定义模块。我目前正在关注this tutorial,因为我发现它很容易理解,但是如果magento真的加载我的配置文件,我在测试时遇到错误。

控制器文件的实例已加载但是类不存在"我仍然没有找到页面错误。

这是我的app / etc / modules / CompanyName.xml

<?xml version="1.0"?>
<config>
     <modules>
        <CompanyName>
            <active>true</active>
            <codePool>local</codePool>
        </CompanyName>
     </modules>
</config>

这是我的app / local / CompanyName / Helloworld / etc / config.xml

    <?xml version="1.0"?>
    <config>
    <modules>
        <CompanyName_HelloWorld>
            <version>
                0.1.0
            </version>
        </CompanyName_HelloWorld>
    </modules>
<!-- ... -->
    <frontend>
        <routers>
            <!-- the <helloworld> tagname appears to be arbitrary, but by
            convention is should match the frontName tag below-->
            <helloworld>
                <use>standard</use>
                <args>
                    <module>CompanyName</module>
                    <frontName>helloworld</frontName>
                </args>
            </helloworld>
        </routers>
    </frontend>
<!-- ... -->

</config>

-edit-修正错误/警告日志

我查看了varien.php,并记得我跟着的guide告诉我禁用/注释域名,安全,httponly。所以我删除了评论,现在我没有在日志中收到任何警告错误。但我还是不能让magento读取我的配置文件。 =(

$cookieParams = array(
            'lifetime' => $cookie->getLifetime(),
            'path'     => $cookie->getPath(),
            'domain'   => $cookie->getConfigDomain(),
            'secure'   => $cookie->isSecure(),
            'httponly' => $cookie->getHttponly()
        );

清除缓存修复了SQL错误但我仍然无法使magento加载helloworld自定义模块

这令人沮丧。

2 个答案:

答案 0 :(得分:1)

啊,啊,我觉得我找到了......我之前没有看到它。 app / etc / modules / CompanyName.xml实际上应该被称为 app / etc / modules / CompanyName_HelloWorld.xml ,并且应该更改模块之后的XML元素以反映文件名

<?xml version="1.0"?>
<config>
    <modules>
        <CompanyName_HelloWorld>
            <active>true</active>
            <codePool>local</codePool>
        </CompanyName_HelloWorld>
     </modules>
</config>

答案 1 :(得分:0)

The app/etc/modules/CompanyName.xml should rename as app/etc/modules/CompanyName_HelloWorld.xml and the XML should be changed to reflect the filename

<?xml version="1.0"?>
<config>
    <modules>
        <CompanyName_HelloWorld>
            <active>true</active>
            <codePool>local</codePool>
        </CompanyName_HelloWorld>
     </modules>
</config>

And the /app/code/local/CompanyName/HelloWorld/etc/config.xml should be:

<config> 
    <modules>
        <CompanyName_HelloWorld>
            <version>0.0.1</version>
        </CompanyName_HelloWorld>
    </modules>
     <frontend>
                <routers>
                    <helloworld>
                        <use>standard</use>
                        <args>
                              <module>CompanyName_HelloWorld</module>
                              <frontName>helloworld</frontName>
                        </args>
                    </helloworld>
                </routers>
     </frontend>
</config>