در مطلب قبل ماژول Pasargad را تا مرحله‌ای که مجنتو آن را شناسایی کند، توسعه دادیم. در این مطلب طریقه رجیستر کردن Block، Model و Helper را مورد بررسی قرار می‌دهیم.

Model: مدل‌ها کلاس‌هایی هستند که منطق برنامه را پیاده سازی می‌کنند. به عنوان مثال موجودیت‌ها به صورت مدل پیاده سازی می‌شوند. در اکثر مواقع مدل‌ها معادل Entityهایی هستند که در پایگاه داده برای آنها جداولی را ایجاد کرده ایم.

Helper: این کلاس‌ها شامل قطعه کد‌هایی هستند که احتمالا قرار است زیاد مورد استفاده ماژول قرار گیرند.

Block: شامل فایل‌های HTML برای پیاده سازی لایه view در معماری mvc هستند.

رجیستر کردن Modelها، Helperها و Blockها

گام اول: در توسعه ماژول‌های مبتنی بر Zend برای مجنتو نیاز به توسعه Modelها، Helperها و Blockها داریم. هر یک از این قطعه کد‌ها مخصوص پیاده‌سازی ویژگی خاصی از ماژول است. اما برای رجیستر کردن آنها خطوط زیر را به فایل etc/config.xml زیر تگ <config> اضافه کنید.

<global>
  <blocks>
    <pasargad> <!-- model group alias to be used in Mage::getModel('newmodule/...') -->
      <class>RastaAfzar_Pasargad_Block</class>
    </pasargad>
  </blocks>
  <helpers>
    <pasargad>
      <class>RastaAfzar_Pasargad_Helper</class>
    </pasargad>
  </helpers>
  <models>
    <pasargad>
      <class>RastaAfzar_Pasargad_Model</class>
    </pasargad>
  </models>
</global>

همچنین پوشه‌های Block و Helper و Model را در ریشه ماژول ایجاد کنید.

گام دوم: فایل Helper/Data.php را ایجاد کنید و خطوط زیر را داخل آن قرار دهید:

<?php
class RastaAfzar_Pasargad_Helper_Data extends Mage_Core_Helper_Abstract
{
}

کلاس RastaAfzar_Pasargad_Helper_Data از Mage_Core_Helper_Abstract ارثبری کرده تا بتواند از توابع خاصی استفاده کند. نام گذاری کلاس‌ها از استاندارد PSR-0 پیروی می‌کند و دارای فرمت زیر است:

<Vendor Namespace>_<Modulename>_<Objectype>_<Classname>

به عنوان مثال فایل Payment.php در پوشه Model حاوی کلاسی با نام RastaAfzar_Pasargad_Model_Payment است. همچنین می‌توان با فراخوانی تابع زیر به این مدل دسترسی پیدا کرد. عبارت pasargad در فراخوانی زیر را model group alias گوئیم که قبل‌تر در فایل config.xml با تگ <pasargad> مدل‌ها را زیر آن رجیستر کردیم.

Mage::getModel('pasargad/payment');

برای دسترسی به کلاس‌های Helper نیز از متد زیر استفاده می‌کنیم:

Mage::helper('pasargad/data');

همچنین همین فرمت را برای اشاره به یک فایل Block در فایل‌های Layout مورد استفاده قرار می‌دهیم.

افزودن نظر جدید