كيفية إنشاء ملحق Hello World في Magento 2

نشرت: 2017-04-25

سنقوم ببناء امتداد بسيط للغاية في Magento 2. عند الانتهاء ، سيقول ناتج الامتداد "Hello Weblizar ، هذا هو أول ملحق Magento في العالم مرحبًا! "في محتوى الكتلة على مسار أمامي مخصص. دعونا نتعلم كيفية إنشاء امتداد في magento 2 مع hello world كإخراج.

المتطلبات :

في القائمة ، لديك أحدث إصدار من Magento 2 وهو حاليًا 2.1. مثبت على نظامك المحلي.

قبل أن نبدأ تطوير ملحق Magento 2 ، هناك شيئان غالبًا ما ينساهما الناس وننصحك بفعلهما:

1. تعطيل ذاكرة التخزين المؤقت Magento

سيوفر لك تعطيل ذاكرة التخزين المؤقت لـ Magento أثناء التطوير بعض الوقت لأنك لن تحتاج إلى مسح ذاكرة التخزين المؤقت يدويًا في كل مرة تقوم فيها بإجراء تغييرات على التعليمات البرمجية الخاصة بك.

أسهل طريقة لتعطيل ذاكرة التخزين المؤقت هي الانتقال إلى المسؤول => النظام => إدارة ذاكرة التخزين المؤقت => حدد جميع أنواع ذاكرة التخزين المؤقت وقم بتعطيلها.

2. ضع Magento في وضع المطور

يجب عليك وضع Magento في وضع المطور للتأكد من أنك ترى جميع الأخطاء التي يلقيها عليك Magento.

للقيام بذلك ، افتح الجهاز وانتقل إلى جذر Magento 2. من هناك يجب عليك تشغيل الأمر التالي:

نشر php bin / magento: mode: set developer

كيفية إنشاء ملحق في Magento:

إنشاء ملفات ومجلدات الامتداد:
إعداد التمديد
تتمثل الخطوة الأولى في إنشاء مجلد الامتداد والملفات الضرورية المطلوبة لتسجيل امتداد Magento.
1. أنشئ المجلدات التالية:

  • التطبيق / الكود / Weblizar
  • التطبيق / الكود / Weblizar / Helloworld

مجلد Weblizar هو مساحة اسم الامتداد ، و Helloworld هو اسم الامتداد.
ملاحظة: إذا لم يكن لديك مجلد الرمز في دليل التطبيق ، فقم بإنشائه يدويًا.

2. الآن بعد أن أصبح لدينا مجلد ملحق ، نحتاج إلى إنشاء ملف module.XML في مجلد app / code / Weblizar / Helloworld / etc مع الكود التالي:

<؟ xml version = ”1.0 ″؟>
<config xmlns: xsi = ”http://www.w3.org/2001/XMLSchema-instance” xsi: noNamespaceSchemaLocation = ”urn: magento: framework: Module / etc / module.xsd”>
<اسم الوحدة النمطية = ”Weblizar_Helloworld” setup_version = ”1.0.0 ″> </module>
</config>

3. لتسجيل الوحدة ، قم بإنشاء ملف registration.php في مجلد app / code / Weblizar / Helloworld بالرمز التالي:

<؟ php
\ Magento \ Framework \ Component \ ComponentRegistrar :: تسجيل (
\ Magento \ Framework \ مكون \ ComponentRegistrar :: MODULE ،
"Weblizar_Helloworld" ،
__DIR__
) ؛ ؟>

4. افتح الجهاز الطرفي وانتقل إلى جذر Magento 2. قم بتشغيل الأمر التالي من هناك:

php bin / magento setup: ترقية

إذا كنت تريد التأكد من تثبيت الامتداد ، فيمكنك الانتقال إلى المسؤول => المتاجر => التكوين => متقدم => متقدم وتحقق من وجود الامتداد في القائمة أو يمكنك فتح التطبيق / etc / config.php وتحقق من المصفوفة الخاصة بالمفتاح "Weblizar_Helloworld" ، الذي يجب تعيين قيمته على 1.

لوحة إدارة magento أثناء إنشاء ملحق

إنشاء وحدة تحكم

1. نحتاج أولاً إلى تحديد جهاز التوجيه. للقيام بذلك ، قم بإنشاء ملف route.XML في مجلد app / code / Weblizar / Helloworld / etc / frontend بالشفرة التالية:

<؟ xml version = ”1.0 ″؟>
<config xmlns: xsi = ”http://www.w3.org/2001/XMLSchema-instance” xsi: noNamespaceSchemaLocation = ”urn: magento: framework: App / etc / route.xsd”>
<router id = ”standard”>
<route id = ”helloworld” frontName = ”helloworld”>
<اسم الوحدة النمطية = ”Weblizar_Helloworld” />
</route>
</router>
</config>

