مستندات PrestaSDK
فصل ۱: مقدمه و شروع سریع
این فصل یک دید کلی درباره PrestaSDK، نحوه نصب و راهاندازی اولیه آن ارائه میدهد. در پایان این فصل، شما اولین ماژول خود را با استفاده از این SDK خواهید ساخت.
۱.۱. PrestaSDK چیست؟
PrestaSDK یک کیت توسعه نرمافزار (SDK) برای ساخت ماژولهای پرستاشاپ است که با هدف افزایش سرعت، استانداردسازی و بهبود قابلیت نگهداری کد طراحی شده است. توسعه ماژول در پرستاشاپ گاهی میتواند شامل کدهای تکراری و فرآیندهای پیچیده برای انجام کارهای رایج مانند نصب، مدیریت تنظیمات، یا ساخت پنل مدیریت باشد. PrestaSDK با فراهم آوردن یک ساختار منظم و مجموعهای از ابزارهای کمکی، این فرآیندها را خودکار و ساده میکند.
اهداف اصلی:
- توسعه سریع (Rapid Development): با خودکارسازی وظایف تکراری مانند ثبت هوکها، نصب تبهای ادمین و مدیریت جداول دیتابیس، به شما اجازه میدهد تا روی منطق اصلی ماژول خود تمرکز کنید.
- ساختار استاندارد (Standardized Structure): تمام ماژولهایی که با این SDK توسعه داده میشوند، از یک معماری یکسان پیروی میکنند. این موضوع باعث میشود که یادگیری، توسعه و کار تیمی روی پروژهها آسانتر شود.
- قابلیت نگهداری بالا (High Maintainability): کدهای نوشتهشده خواناتر، تمیزتر و سازمانیافتهتر خواهند بود که این امر نگهداری و بروزرسانی ماژول در آینده را سادهتر میکند.
مزایای کلیدی:
- نصبکننده خودکار: کامپوننتهای Installer بهسادگی فرآیند نصب تبها، هوکها و جداول دیتابیس را مدیریت میکنند.
- پنل مدیریت آماده: با استفاده از AdminController و PanelCore، یک ساختار پنل مدیریت زیبا و کاربردی همراه با منوی کناری و سیستم قالببندی در اختیار شما قرار میگیرد.
- کلاسهای کمکی قدرتمند: ابزارهایی برای کار با فرمها (HelperForm)، تنظیمات (Config) و متدهای عمومی (HelperMethods) در نظر گرفته شده است.
- مدیریت خودکار Asset ها: فایلهای CSS و JavaScript به صورت خودکار در مسیر صحیح کپی شده و نسخهبندی میشوند تا از مشکلات کش در مرورگر جلوگیری شود.
۱.۲. نصب و راهاندازی
برای استفاده از PrestaSDK در ماژول خود، تنها کافی است آن را به عنوان یک وابستگی (dependency) از طریق Composer اضافه کنید.
پیشنیازها:
- PHP: نسخه 7.4 یا بالاتر
- PrestaShop: نسخه 1.7.8 یا بالاتر (توصیه شده: 8.1.0 به بالا)
- 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
فراخوانی میشود. این کار باعث میشود تا منطق مقداردهی اولیه ماژول از سازنده اصلی جدا شده و کد شما تمیزتر و سازمانیافتهتر باشد.
با همین چند خط کد، شما یک ماژول استاندارد ساختهاید. حالا میتوانید آن را نصب کنید. در فصلهای بعدی یاد میگیریم که چگونه کنترلر، تنظیمات، تبهای مدیریت و… را به آن اضافه کنیم.