Magento 2 "Hello World". Перший контролер

Для того, щоб вивести "Hello World" на власній сторінці у Magento 2 виконайте наступні кроки.

 

1. Зареєструйте маршрутизатор (router) для вітрини (storefront).

Створіть файл:

app/code/<VendorName>/<ModuleName>/etc/frontend/routes.xml

помістіть у нього код:

<?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="VendorName_ModuleName" frontName="path">
            <module name="VendorName_ModuleName" />
        </route>
    </router>
</config>

У якості id маршрутизатора можна використовувати назву розробника (VendorName), з’єднану з назвою модуля (ModuleName).
frontName використовується в URL для доступу до ваших контролерів.
Обидві назви повинні бути унікальними.

 

2. Створіть контролер.

Додайте новий файл:

app/code/<VendorName>/<ModuleName>/Controller/Index/Index.php

помістіть у нього код:

<?php
namespace VendorName\ModuleName\Controller\Index;
class Index extends \Magento\Framework\App\Action\Action
{
    public function execute()
    {
        echo 'Hello World';
        exit();
    }
}

Усі контролери повинні містити публічний метод execute. Він викликається при доступі до контролера.
Від класу \Magento\Framework\App\Action\Action унаслідуються контролери вітрини (storefront).

Зверніть увагу!
За вимогами стандартів коду Magento 2 використання конструктора echo у PHP-файлах заборонене, використання конструктора exit заборонене взагалі. Ви можете застосовувати їх лише тимчасово у тестових цілях. 

У прикладах ми створюватимемо модуль Magefan_Faq для поширених запитань (FAQ - Frequently Asked Question(s)). 

Отримана структура модуля матиме такий вигляд:

├── app
│   └── code 
│        └── Magefan // назва розробника - VendorName
│            └── Faq
// назва модуля - ModuleName
│                ├──
etc
│                │   ├──
module.xml
│                │   └──frontend
│                │      └── routes.xm
│                │
│                ├──
registration.php
│                └── Controller
│                    └── Index
│                        └── Index.php

Файли модуля Magefan_Faq можна переглянути на GitHub.

 
3. Очистіть кеш Magento.

Виконайте CLI команду:

php bin/magento cache:clean
 
4. Перекомпілюйте DI (Dependency Injections)

Виконайте CLI команду:

php bin/magento setup:di:compile

 

5. Відвідайте нову сторінку.

Якщо ви хочете побачити новостворену сторінку, перейдіть за посиланням:
http://your-magento-store.com/path/index/index/

Перед вами буде текст:

Hello World


Читайте більше, щоб дізнатись як створити власний блок у Magento 2.