Я новичок в magento2.
Я хочу создать простой модуль Hello World в magento 2.
Как создать этот модуль?
Я новичок в magento2.
Я хочу создать простой модуль Hello World в magento 2.
Как создать этот модуль?
Ответы:
Ну, это широкий вопрос, но мой лучший совет - проверить официальные образцы Magento 2.
Вы можете найти их здесь: https://github.com/magento/magento2-samples
Этот проект представляет собой набор примеров для демонстрации технологий, представленных в Magento 2. Вы найдете самое простое расширение вместе с примерами, которые постепенно добавляют функции, которые помогут вам в изучении и изучении платформы Magento 2.
Кроме того, вы можете найти множество учебных пособий, если будете искать «magento 2 create module» в Google
Давайте назовем модуль StackExchange_HelloWorld
.
вам понадобятся эти файлы:
app/code/StackExchange/HelloWorld/registration.php
- регистрационный файл
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'StackExchange_HelloWorld',
__DIR__
);
app/code/StackExchange/HelloWorld/etc/module.xml
- файл декларации модуля
<?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="StackExchange_HelloWorld" setup_version="2.0.0" />
</config>
app/code/StackExchange/HelloWorld/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="helloworld" frontName="helloworld">
<module name="StackExchange_HelloWorld" />
</route>
</router>
</config>
app/code/StackExchange/HelloWorld/Controller/Index/Index.php
- контроллер индекса
<?php
namespace StackExchange\HelloWorld\Controller\Index;
use Magento\Framework\App\Action\Context;
use Magento\Framework\View\Result\PageFactory;
class Index extends \Magento\Framework\App\Action\Action
{
protected $resultPageFactory;
public function __construct(
Context $context,
PageFactory $resultPageFactory
)
{
parent::__construct($context);
$this->resultPageFactory = $resultPageFactory;
}
public function execute()
{
$resultPage = $this->resultPageFactory->create();
$resultPage->getConfig()->getTitle()->set(__('Hello World'));
return $resultPage;
}
}
app/code/StackExchange/HelloWorld/view/frontend/layout/helloworld_index_index.xml
- файл макета
<?xml version="1.0"?>
<page layout="2columns-left" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="content">
<block class="Magento\Framework\View\Element\Template" template="StackExchange_HelloWorld::index.phtml" />
</referenceContainer>
</body>
</page>
app/code/StackExchange/HelloWorld/view/frontend/templates/index.phtml
- шаблон для блока
<h2>Hello World</h2>
после того, как вы закончите, запустите это в консоли
Настройка php bin / magento: обновление
Вы должны быть в состоянии увидеть результат в URL [ROOT]/helloworld
routes.xml
Файл должен быть помещен в app/code/StackExchange/HelloWorld/etc/frontend
не app/code/StackExchange/HelloWorld/frontend
. Там etc
пропал без вести. И я забыл 2 use
пункта в файле контроллера. Смотрите мой ответ на обновление.
Я также только что попробовал вчера, и мне удалось создать свой собственный модуль hello world magento 2. Я следовал этому уроку, чтобы создать простой модуль Magento 2 , там 6 шагов, как показано ниже
=> Шаг 1: Создайте папку модуля:
Приложение / код / Magentoexplorer / Helloworld
=> Шаг 2: Добавьте module.xml, чтобы объявить модуль
<?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="Magentoexplorer_Helloworld" setup_version="1.0.0" />
</config>
=> Шаг 3: Создайте registration.php для регистрации модуля
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Magentoexplorer_Helloworld',
__DIR__
);
=> Шаг 4: Как установить, включить или отключить / удалить модуль
cd [magento_directory]
php bin/magento setup:upgrade
=> Шаг 5: Маршрут модуля. Создайтеapp/code/Magentoexplorer/Helloworld/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="magentoexplorer" frontName="helloworld">
<module name="Magentoexplorer_Helloworld" />
</route>
</router>
</config>
=> Шаг 6: Контроллер и действие.
Приложение / код / Magentoexplorer / Helloworld / Index / index.php
<?php
namespace Magentoexplorer\Helloworld\Controller\Index;
class Display extends \Magento\Framework\App\Action\Action
{
public function __construct(
\Magento\Framework\App\Action\Context $context)
{
return parent::__construct($context);
}
public function execute()
{
echo 'Hello World';
exit;
}
}
Лучший модуль для вас будет следующим: https://github.com/magento/magento2-samples/tree/master/sample-module-newpage
Он сфокусирован на интерфейсе для Magento 2. Вы можете использовать этот модуль и превратить его в свой собственный модуль.
Самый простой модуль достаточно прост:
app/code
создайте свою папку для Vendor и Module. Т.е.app/code/MyCompany/FirstModule
Внутри FirstModule
папки добавьтеregistration.php
DIR);
Внутри той же папки создайте etc
папку, какapp/code/MyCompany/FirstModule/etc
В etc
папке создайтеmodule.xml
И вуаля. Вот и все. Теперь вы можете активировать свой модуль через SSH с помощью bin/magento module:enable MyCompany_FirstModule
команды.
Ниже учебник для простого модуля
https://www.mageplaza.com/magento-2-module-development/
Вы также можете скачать ниже модуль
https://github.com/tzyganu/Magento2SampleModule
Для Magento 2 доступно множество создателей модулей. Вот несколько ссылок
http://cedcommerce.com/magento-2-module-creator/
https://amasty.com/magento-2-module-creator.html
Надеюсь, поможет :)
Чтобы создать модуль в Magento 2, необходимо выполнить следующие шаги:
Для лучшего использования PHP Storm
Лучшая практика использования PHP Storm
Шаг 1: Создайте папку модуля Hello World
Шаг 2: Создать модуль
Шаг 3: Зарегистрируйте созданный модуль
Шаг 4: Включить модуль
Имя модуля определяется как «VendorName_ModuleName». Первая часть - это имя поставщика, а последняя часть - это имя модуля: Например: Sathya_HelloWorld.
##### создать каталог файлов как
Magento2/app/code/Sathya/HelloWorld
app/code/Sathya/HelloWorld/etc/module.xml
Содержание будет:
<?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="Sathya_HelloWorld" setup_version="1.0.0">
</module>
</config>
Создать файл Registration.php
app/code/Sathya/HelloWorld/registration.php
Содержание будет:
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Sathya_HelloWorld',
__DIR__
);
Перед включением модуля убедитесь, что модуль создан или нет. Для этого выполните команду из корневого каталога Magento как.
php bin/magento module:status
В нем перечислены все отключенные модули
###### Sathya_HelloWorld
Чтобы включить модуль, выполните команду как:
php bin/magento module:enable Sathya_HelloWorld
Также есть еще один способ включить его. Который будет объяснен позже.
Обновите базу данных: Запустите «bin / magento setup: upgrade» из корневого каталога Magento.
Давайте запустим команду:
php bin/magento setup:upgrade
Пожалуйста, запустите
php bin/magento setup:static-content:deploy
Затем запустить (необязательно)
php bin/magento setup:static-content:deploy -f
Чтобы добавить маршрут, необходимо создать файл rout.xml
app/code/Sathya/HelloWorld/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 frontName="helloworld" id="helloworld">
<module name="Sathya_HelloWorld"/>
</route>
</router>
</config>
Каталог и файл, который вам нужно создать:
app/code/Sathya/HelloWorld/Controller/Index/Test.php
Содержание будет:
<?php
namespace Sathya\HelloWorld\Controller\Index;
class Test extends \Magento\Framework\App\Action\Action
{
protected $_pageFactory;
public function __construct(
\Magento\Framework\App\Action\Context $context,
\Magento\Framework\View\Result\PageFactory $pageFactory)
{
$this->_pageFactory = $pageFactory;
return parent::__construct($context);
}
public function execute()
{
echo "Hello World";
exit;
}
}
После завершения, пожалуйста, запустите команду, чтобы очистить кеш
php bin/magento c:f
Проверьте ваш модуль, введя URL-адрес теперь должен быть следующим:
http://< YourDomain.com >/helloworld/index/test