การสร้างคลาสตัวช่วยที่กำหนดเองในโมดูล


24

ฉันได้สร้างโมดูลใหม่ที่เรียกว่าtest_helperและฉันต้องการสร้างคลาสผู้ช่วยในโมดูลนี้เพื่อให้ฉันสามารถเพิ่มฟังก์ชั่นที่กำหนดเองที่จะเรียกว่าทั่วเว็บไซต์ของฉัน

อย่างไรก็ตามฉันไม่สามารถหาตัวอย่างของวิธีทำสิ่งนี้ได้ ฉันคิดว่าฉันต้องสร้าง xml พิเศษในการกำหนดค่าและโฆษณาไฟล์อื่นที่ขยายฐานผู้ช่วย แต่ฉันไม่มีโชคในการหาตัวอย่างเพื่อสร้าง

คำตอบ:


34

รูปแบบการตั้งชื่อโมดูลของคุณค่อนข้างสับสน - คุณกำลังเรียกผู้ช่วยโมดูลเอง เพื่อวัตถุประสงค์ในการอธิบายฉันเลือกโทรหาโมดูลของคุณmyname_mymodule

ในโมดูลของคุณ./app/code/community/MyName/MyModule/etc/config.xmlภายใน<global>แท็ก

<helpers>
  <mymodule>
      <class>MyName_MyModule_Helper</class>
  </mymodule>
</helpers>

จากนั้นสร้างไฟล์ ./app/code/community/MyName/MyModule/Helper/Data.php

<?php

class MyName_MyModule_Helper_Data extends Mage_Core_Helper_Abstract{

}

จากนั้นเรียกโมดูลนั้นคุณจะใช้

$helper = Mage::helper('mymodule');

9

เพิ่มตัวช่วยไดเรกทอรีในไดเรกทอรีส่วนขยายและในนั้นมีไฟล์ Data.php

class Test_Helper_Helper_Data extends Mage_Core_Helper_Abstract {

  public function yourFunction() {
     ...
     your code here
     ...
  } 

}

ตอนนี้คุณสามารถโทรผ่าน

Mage::helper('test/helper')->yourFunction();

เพิ่มสิ่งต่อไปนี้ในของคุณด้วย config.xml

...
<global>
    ...
    <helpers>
        <[extension name]>
            <class>[Namespace]_[extension name]_Helper</class>
        </[extension name]>
    </helpers>
    ...
</global>
...

ขอบคุณมากคุณสองคนนี่เป็นการสำรองข้อมูลเล็กน้อยที่ฉันสามารถหาได้และฉันก็สามารถทำให้มันทำงานได้ในที่สุด จริง ๆ แล้วฉันไม่ได้เรียกมันว่า test_helper นั่นเป็นเพียงสำหรับฉันที่จะผ่านสิ่งต่างๆในบล็อกทดสอบ litle ของฉัน แต่ใช่ความคิดที่เป็นใบ้เรียกมันว่าผู้ช่วย = p
Chris Morris

คุณน่าจะเปลี่ยนชื่อได้ดีกว่า แต่สิ่งสำคัญคือใช้งานได้! ขอให้โชคดีกับโครงการ
Sander Mangel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.