مجنتو کماکان به عنوان پلتفرم متنباز پیشرو در تجارت الکترونیک شناخته میشود. انعطافپذیری بالای این پلتفرم به صاحبین فروشگاه و توسعهدهندگان کمک میکند مشکلات پیچیده را حل کنند و دستشان برای توسعهی مجنتو باز باشد. اما قدرت بالا تبعاتی هم در پی دارد. باید دقت زیادی به خرج دهیم تا از اشتباهات رایج بپرهیزیم، زیرا در غیر این صورت از پس پیچیدگیهای مجنتو برنمیآییم و کار کردن با فروشگاه سخت و سختتر میشود. در این مقاله برای برنامهنویسهایی که با مجنتو کار میکنند ۳ راه هماهنگ شدن با آن آورده شده است تا بتوانند اشتباهات و پیچیدگیها را به حداقل برسانند.
ارتقای امن
آنهایی که چند وقتی است با مجنتو سر و کار دارند میدانند که تعدادی کد مخرب و چند وصلهی امنیتی برای جلوگیری از فعالیت آنها وجود دارد. بسیاری از فروشگاههای ساخته شده توسط پلتفرم مجنتو تلاش طاقتفرسایی برای ارتقا و امن کردن فروشگاه خود انجام دادند. بسیاری از این تلاشهای طاقتفرسا به این دلیل بود که آنها معماری مجنتو را رعایت نکرده و تغییراتی در کد هستهی مجنتو انجام داده بودند.
اما بعضی تغییرات کوچک اما بنیادی در روند توسعهی مجنتو میتواند اعمال وصلههای امنیتی را راحتتر کند. چند تا از ابزارهایی که میتوانند به شما کمک کنند اینها هستند:
۱. modman
این ابزار ماژولسازی به برنامهنویس اجازه میدهد تغییرات خود را از هستهی مجنتو دور نگاه دارد. توسعهدهنده با استفاده از تکنیکی به نام «پیوند نمادین» یا symlinking میتواند ماژولهای خود را به سرعت توسعه دهد، بروزرسانی و تعمیر کند، بدون این که هستهی مجنتو تغییر کند. مزیت: ارتقای هستهی مجنتو با امنیت بیشتری انجام میشود.
۲. مرور تغییرات هسته
در حالت ایدهآل هیچ تغییری در هستهی مجنتو نباید انجام شود. اما گاهی فروشگاه شما به ویژگیهایی نیاز دارد که دست بردن در کد هسته اجتنابناپذیر میشود. قبل از ارتقا از ابزاری مثل n98-magerun برای پیدا کردن تغییرات استفاده کنید. این ابزار از افزونهای به نام Magento Project Mess Detector پشتیبانی میکند که میتواند تغییرات موجود در هسته که ممکن است بر اثر بروزرسانی از بین بروند را پیدا کند. مزیت: یکپارچگی (integrity) فروشگاه شما حفظ میشود.
۳. کنترل نسخه (Version Control)
استفاده از ابزارهای کنترل نسخه در میان برنامهنویسان بسیار رایج است، اما فروشگاههای مبتنی بر مجنتوی بسیاری هستند که بدون استفاده از این ابزار کار میکنند. از همان مراحل اول راهاندازی، تا مراحل آخر تست و راهاندازی محیط عملیاتی از کنترل نسخه استفاده کنید. اگر تیم شما از این ابزار استفاده نمیکند، صاحب فروشگاه را در خطر زیادی قرار میدهید. کنترل نسخه به شما اجازه میدهد تمام تغییرات انجام شده روی سیستم را ببینید و در نتیجه هنگام ارتقا میتوانید مشکلات را راحتتر پیدا کنید. مزیت: در هنگام بروز مشکل سرنخها را به راحتی پیدا میکنید.
مدیریت وظیفه زمانبندیشده (Scheduled Task Management)
مجنتو از فرایندهای پسزمینه (background process) پشتیبانی میکند. این فرایندها اغلب برای هماهنگسازی یا انتقال اطلاعات از سرویسهای جانبی (third-party) که به فروشگاه شما متصل هستند استفاده میکنند. برای مثال برخی از فروشگاهها نیاز دارند اطلاعات سفارشها را هر شب به یک نرمافزار ERP بفرستند. فروشگاه شما در طول روز چندین فرایند پسزمینه را اجرا میکند. از آنجا که این فرایندها در پسزمینه اجرا میشوند نمیتوانید آنها را ببینید یا پیدا کردن آنها دشوار است.
برای حل این مشکل افزونهای وجود دارد که توسط AOE برای مدیریت فرایندهای پسزمینه طراحی شده است. این افزونه به فروشگاههایی که به نرمافزارهای جانبی زیادی متصل هستند، به خصوص آنهایی که در فضای B2B فعالیت میکنند، اجازه میدهد وضعیت این فرایندها را ببینند. هم به صورت جدول و هم به صورت نموداری کاربردی.
از یک پروفایلر استفاده کنید
در طول توسعهی فروشگاه مجنتو ممکن است به راحتی از کیفیت و کارایی کار خود غافل شویم. اما همهمان میدانیم که کار را باید از همان اول درست انجام داد و اشتباهات را در مراحل اولیه شناسایی کرد. بنابراین وقتی در حال توسعهی ویژگیها برای فروشگاه هستید از پروفایلر خود مجنتو کمک بگیرید.
مزیت بزرگ استفاده از این ابزار این است که میتوانید مشکلات کارایی را به راحتی ببینید. اغلب منوی ناوبری و صفحاتی که لیست محصولات را به نمایش میگذارند بیشترین مشکل را در کارایی پیدا میکنند.
در تصویر بالا میتوانیم به راحتی ببینیم که اجرای هر فرایند چقدر طول کشیده است. میزان حافظهای که فرایندها اشغال کردهاند هم قابل مشاهده است.
پروفایلر میتواند تعداد زیادی از فرایندهای مجنتو را نشان دهد. اما بهتر است فرایندهای ساخته شده توسط خودتان را هم به پروفایلر اضافه کنید. برای این کار میتوانید فرایند مشکوک را با استفاده از کد زیر به پروفایلر اضافه کنید:
…
public function getCustomProductData(Mage_Catalog_Model_Product $product)
{
Varien_Profiler::start(‘LOAD_CUSTOM_PRODUCT_DATA’);
$resource = Mage::getSingleton(‘core/resource’);
$adapter = $resource->getConnection(‘core_read’);
$select = $adapter->select()
->from($resource->getTableName(‘custom_table’))
->where(‘product_id = ?’, $product->getId());
$data = $adapter->fetchRow($select);
$product->setCustomData($data);
Varien_Profiler::stop(‘LOAD_CUSTOM_PRODUCT_DATA’);
return $product->getCustomData();
}
در این مثال کارایی فراخوانی از پایگاه داده اندازهگیری میشود. در طول توسعه ممکن است فراخوانی از پایگاه داده مشکل بزرگی ایجاد نکند اما به این فکر کنید که این فراخوانی صدها یا هزاران بار در طول یک درخواست اجرا شود. بدون استفاده از پروفایلر ممکن است متوجه این پایین آمدن سرعت نشوید.
وقتی با مجنتو ۱ کار میکنید بیگدار به آب نزنید. از این راهکارها استفاده کنید تا فروشگاهی بهتر، با قابلیت توسعهی بیشتر و مطمئنتر بسازید.
بیشتر بخوانید: ۵ راه برای افزایش کارایی مجنتو

به دنبال مسیر مناسب برای فروشگاه خود هستید؟
همیشه اول با حرفهایها مشورت کنید.
پیام و یا پرسشتان را بنویسید.