اتخطّى للمحتوى

مصطلحات Magento 2

تعريف قصير لكل مصطلح بتقابله في كود Magento 2، ومعاه رابط للدرس اللي بيشرحه.

قاموس مصطلحات Magento 2 بيعرّف أهم المفاهيم اللي بتقابلها في الكود والتوثيق، زي Dependency Injection و Plugin و Observer و EAV و Indexer و Full Page Cache، في جملة أو اتنين لكل مصطلح. المصطلحات مكتوبة بالإنجليزي زي ما هي في الشغل، والتعريف بالعربي، ومع كل مصطلح رابط للدرس اللي بيشرحه بالتفصيل.

A

ACL

Access Control List: نظام صلاحيات الأدمن في Magento. الـ resources بتتعرّف في acl.xml، وكل admin controller أو web API route بيحدّد الـ resource المطلوب لاستخدامه.

اتشرح في درس: لوحة الأدمن و UI Components

B

Block

PHP class بيجهّز البيانات اللي الـ template هيعرضها. الـ Layout XML بيربط كل block بـ template، والـ template بيوصل له عن طريق المتغيّر $block.

اتشرح في درس: الـ Frontend بالتفصيل

C

Canonical Tag

tag في الـ head بيحدّد الرابط الأصلي لمحتوى موجود على أكتر من رابط. Magento 2 بيطلّعه للمنتجات والـ categories بعد تفعيل إعداده من الأدمن.

اتشرح في درس: الـ SEO في Magento
Collection

class بيجيب مجموعة صفوف من جدول ويسمحلك تضيف فلاتر وترتيب وحدود قبل ما الـ query يتنفّذ. الـ query مابيتنفّذش إلا لما تحتاج البيانات فعلًا (lazy loading).

اتشرح في درس: بناء Entity من الصفر
Cron

جدولة المهام الدورية في Magento 2، زي تحديث الـ indexers وإرسال الإيميلات وتوليد الـ sitemap. المهام بتتعرّف في crontab.xml، ومحتاجة cron job على السيرفر بينادي bin/magento cron:run.

اتشرح في درس: قاعدة البيانات والأداء

D

Data Patch

class بينفّذ تعديل بيانات مرة واحدة، زي إضافة attribute أو بيانات افتراضية. Magento بيسجّل الـ patches اللي اتطبّقت في جدول patch_list عشان ماتتنفّذش تاني.

اتشرح في درس: قاعدة البيانات والأداء
Declarative Schema

طريقة تعريف جداول قاعدة البيانات في ملف etc/db_schema.xml بدل install scripts. بتوصف الشكل اللي عايزه للجدول، وأمر setup:upgrade بيطبّق الفرق.

اتشرح في درس: بناء Entity من الصفر
Dependency Injection

نمط تصميم بياخد فيه الـ class الـ objects اللي محتاجها من الـ constructor بدل ما يعملها بنفسه. في Magento 2 الـ Object Manager بيجهّز الـ dependencies دي حسب إعدادات di.xml.

اتشرح في درس: أساسيات Magento بالتفصيل
Deploy Mode

وضع تشغيل Magento: default أو developer أو production. الـ production هو الأسرع وبيقدّم ملفات static و generated متجهّزة مسبقًا، وبيتغيّر بأمر bin/magento deploy:mode:set.

اتشرح في درس: الـ SEO في Magento
di.xml

ملف إعدادات الـ Dependency Injection في الموديول. بيعرّف الـ preferences والـ plugins والـ virtual types والـ arguments اللي بتتحقن في الـ constructors، ومكانه etc/ أو مجلد area زي etc/frontend/.

اتشرح في درس: أساسيات Magento بالتفصيل

E

EAV

Entity-Attribute-Value: نموذج تخزين بيحفظ قيمة كل attribute في صف منفصل بدل عمود لكل attribute. Magento 2 بيستخدمه للمنتجات والـ categories والعملاء عشان تقدر تضيف attributes من غير ما تغيّر شكل الجداول.

اتشرح في درس: أساسيات Magento بالتفصيل

F

Factory

