Magento Helper Class Not Found Error
我正在学习根据本教程创建自定义扩展,http://www.pierrefay.fr/category/developement/magento
当我试图打开扩展管理时,我得到了
但是我想我不会在扩展中的任何地方使用助手类,欢迎您的建议。
这是我的config.xml文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | <?xml version="1.0"?> <config> <modules> <Package_Test> <version>1.0.0</version> </Package_Test> </modules> <frontend> <routers> <routerfrontend> <use>standard</use> <module>Package_Test</module> <frontName>test</frontName> </args> </routerfrontend> </routers> <layout> <updates> <test> <file>test.xml</file> </test> </updates> </layout> </frontend> <routers> <test> <use>admin</use> <module>Package_Test</module> <frontName>admintest</frontName> </args> </test> </routers> </admin> <layout> <updates> <test> <file>test.xml</file> </test> </updates> </layout> <menu> <test translate="title" module="adminhtml"> My Module <sort_order>100</sort_order> <children> <items module="Test"> Address Book admintest/adminhtml_index</action> </items> </children> </test> </menu> </adminhtml> <global> <helpers> <class>Package_Test_Helper</class> </helpers> <blocks> <test> <class>Package_Test_Block</class> </test> </blocks> <models> <test> <class>Package_Test_Model</class> <resourceModel>test_mysql4</resourceModel> </test> <test_mysql4> <class>Package_Test_Model_Mysql4</class> <entities> <test> <table>package_test</table> </test> </entities> </test_mysql4> </models> <resources> <test_write> <connection> <use>core_write</use> </connection> </test_write> <test_read> <connection> <use>core_read</use> </connection> </test_read> </resources> </global> </config> |
如果启用了编译,请尝试在系统、工具、编译中禁用或重新编译。
如果您无法进入管理界面,但具有ssh访问权限,则可以通过以下方式禁用该界面:
1 2 3 | php -f shell/compiler.php -- disable php -f shell/compiler.php -- clear php -f shell/compiler.php -- state |
最终输出应如下所示:
1 2 3 4 | Compiler Status: Disabled Compilation State: Not Compiled Collected Files Count: 0 Compiled Scopes Count: 0 |
即使你自己不使用助手,Magento管理员也会使用。这就是为什么在扩展中应该始终包含数据助手的原因。所以下面的代码在helper/data.php中
1 2 3 4 | class Package_Test_Helper_Data extends Mage_Core_Helper_Abstract { } |
和
1 2 3 4 5 6 7 | <global> <helpers> <test> <class>Package_Test_Helper</class> </test> </helpers> </global> |
在config.xml中应该足够了。
为了扩展@alexei yerofeyev的答案,这里有一些地方可以咬你。
假设您这样定义助手:
1 2 3 4 5 | <helpers> <package_test> <class>Package_Test_Helper</class> </package_test> </helpers> |
您可以创建这样的电子邮件模板:
1 2 3 4 5 6 7 8 9 | <template> <test_email module="package_test"> <label>Test Email</label> <file>package/test_email.html</file> <type>html</type> </test_submission> </email> </template> |
在这种情况下,
使用助手的代码也是如此,比如:
1 | Mage::helper('package_test')->something(); |
虽然这通常采用
如果您添加了一个扩展名,并且面临同样的问题,那么只需手动清除缓存文件夹,因为管理员不允许进入。我也面临同样的问题,然后我做了这个。错误已被删除。这就是缓存错误。
首先,您需要删除var/cache中的"cache"文件夹….
删除后,转到magento根文件夹,打开index.php并替换代码。
查找此代码
1 2 3 4 5 6 7 8 | /** * Compilation includes configuration file */ define('MAGENTO_ROOT', getcwd()); $compilerConfig = MAGENTO_ROOT . '/includes/config.php'; if (file_exists($compilerConfig)){ include $compilerConfig; } |
替换为此代码
1 2 3 4 5 6 7 8 9 10 | /** * Compilation includes configuration file<br /> */ define('MAGENTO_ROOT', getcwd());<br /> /* $compilerConfig = MAGENTO_ROOT . '/includes/config.php'; if (file_exists($compilerConfig)){ include $compilerConfig;<br /> } */ |
最后刷新您的magento管理页面。
谢谢你的阅读……我希望这个答案对你有帮助。
我也遇到了同样的问题。这真的很奇怪,因为它实际上发生在一个复制品上。最后,我可以把这个问题追溯到许可问题上。更改所有权限以递归方式修复它:
1 2 3 4 5 | To change all the directories to 755 (-rwxr-xr-x): find /opt/lampp/htdocs -type d -exec chmod 755 {} \; To change all the files to 644 (-rw-r--r--): find /opt/lampp/htdocs -type f -exec chmod 644 {} \; |
从这里获取权限命令。祝你好运!
检查block/adminhtml文件中的helper调用…可能里面有什么东西叫错了帮手。