Skip to the content.

مستندات PrestaSDK

فصل ۱: مقدمه و شروع سریع

این فصل یک دید کلی درباره PrestaSDK، نحوه نصب و راه‌اندازی اولیه آن ارائه می‌دهد. در پایان این فصل، شما اولین ماژول خود را با استفاده از این SDK خواهید ساخت.

۱.۱. PrestaSDK چیست؟

PrestaSDK یک کیت توسعه نرم‌افزار (SDK) برای ساخت ماژول‌های پرستاشاپ است که با هدف افزایش سرعت، استانداردسازی و بهبود قابلیت نگهداری کد طراحی شده است. توسعه ماژول در پرستاشاپ گاهی می‌تواند شامل کدهای تکراری و فرآیندهای پیچیده برای انجام کارهای رایج مانند نصب، مدیریت تنظیمات، یا ساخت پنل مدیریت باشد. PrestaSDK با فراهم آوردن یک ساختار منظم و مجموعه‌ای از ابزارهای کمکی، این فرآیندها را خودکار و ساده می‌کند.

اهداف اصلی:

مزایای کلیدی:

برای استفاده از PrestaSDK در ماژول خود، تنها کافی است آن را به عنوان یک وابستگی (dependency) از طریق Composer اضافه کنید.

پیش‌نیازها:

مراحل نصب:

۱. وارد پوشه اصلی ماژول خود شوید.

۲. دستور زیر را در ترمینال اجرا کنید تا SDK به پروژه شما اضافه شود:

composer require prestaware/prestasdk

این دستور پوشه vendor و فایل autoload.php را در ریشه ماژول شما ایجاد می‌کند.

۳. در فایل اصلی ماژول خود (مثلاً mymodule.php)، فایل autoload.php را فراخوانی کنید تا کلاس‌های SDK در دسترس قرار گیرند:

// mymodule/mymodule.php

if (file_exists(dirname(__FILE__).'/vendor/autoload.php')) {
    require_once dirname(__FILE__).'/vendor/autoload.php';
}

۱.۳. ساخت اولین ماژول (Hello World)

در این بخش، یک ماژول ساده می‌سازیم که پایه و اساس کار با PrestaSDK را نشان می‌دهد.

۱. ساختار اولیه فایل‌ها

ابتدا ساختار پوشه‌بندی زیر را برای ماژول خود ایجاد کنید:

/modules
  /myhelloworld
    - myhelloworld.php   (فایل اصلی ماژول)
    - composer.json
    - logo.png
    - config.xml

۲. ساخت کلاس اصلی ماژول

محتوای فایل myhelloworld.php را به شکل زیر ایجاد کنید. مهم‌ترین نکته، ارث‌بری کلاس اصلی از PrestaSDK\V070\PrestaSDKModule است.

<?php
// myhelloworld/myhelloworld.php

if (!defined('_PS_VERSION_')) {
    exit;
}

if (file_exists(dirname(__FILE__).'/vendor/autoload.php')) {
    require_once dirname(__FILE__).'/vendor/autoload.php';
}

use PrestaSDK\V070\PrestaSDKModule;

class MyHelloWorld extends PrestaSDKModule
{
    public function __construct()
    {
        // تمام تنظیمات اولیه باید در متد initModule قرار گیرند
        // این متد توسط والد صدا زده می‌شود
        parent::__construct();
    }

    /**
     * تنظیمات اصلی و اولیه ماژول در این متد تعریف می‌شود.
     */
    public function initModule()
    {
        $this->name = 'myhelloworld';
        $this->tab = 'front_office_features';
        $this->version = '1.0.0';
        $this->author = 'Your Name';
        $this->need_instance = 0;
        $this->bootstrap = true;

        $this->displayName = $this->l('My Hello World Module');
        $this->description = $this->l('A simple module created with PrestaSDK.');

        $this->ps_versions_compliancy = ['min' => '1.7.8', 'max' => _PS_VERSION_];
    }

    /**
     * متد نصب - SDK بقیه کارها را انجام می‌دهد
     */
    public function install()
    {
        return parent::install();
    }

    /**
     * متد حذف - SDK بقیه کارها را انجام می‌دهد
     */
    public function uninstall()
    {
        return parent::uninstall();
    }
}

۳. معرفی متد initModule

همان‌طور که در کد بالا مشاهده می‌کنید، تمام پراپرتی‌های اصلی ماژول مانند name, version, displayName و… داخل متد initModule() تعریف شده‌اند.

این متد به صورت خودکار توسط سازنده (__construct) کلاس PrestaSDKModule فراخوانی می‌شود. این کار باعث می‌شود تا منطق مقداردهی اولیه ماژول از سازنده اصلی جدا شده و کد شما تمیزتر و سازمان‌یافته‌تر باشد.

با همین چند خط کد، شما یک ماژول استاندارد ساخته‌اید. حالا می‌توانید آن را نصب کنید. در فصل‌های بعدی یاد می‌گیریم که چگونه کنترلر، تنظیمات، تب‌های مدیریت و… را به آن اضافه کنیم.