class بيتولّد تلقائيًا لإنشاء objects جديدة من نوع معيّن، زي ProductFactory::create(). بتستخدمه لما تحتاج instance جديد كل مرة بدل الـ instance المشترك اللي بيتحقن افتراضيًا.

اتشرح في درس: أساسيات Magento بالتفصيل
Full Page Cache

كاش بيحفظ الصفحة كاملة كـ HTML عشان الطلبات الجاية تتقدّم من غير ما Magento يبنيها من الأول. في الـ production المُوصى بيه Varnish بدل الكاش المدمج.

اتشرح في درس: قاعدة البيانات والأداء

G

GraphQL Resolver

class بينفّذ ResolverInterface وبيرجّع بيانات field أو query في GraphQL. بيتربط بالـ schema في ملف schema.graphqls عن طريق @resolver.

اتشرح في درس: GraphQL كامل

I

Indexer

عملية بتحوّل بيانات متفرّقة، زي الأسعار والمخزون وخصائص EAV، لجداول مجهّزة للقراءة السريعة في الـ storefront. بتشتغل في وضع Update on Save أو Update by Schedule.

اتشرح في درس: الـ Indexers

K

Knockout.js

مكتبة JavaScript بتربط البيانات بالواجهة تلقائيًا (data binding). Magento 2 بيستخدمها في الـ checkout والـ minicart والـ UI Components.

اتشرح في درس: الـ Checkout

L

Layout Handle

اسم بيحدّد أنهي ملفات layout تنطبق على صفحة معيّنة، وبيساوي اسم الملف، زي catalog_product_view لصفحة المنتج و default لكل الصفحات.

اتشرح في درس: الـ Frontend بالتفصيل
Layout XML

ملفات XML بتحدّد بنية الصفحة: أنهي blocks و containers تظهر، فين، وبأي ترتيب. Magento بيدمج ملفات الـ layout من كل الـ modules والـ theme المفعّل.

اتشرح في درس: الـ Frontend بالتفصيل

M

Message Queue Framework

طبقة في Magento بتبعت رسائل من publisher لـ consumer بيعالجها في الخلفية. بتشتغل مع RabbitMQ (AMQP) أو مع adapter مبني على MySQL، وبتتعرّف بملفات XML في etc/.

اتشرح في درس: RabbitMQ — موديول شغّال
Module

الوحدة الأساسية لأي feature في Magento 2: مجلد فيه كود وإعدادات وملفات واجهة، بيتسجّل بـ registration.php ويتعرّف في etc/module.xml، وممكن يتفعّل أو يتقفل لوحده.

اتشرح في درس: هيكل الـ Module
MSI

Multi-Source Inventory: نظام المخزون في Magento 2 اللي بيدعم أكتر من مصدر مخزون زي المخازن والفروع، وبيحسب الكمية المتاحة للبيع باستخدام الـ stocks والـ reservations.

اتشرح في درس: التكامل مع POS
MView

آلية Materialized View في Magento: database triggers بتسجّل الصفوف المتغيّرة في جداول changelog، عشان الـ indexers اللي على Update by Schedule يعالجوا الصفوف دي بس بالـ cron.

اتشرح في درس: الـ Indexers

O

Object Manager

الـ component اللي بيعمل الـ objects في Magento 2 وبيحقن الـ dependencies بتاعتها. المفروض كود الموديولات مايناديهوش مباشرة، وبدل كده بيطلب اللي محتاجه في الـ constructor.

اتشرح في درس: أساسيات Magento بالتفصيل
Observer

class بينفّذ كود لما event معيّن يحصل، زي حفظ منتج أو إنشاء طلب. بيتسجّل في events.xml على اسم الـ event، وبيمشي بنمط publish/subscribe.

اتشرح في درس: أساسيات Magento بالتفصيل

P

Plugin (Interceptor)

class بيعدّل سلوك public method في class تاني من غير ما يعدّل كوده، عن طريق methods من نوع before أو after أو around. بيتسجّل في di.xml، وأكتر من plugin يقدروا يشتغلوا على نفس الـ method.

اتشرح في درس: أساسيات Magento بالتفصيل
Preference

