Cum să creați o extensie Hello World în Magento 2

Publicat: 2017-04-25

Vom construi o extensie foarte simplă în Magento 2. Când terminăm, rezultatul extensiei va spune „Bună Weblizar, Aceasta este prima extensie Magento hello world! ” în conținutul blocului pe o rută frontală personalizată. Să învățăm cum să creăm o extensie în Magento 2 cu hello world ca rezultat.

Cerință:

Pe listă, aveți cea mai recentă versiune Magento 2, care este în prezent 2.1. Este instalat pe sistemul dvs. local.

Înainte de a începe dezvoltarea unei extensii Magento 2, există două lucruri pe care oamenii le uită adesea și vă recomandăm să le faceți:

1. Dezactivează memoria cache Magento

Dezactivarea cache-ului Magento în timpul dezvoltării vă va economisi ceva timp, deoarece nu va trebui să goliți manual memoria cache de fiecare dată când faceți modificări codului.

Cel mai simplu mod de a dezactiva memoria cache este să accesați Admin => System => Cache Management => selectați toate tipurile de cache și dezactivați-le.

2. Pune Magento într-un mod de dezvoltator

Ar trebui să puneți Magento într-un mod de dezvoltator pentru a vă asigura că vedeți toate erorile pe care vi le aruncă Magento.

Pentru a face acest lucru, deschideți terminalul și accesați rădăcina Magento 2. De acolo ar trebui să rulați următoarea comandă:

php bin/magento deploy:mode:set developer

Cum se creează o extensie în Magento:

Crearea fișierelor de extensie și a folderelor:
Configurare extensie
Primul pas este să creați folderul cu extensii și fișierele necesare pentru a înregistra o extensie Magento.
1. Creați următoarele foldere:

  • aplicație/cod/Weblizar
  • app/code/Weblizar/Helloworld

Dosarul Weblizar este spațiul de nume al extensiei, iar Helloworld este numele extensiei.
Notă: dacă nu aveți folderul de cod în directorul aplicației, creați-l manual.

2. Acum că avem un folder cu extensii, trebuie să creăm un fișier module.XML în folderul app/code/Weblizar/Helloworld/etc cu următorul cod:

<?xml version="1.0″?>
<config xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=”urn:magento:framework:Module/etc/module.xsd”>
<module name=”Weblizar_Helloworld” setup_version=”1.0.0″></module>
</config>

3. Pentru a înregistra modulul, creați un fișier registration.php în folderul app/code/Weblizar/Helloworld cu următorul cod:

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
„Weblizar_Helloworld”,
__DIR__
); ?>

4. Deschideți terminalul și accesați rădăcina Magento 2. Rulați de acolo următoarea comandă:

php bin/magento setup:upgrade

Dacă doriți să vă asigurați că extensia este instalată, puteți merge la Admin => Stores => Configuration => Advanced => Advanced și verificați dacă extensia este prezentă în listă sau puteți deschide app/etc/config.php și verificați matricea pentru cheia „Weblizar_Helloworld”, a cărei valoare ar trebui să fie setată la 1.

panoul de administrare magento în timp ce creați o extensie

Crearea unui controler

1. Mai întâi trebuie să definim routerul. Pentru a face acest lucru, creați un fișier routes.XML în folderul app/code/Weblizar/Helloworld/etc/frontend cu următorul cod:

<?xml version="1.0″?>
<config xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=”urn:magento:framework:App/etc/routes.xsd”>
<router id="standard">
<route id=”helloworld” frontName=”helloworld”>
<nume modul=”Weblizar_Helloworld” />
</route>
</router>
</config>

Aici definim routerul și ruta noastră frontală cu un id „helloworld”.

Atributul frontName va fi prima parte a URL-ului nostru.

În Magento 2 URL-urile sunt construite astfel:
<frontName>/<controler_folder_name>/<controller_class_name>

Deci, în exemplul nostru, URL-ul final va arăta astfel:

helloworld/index/index

2. Acum creăm fișierul controler Index.php în folderul app/code/Weblizar/Helloworld/Controller/Index cu următorul cod:

<?php

spațiu de nume Weblizar\Helloworld\Controller\Index;

utilizați Magento\Framework\App\Action\Context;

clasa Index extinde \Magento\Framework\App\Action\Action
{
protejat $_resultPageFactory;

funcția publică __construct(Context $context, \Magento\Framework\View\Result\PageFactory $resultPageFactory)
{
$this->_resultPageFactory = $resultPageFactory;
parent::__construct($context);
}

funcția publică execute()
{
$resultPage = $this->_resultPageFactory->create();
returnează $resultPage;
}
}

În Magento 2 fiecare acțiune are propria sa clasă care implementează metoda execute().

Crearea unui bloc

Vom crea o clasă bloc simplă cu metoda getHelloWorldTxt() care returnează șirul „Hello world”.

1. Creați un fișier Helloworld.php în folderul app/code/Weblizar/Helloworld/Block cu următorul cod:

<?php
spațiu de nume Weblizar\Helloworld\Block;

clasa Helloworld extinde \Magento\Framework\View\Element\Template
{
funcția publică getHelloWorldTxt()
{
returnează „Bună Weblizar, Aceasta este prima ta extensie hello world magento!”;
}
}

Crearea unui aspect și fișiere șablon

În Magento 2, fișierele de aspect și șabloanele sunt plasate în folderul de vizualizare din interiorul extensiei dvs. În interiorul folderului de vizualizare, putem avea trei subdosare: adminhtml, bază și frontend.
Folderul adminhtml este folosit pentru admin, folderul frontend este folosit pentru frontend și folderul de bază este folosit pentru ambele fișiere admin și frontend.

1. Mai întâi, vom crea un fișier helloworld_index_index.XML în folderul app/code/Weblizar/Helloworld/view/frontend/layout cu următorul cod:

<pagina xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=”../../../../../../../lib /intern/Magento/Framework/
View/Layout/etc/page_configuration.xsd” layout="1column”>
<corp>
<referenceContainer name="content">
<block class=”Weblizar\Helloworld\Block\Helloworld” name=”helloworld” template=”helloworld.phtml” />
</referenceContainer>
</corp>
</pagina>

Fiecare pagină are o mână de aspect, iar pentru acțiunea controlerului nostru, handle-ul de aspect este helloworld_index_index. Puteți crea un fișier de configurare a aspectului pentru fiecare mâner de aspect.

În fișierul nostru de aspect, am adăugat un bloc la containerul de conținut și am setat șablonul blocului nostru la helloworld.phtml, pe care îl vom crea în pasul următor.

2. Creați un fișier helloworld.phtml în folderul app/code/Weblizar/Helloworld/view/frontend/templates cu următorul cod:

<h1><?php echo $this->getHelloWorldTxt(); ?></h1>

$această variabilă face referire la clasa noastră de bloc și apelăm metoda getHelloWorldTxt() care returnează șirul „Hello world!”.

Si asta e. Deschideți adresa URL /helloworld/index/index în browser și ar trebui să obțineți ceva de genul acesta și

creați o extensie în ieșirea magento

Faceți clic aici pentru a descărca extensia hello world magento