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.xml
arquivo deve ser colocado em app/code/StackExchange/HelloWorld/etc/frontend
não dentro app/code/StackExchange/HelloWorld/frontend
. Havia uma etc
falta. E eu esqueci duas use
clá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/code
crie sua pasta para Fornecedor e Módulo. Ou seja,app/code/MyCompany/FirstModule
Dentro da FirstModule
pasta, adicione umregistration.php
DIR);
Dentro da mesma pasta, crie uma etc
pasta, comoapp/code/MyCompany/FirstModule/etc
Na etc
pasta, crie ummodule.xml
E pronto. É isso aí. Agora você pode ativar seu módulo via SSH com o bin/magento module:enable MyCompany_FirstModule
comando
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