Dữ liệu trợ giúp không tìm thấy trong magento


8

Tôi đã viết một tiện ích mở rộng mới và cố gắng tạo tệp cài đặt cấu hình trong Magento Admin. Khi tôi chạy trên trình duyệt sau khi xóa bộ đệm, tôi gặp lỗi như bên dưới

Fatal error: Class 'Mage_GlobalSms_Helper_Data' not found in D:\wamp\www\project\app\Mage.php on line 547

Trong tệp nhật ký lỗi system.log tôi tìm thấy lỗi bên dưới:

2015-05-27T13:40:43+00:00 ERR (3): Warning: include(Mage\GlobalSms\Helper\Data.php): failed to open stream: No such file or directory  in D:\wamp\www\project\lib\Varien\Autoload.php on line 93
2015-05-27T13:40:43+00:00 ERR (3): Warning: include(): Failed opening 'Mage\GlobalSms\Helper\Data.php' for inclusion (include_path='D:\wamp\www\project\app\code\local;D:\wamp\www\project\app\code\community;D:\wamp\www\project\app\code\core;D:\wamp\www\project\lib;.;C:\php\pear')  in D:\wamp\www\project\lib\Varien\Autoload.php on line 93

Ứng dụng của tôi \ etc \ module \ file như bên dưới:

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

Cấu hình của tôi như sau:

<config>
<modules>
    <Ucs_GlobalSms>
        <version>0.0.1</version>
    </Ucs_GlobalSms>
</modules>
<admin>
     <routers>
        <adminhtml>
            <args>
                <modules>
                    <ucs_globalsms before="Mage_Adminhtml">Ucs_GlobalSms_Adminhtml</ucs_globalsms>
                </modules>
            </args>
        </adminhtml>
    </routers>
</admin>
<global>
    <helpers>
        <globalsms>
            <class>Ucs_GlobalSms_Helper</class>
        </globalsms>
    </helpers>
    <models>
        <custommodule>
            <class>Ucs_GlobalSms_Model</class>
        </custommodule>
    </models>
    <events>
        <customer_register_success>
            <observers>
                <Ucs_GlobalSms_customer_register_success>
                    <type>singleton</type>
                    <class>Ucs_GlobalSms_Model_Observer</class>
                    <method>customerRegisterSuccess</method>
                </Ucs_GlobalSms_customer_register_success>
            </observers>
        </customer_register_success>
    </events>
</global>

Trình trợ giúp / Data.php của tôi như dưới đây:

<?php
class Php_GlobalSms_Helper_Data extends Mage_Core_Helper_Abstract {

}

Tôi có thể tìm thấy rất nhiều bài đăng trên SO nói rằng Data.php bị thiếu, nhưng mọi thứ vẫn ở đó, tôi vẫn gặp lỗi


3
Bạn đã dọn dẹp <webroot>/var/cachechưa?
pspahn

Câu trả lời:


10

Tuyên bố người trợ giúp của bạn sẽ trông như thế này:

<global>
    <helpers>
        <globalsms>
            <class>Php_GlobalSms_Helper</class>
        </globalsms>
    </helpers>
</global>

và bạn nên gọi người trợ giúp của bạn trong mã như thế này:

Mage::helper('globalsms');

Tôi đã thay đổi tương ứng, nhưng nó vẫn không hoạt động
Butterfly

Bạn đã thấy lỗi system.log của tôi chưa?
Bướm

1
Đúng. Kiểm tra xem mô-đun của bạn được Magento chọn. Nếu có, thì nó sẽ hoạt động như tôi mô tả. Có lẽ bạn nên thêm vào câu hỏi đầy đủ của bạn config.xmlvà cách bạn đang sử dụng người trợ giúp
Marius

Đã cập nhật cấu hình đầy đủ, tôi không gọi tệp trợ giúp ở bất cứ đâu. Nếu tôi không tuyên bố rằng tôi đang gặp lỗi, đó là lý do tại sao tôi đã thêm thẻ trợ giúp trong xml
Butterfly

Lỗi được hiển thị cho thấy tên lớp nhóm không được chọn. Điều này chỉ ra rằng tệp config.xml không được tải hoặc cấu hình cho trình trợ giúp ở sai vị trí. Nó phải ở trong / config / global / helpers như được ghi chú trong câu trả lời của Marius. (cũng lưu ý rằng phiên bản có thể không nên có trong tệp XML mô-đun).
Kevin Schroeder

5

Tên mô-đun của bạn module.xmllà khác nhau trong config.xml.

Tôi không chắc chắn bản thân bạn muốn sử dụng những gì, Php_GlobalSmshoặc Ucs_GlobalSms?


4

Nếu bạn bật tính năng biên dịch (Hệ thống> Công cụ> Biên dịch), bạn cần tắt hoặc biên dịch lại. Điều tốt nhất là bạn vô hiệu hóa Compilation khi bạn phát triển.


2

Bạn cần xác định người trợ giúp của bạn trong tệp config.xml

<config>
<modules>
    <Php_GlobalSms>
        <version>0.0.1</version>
    </Php_GlobalSms>
</modules>
<admin>
     <routers>
        <adminhtml>
            <args>
                <modules>
                    <ucs_globalsms before="Mage_Adminhtml">Php_GlobalSms_Adminhtml</ucs_globalsms>
                </modules>
            </args>
        </adminhtml>
    </routers>
</admin>
<global>
    <models>
        <custommodule>
            <class>Php_GlobalSms_Model</class>
        </custommodule>
    </models>
    <helpers>
        <globalsms>
            <class>Php_GlobalSms_Helper</class>
        </globalsms>
    </helpers>
    <events>
        <customer_register_success>
            <observers>
                <Php_GlobalSms_customer_register_success>
                    <type>singleton</type>
                    <class>Php_GlobalSms_Model_Observer</class>
                    <method>customerRegisterSuccess</method>
                </Php_GlobalSms_customer_register_success>
            </observers>
        </customer_register_success>
    </events>
</global>

1

Bạn nói rằng bạn đã tạo một cài đặt cấu hình cho khu vực quản trị; trong tệp system.xml, tôi giả sử bạn có một cái gì đó như thế này (bạn nên có):

<php_globalsms_options translate="label" module="php_globalsms">[...]

Đây là nơi Magento cố gắng tải trình trợ giúp của bạn: nó xử lý bản dịch, bất kể thực tế là bạn có gọi người trợ giúp trong bất kỳ tệp nào của bạn hay không. Các câu trả lời khác cho biết cách chính xác: cập nhật tệp config.xml của bạn và nói với Magento rằng trình trợ giúp GlobalSms nằm trong mô-đun của bạn.


1

Tôi có cùng một vấn đề. Tôi đã kiểm tra tệp config.xml của mình và kiểm tra bố cục xml của mình:

  <layout>
        <updates>
            <module_name>
                <file>module_name.xml</file>
            </module_name>
        </updates>
    </layout>

Tôi đã làm sai trong module_name.xml. Tôi đã loại bỏ mã không cần thiết.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.