إعداد في di.xml بيقول لـ Magento يستخدم class معيّن بدل interface أو class تاني. بيستبدل التنفيذ بالكامل، ولو أكتر من module عملوا preference لنفس النوع واحد بس بيتطبّق.

اتشرح في درس: مواضيع متقدّمة
Proxy

class بيتولّد تلقائيًا وبيأجّل إنشاء الـ object الحقيقي لحد أول استخدام. بيتظبط في di.xml عشان dependency تقيلة ماتتعملش إلا لو احتجتها فعلًا.

اتشرح في درس: أساسيات Magento بالتفصيل

Q

Quote

السلة المؤقتة في Magento: فيها المنتجات والعناوين وطريقة الشحن والدفع والإجماليات أثناء الـ checkout، ولما العميل يأكّد الطلب بياناتها بتتحوّل لـ order.

اتشرح في درس: الـ Checkout

R

Redis

مخزن بيانات في الذاكرة. Magento 2 يقدر يستخدمه كـ backend للكاش ولتخزين الـ sessions، وده بيقلّل الضغط على قاعدة البيانات ونظام الملفات.

اتشرح في درس: Redis و RabbitMQ و Indexing
Repository

class بيقدّم عمليات الحفظ والقراءة والمسح والبحث لنوع بيانات معيّن (save و getById و getList و delete)، ومخبّي تفاصيل الـ ResourceModel والـ Collection ورا interface ثابت.

اتشرح في درس: بناء Entity من الصفر
RequireJS

مكتبة بتحمّل الـ JavaScript كـ modules وبتدير الاعتماديات بينها. في Magento 2 بتتظبط من requirejs-config.js، وبتتنادى من الـ templates بـ x-magento-init أو data-mage-init.

اتشرح في درس: الـ Frontend بالتفصيل

S

Service Contract

مجموعة PHP interfaces (Data interfaces و Repository أو Service interfaces) بتعرّف الـ API الرسمي للموديول. باقي الموديولات والـ REST API بيعتمدوا عليها بدل التفاصيل الداخلية.

اتشرح في درس: أساسيات Magento بالتفصيل
Static Content Deploy

أمر setup:static-content:deploy اللي بينشر ملفات CSS و JS والصور وملفات الترجمة في pub/static لكل theme ولغة. في الـ production لازم يتشغّل بعد أي تعديل في الواجهة.

اتشرح في درس: الـ Frontend بالتفصيل
Store View

أقل مستوى في هرم المتجر، وغالبًا بيمثّل لغة. بيتحكّم في الترجمة وفي القيم اللي على مستوى الـ store view زي أسماء المنتجات والـ meta.

اتشرح في درس: Website و Store و Store View

U

UI Component

مكوّنات واجهة معرّفة في XML ومدعومة بـ JavaScript، زي grids و forms الأدمن وخطوات الـ checkout. بتاخد بياناتها من data provider.

اتشرح في درس: لوحة الأدمن و UI Components
URL Rewrite

سجل في جدول url_rewrite بيربط رابط مقروء زي /iphone-15.html بالمسار الداخلي، وممكن يكون redirect بـ 301 أو 302. بيتعمل تلقائيًا للمنتجات والـ categories أو يدويًا من الأدمن.

اتشرح في درس: الـ SEO في Magento

V

Varnish

HTTP reverse proxy بيقدّم الصفحات المتخزّنة قبل ما الطلب يوصل لـ PHP. Magento بيقدر يولّد ملف إعداداته (VCL)، وAdobe بتوصي بيه للـ Full Page Cache في الـ production.

اتشرح في درس: الـ SEO في Magento

W

webapi.xml

ملف بيربط URL و HTTP method بـ method في service contract، وبيحدّد الصلاحية المطلوبة، فـ Magento يعمل REST endpoint من غير ما تكتب controller.

اتشرح في درس: REST API كامل
Website

أعلى مستوى في هرم المتجر تحت الـ Global. بيجمع stores ليها نفس إعدادات الدفع والشحن، ومعاه تقدر تفصل حسابات العملاء والأسعار لو ظبطت الإعدادات كده.

اتشرح في درس: Website و Store و Store View