نحن هنا نحدد جهاز التوجيه الأمامي الخاص بنا والمسار بمعرف "helloworld".

ستكون سمة frontName هي الجزء الأول من عنوان URL الخاص بنا.

في Magento 2 URL يتم إنشاؤها بهذه الطريقة:
<frontName> / <controler_folder_name> / <controler_class_name>

لذلك في مثالنا ، سيبدو رابط عنوان URL النهائي على النحو التالي:

مرحبا العالم / الفهرس / الفهرس

2. نقوم الآن بإنشاء ملف وحدة تحكم Index.php في مجلد app / code / Weblizar / Helloworld / Controller / Index بالرمز التالي:

<؟ php

مساحة الاسم Weblizar \ Helloworld \ Controller \ Index ؛

استخدام Magento \ Framework \ App \ Action \ Context ؛

يمتد فهرس الفئة \ Magento \ Framework \ App \ Action \ Action
{
محمية $ _resultPageFactory؛

الوظيفة العامة __construct (السياق $ السياق ، \ Magento \ Framework \ View \ Result \ PageFactory $ resultPageFactory)
{
$ this -> _ resultPageFactory = $ resultPageFactory ؛
الأصل :: __ build (سياق $) ؛
}

تنفيذ الوظيفة العامة ()
{
$ resultPage = $ this -> _ resultPageFactory-> create ()؛
إرجاع resultPage؛
}
}

في Magento 2 ، كل إجراء له صنفه الخاص الذي ينفذ طريقة التنفيذ ().

خلق كتلة

سننشئ فئة كتلة بسيطة باستخدام طريقة getHelloWorldTxt () التي تُرجع سلسلة "Hello world".

1. قم بإنشاء ملف Helloworld.php في مجلد app / code / Weblizar / Helloworld / Block مع الكود التالي:

<؟ php
مساحة الاسم Weblizar \ Helloworld \ Block ؛

تمتد فئة Helloworld \ Magento \ Framework \ View \ Element \ Template
{
وظيفة عامة getHelloWorldTxt ()
{
العودة "مرحبًا Weblizar ، هذا هو أول ملحق Magento مرحبًا بالعالم!" ؛
}
}

إنشاء ملفات التخطيط والقالب

في Magento 2 ، يتم وضع ملفات التخطيط والقوالب في مجلد العرض داخل الامتداد الخاص بك. داخل مجلد العرض ، يمكن أن يكون لدينا ثلاثة مجلدات فرعية: adminhtml و base و frontend.
يتم استخدام مجلد adminhtml للمسؤول ، ويتم استخدام مجلد الواجهة الأمامية للواجهة الأمامية ويتم استخدام المجلد الأساسي لكل من ملفات admin والواجهة الأمامية.

1. أولاً ، سننشئ ملف helloworld_index_index.XML في مجلد app / code / Weblizar / Helloworld / view / frontend / layout بالرمز التالي:

<page xmlns: xsi = ”http://www.w3.org/2001/XMLSchema-instance” xsi: noNamespaceSchemaLocation = ”../../../../../../../ lib / داخلي / ماجنتو / إطار عمل /
View / Layout / etc / page_configuration.xsd ”layout =” 1column ”>
<الجسم>
<referenceContainer name = ”content”>
<block class = ”Weblizar \ Helloworld \ Block \ Helloworld” name = ”helloworld” template = ”helloworld.phtml” />
</referenceContainer>
</body>
</page>

تحتوي كل صفحة على يد تخطيط ولإجراء وحدة التحكم الخاصة بنا ، يكون مقبض التخطيط هو helloworld_index_index. يمكنك إنشاء ملف تكوين تخطيط لكل مقبض تخطيط.

في ملف التخطيط الخاص بنا ، أضفنا كتلة إلى حاوية المحتوى وقمنا بتعيين قالب الكتلة الخاصة بنا على helloworld.phtml ، والذي سننشئه في الخطوة التالية.

2. قم بإنشاء ملف helloworld.phtml في مجلد app / code / Weblizar / Helloworld / view / frontend / قوالب بالرمز التالي:

<h1> <؟ php echo $ this-> getHelloWorldTxt ()؛ ؟> </h1>

يشير هذا المتغير $ إلى فئة الكتلة الخاصة بنا ونقوم باستدعاء الطريقة getHelloWorldTxt () والتي تعيد السلسلة النصية "Hello world!".

وهذا كل شيء. افتح عنوان URL / helloworld / index / index في متصفحك ويجب أن تحصل على شيء مثل هذا و

إنشاء امتداد في إخراج magento

انقر هنا لتنزيل ملحق hello world magento