Eu sou novo no magento2.
Quero criar um módulo simples Hello World no magento 2.
Como criar este módulo?
Eu sou novo no magento2.
Quero criar um módulo simples Hello World no magento 2.
Como criar este módulo?
Respostas:
Bem, essa é uma pergunta ampla, mas meu melhor conselho seria verificar as amostras oficiais do Magento 2.
Você pode encontrá-los aqui: https://github.com/magento/magento2-samples
Este projeto é uma coleção de amostras para demonstrar as tecnologias introduzidas no Magento 2. Você encontrará a extensão mais simples, juntamente com amostras que adicionam recursos de forma incremental para levá-lo através da exploração e educação da plataforma Magento 2.
Além disso, você pode encontrar muitos tutoriais se pesquisar "magento 2 create module" no Google
Vamos nomear o módulo StackExchange_HelloWorld.
você precisará desses arquivos:
app/code/StackExchange/HelloWorld/registration.php - o arquivo de registro
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'StackExchange_HelloWorld',
__DIR__
);
app/code/StackExchange/HelloWorld/etc/module.xml - o arquivo de declaração do módulo
<?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 - o arquivo de roteamento de front-end
<?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 - o controlador de índice
<?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 - o arquivo de layout
<?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 - o modelo para o bloco
<h2>Hello World</h2>
depois de terminar, execute isso no console
php bin / magento setup: atualização
Você poderá ver o resultado no URL [ROOT]/helloworld
routes.xmlarquivo deve ser colocado em app/code/StackExchange/HelloWorld/etc/frontendnão dentro app/code/StackExchange/HelloWorld/frontend. Havia uma etcfalta. E eu esqueci duas usecláusulas no arquivo do controlador. Veja minha resposta de atualização.
Também tentei ontem e consegui criar meu próprio módulo hello world magento 2. Eu segui este tutorial para criar um módulo Magento 2 simples , existem 6 etapas abaixo
=> Etapa 1: Crie a pasta do módulo:
app / code / Magentoexplorer / Helloworld
=> Etapa 2: adicione module.xml para liberar o módulo
<?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>
=> Etapa 3: Crie o registration.php para registrar o módulo
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Magentoexplorer_Helloworld',
__DIR__
);
=> Etapa 4: Como instalar, ativar ou desativar / remover o módulo
cd [magento_directory]
php bin/magento setup:upgrade
=> Etapa 5: Rota do módulo. crioapp/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>
=> Etapa 6: Controlador e ação.
app / code / 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;
}
}
O melhor módulo para você seguir seria este: https://github.com/magento/magento2-samples/tree/master/sample-module-newpage
É focado no frontend do Magento 2. Talvez você possa usar este módulo e transformá-lo em seu próprio módulo.
O módulo mais simples é fácil:
app/codecrie sua pasta para Fornecedor e Módulo. Ou seja,app/code/MyCompany/FirstModuleDentro da FirstModulepasta, adicione umregistration.php
DIR);
Dentro da mesma pasta, crie uma etcpasta, comoapp/code/MyCompany/FirstModule/etc
Na etcpasta, crie ummodule.xml
E pronto. É isso aí. Agora você pode ativar seu módulo via SSH com o bin/magento module:enable MyCompany_FirstModulecomando
Abaixo está o tutorial para o módulo simples
https://www.mageplaza.com/magento-2-module-development/
Você também pode fazer o download abaixo do módulo
https://github.com/tzyganu/Magento2SampleModule
Existem muitos criadores de módulos disponíveis para o Magento 2. Aqui estão alguns links
http://cedcommerce.com/magento-2-module-creator/
https://amasty.com/magento-2-module-creator.html
Espero que ajude :)
Para criar o módulo no Magento 2, são necessárias as seguintes etapas:
Para melhor uso do PHP Storm
Melhores práticas Use PHP Storm
Etapa 1: Crie a pasta do módulo Hello World
Etapa 2: criar módulo
Etapa 3: registrar o módulo criado
Etapa 4: ativar o módulo
O nome do módulo é definido como "Nome_do_Modelo_do_Vendor". A primeira parte é o nome do fornecedor e a última parte é o nome do módulo: Por exemplo: Sathya_HelloWorld.
##### crie um diretório de arquivos como
Magento2/app/code/Sathya/HelloWorld
app/code/Sathya/HelloWorld/etc/module.xml
O conteúdo seria:
<?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>
Criar arquivo Registration.php
app/code/Sathya/HelloWorld/registration.php
O conteúdo seria:
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Sathya_HelloWorld',
__DIR__
);
Antes de ativar o Módulo, verifique se o Módulo foi criado ou não. Para isso, execute o comando no diretório raiz do Magento como.
php bin/magento module:status
Lista todos os módulos desativados
###### Sathya_HelloWorld
Para habilitar o módulo, execute o comando como:
php bin/magento module:enable Sathya_HelloWorld
Também há uma outra maneira de habilitá-lo. O que será explicado mais adiante.
Atualize seu banco de dados: Execute “bin / magento setup: upgrade” no diretório raiz do Magento.
Vamos executar o comando:
php bin/magento setup:upgrade
Por favor corra
php bin/magento setup:static-content:deploy
Em seguida, execute (opcional)
php bin/magento setup:static-content:deploy -f
Para adicionar uma rota, é necessário criar o arquivo routes.xml
app/code/Sathya/HelloWorld/etc/frontend/routes.xml
O conteúdo seria:
<?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>
O diretório e o arquivo que você precisa criar são:
app/code/Sathya/HelloWorld/Controller/Index/Test.php
O conteúdo seria:
<?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;
}
}
Depois de concluído, execute o comando para limpar o cache
php bin/magento c:f
Verifique seu módulo inserindo o URL agora deve ser o seguinte:
http://< YourDomain.com >/helloworld/index/test