مجنتو Magento یکی از قوی ترین تجارت الکترونیک آنلاین به زبان PHP است که این مقاله مقدمه ای بر برنامه نویسی در مجنتو است. و در این آموزش فرض براین است که شما در حال حاضر مرحله نصب و راه اندازی را چه به صورت لوکال یا بر روی سرور گذرانده اید.
و زیاد مهم نیست که با کدوم نسخه (Community, Professional and Enterprise) مشغول کار هستید چون که ما قصد داریم به جنبه های اساسی در تمامی نسخه ها بپردازیم.
مجنتو Magento یکی از قوی ترین تجارت الکترونیک آنلاین به زبان PHP است که این مقاله مقدمه ای بر برنامه نویسی در مجنتو است. و در این آموزش فرض براین است که شما در حال حاضر مرحله نصب و راه اندازی را چه به صورت لوکال یا بر روی سرور گذرانده اید.
و زیاد مهم نیست که با کدوم نسخه (Community, Professional and Enterprise) مشغول کار هستید چون که ما قصد داریم به جنبه های اساسی در تمامی نسخه ها بپردازیم.
غیر فعال کردن کش
یکی از درس هایی که هر توسعه دهنده مجنتو بایستی یاد بگیرد: غیر فعال کردن کش (حافظه پنهان)! که این کار با رفتن به آدرس زیر قابل انجام است.
Admin Panel > System > Cache Management > Select All > Actions: Disable > Submit
در حالی که حافظه پنهان در افزایش عملکرد در یک محیط تولید بسیار خوب است اما دشمن یک توسعه دهنده است. من با اکثر دوستان توسعه دهنده (برنامه نویس) مجنتو که ملاقات کرده ام به این موضوع اذعان کردند که بر روی یک موضوع بیش از یک ساعت یا بیشتر وقت صرف کرده اند ولی با تعجب که چرا آخرین به روز رسانی خود، اعمال نمی شود، تنها راه برای پیدا کردن راه حل این است که مجنتو هنوز نسخه ای از وب سایت را نمایش می دهد که آن را در حافظه نهان خود قبلا در همان روز ذخیره سازی کرده است.
دایرکتوری app/code
مغز Magento را می توان در ماژولهای مورد نظر در داخل دایرکتوری app/code
یافت، که به سه حوزه : هسته، جامعه و محلی (core, community and local) تقسیم می شود.
Core
دایرکتوری app/code/core شامل تمامی توابع(قابلیت ها)
مورد نیاز برای محصولات (products)، دسته ها (categories)، مشتریان (customers) ، پرداخت ها (payments) و غیره می باشد.
تا زمانی که شما می دانید چه کاری انجام می دهید و یا حتی پس از آن شما بایستی محدودیت هایی را در رابطه با فایلهای دایرکتوری app/code/core
رعایت کنید و از اصلاح کدهای آن خودداری کنید.
Magento ساختار یافته است به گونه ای که شما می توانید عملکرد هر یک از این فایل های اصلی را بدون تغییرمستقیم آنها، تغییر دهید، که تضمین می کند که برنامه شما در برابر ارتقاء، مقاوم باقی می ماند. با تمام این صحبت ها، به منظور درک بهتر نحوه کار Magento آن فایل ها را نگاه کنید، اما دست نزنید.
Community
همانگونه که از اسم آن می توان حدس زد در app/code/community
شما ماژول هایی که توسط اشخاص ثالث (third parties) ( نه تیم اصلی مجنتو ) ارائه شده است را پیدا خواهید کرد. صدها ماژول از طریق اتصال به مجنتو (Magento) قابل دسترس هستند که وقتی شما آنها را از طریق “Package Manager,” نصب می کنید
اینجا مقصدی است که آنها در نهایت در آن قرار می گیرند.
Local
مجنتو Magento دارای یک دایرکتوری خالی در app/code/local
است، که آماده برای نصب و راه اندازی ماژول های سفارشی خود شما است و در طول این آموزش ما با این دایرکتوری سروکار خواهیم داشت.
ساختار دایرکتوری ما Structuring Our Directory
ویرایشگر مورد دلخواه خود را باز کنید و خود را برای تغییراتی از جمله اضافه کردن فایل و دایرکتوری در app/code/local
آماده کنید.
Module Namespace
اولین دایرکتوری که ما ایجاد می کنیم “namespace” هست. نام آن می تواند هر چیز دلخواه باشد اما قرارداد هست که از نام شرکت و نام نویسنده شکل بگیرد. خود مجنتو Magento از “Mage” به عنوان namespace استفاده می کند.
ما در این آموزش از "ProgrammincoJalali
" به عنوان namespace استفاده می کنیم و به همین منظور ما دایرکتوری app/code/local/ProgrammincoJalali
را ایجاد می کنیم.
Module Name
دایرکتوری بعدی، نام ماژول را مشخص می کند که در این ماژول قصد داریم در هر بار ذخیره سازی محصولات (Products)، نوشته هایی را در لاگ log یادداشت کنیم. پس بخاطر همین کارکرد، نام ماژول را LogProductUpdate
قرار می دهیم.
دایرکتوری app/code/local/
را ایجاد می کنیم.ProgrammincoJalali
/LogProductUpdate
ما باید اکنون برای ماژول مان ساختار دایرکتوری شبیه زیر داشته باشیم.این فایل ها و دایرکتوری ها case-sensitive (حساس به حروف کوچک و بزرگ ) هستند. پس دقت لازم را در تایپ حروف را داشته باشید.
app
- code
- local
- ProgrammingcoJalali
- LogProductUpdate