Soy nuevo en magento2.
Quiero crear un simple módulo Hello World en magento 2.
¿Cómo crear este módulo?
Soy nuevo en magento2.
Quiero crear un simple módulo Hello World en magento 2.
¿Cómo crear este módulo?
Respuestas:
Bueno, esta es una pregunta amplia, pero mi mejor consejo sería verificar las muestras oficiales de Magento 2.
Puede encontrarlos aquí: https://github.com/magento/magento2-samples
Este proyecto es una colección de muestras para demostrar tecnologías introducidas en Magento 2. Encontrará la extensión más simple junto con muestras que agregan funciones de manera incremental para guiarlo a través de una exploración y educación de la plataforma Magento 2.
Además de eso, puede encontrar muchos tutoriales si busca "magento 2 create module" en Google
Pongamos nombre al módulo StackExchange_HelloWorld
.
Necesitará estos archivos:
app/code/StackExchange/HelloWorld/registration.php
- el archivo de registro
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'StackExchange_HelloWorld',
__DIR__
);
app/code/StackExchange/HelloWorld/etc/module.xml
- el archivo de declaración del 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
- el archivo de enrutamiento frontend
<?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
- el 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
- el archivo de diseño
<?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
- la plantilla para el bloque
<h2>Hello World</h2>
después de que haya terminado, ejecute esto en la consola
Configuración de php bin / magento: actualización
Debería poder ver el resultado en la URL [ROOT]/helloworld
routes.xml
archivo debe colocarse en app/code/StackExchange/HelloWorld/etc/frontend
no en app/code/StackExchange/HelloWorld/frontend
. Había un etc
desaparecido. Y olvidé 2 use
cláusulas en el archivo del controlador. Ver mi respuesta de actualización.
También probé ayer y logré crear mi propio módulo hello world magento 2. Seguí este tutorial para crear un módulo Magento 2 simple , hay 6 pasos a continuación
=> Paso 1: Crear carpeta del módulo:
aplicación / código / Magentoexplorer / Helloworld
=> Paso 2: Agregue module.xml para borrar el 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>
=> Paso 3: Crear registro.php para registrar el módulo
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Magentoexplorer_Helloworld',
__DIR__
);
=> Paso 4: Cómo instalar, habilitar o deshabilitar / eliminar el módulo
cd [magento_directory]
php bin/magento setup:upgrade
=> Paso 5: Ruta del módulo. crearapp/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>
=> Paso 6: Controlador y acción.
aplicación / código / 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;
}
}
El mejor módulo para seguir sería este: https://github.com/magento/magento2-samples/tree/master/sample-module-newpage
Está enfocado en la interfaz de Magento 2. Quizás pueda usar este módulo y transformarlo en su propio módulo.
El módulo más simple es bastante fácil:
app/code
crear su carpeta para proveedor y módulo. Es decirapp/code/MyCompany/FirstModule
Dentro de la FirstModule
carpeta agregue unregistration.php
DIR);
Dentro de la misma carpeta, cree una etc
carpeta, comoapp/code/MyCompany/FirstModule/etc
En la etc
carpeta crea unmodule.xml
Y voilá. Eso es. Ahora puede activar su módulo a través de SSH con el bin/magento module:enable MyCompany_FirstModule
comando.
A continuación se muestra el tutorial para el módulo simple.
https://www.mageplaza.com/magento-2-module-development/
También puedes descargar el siguiente módulo
https://github.com/tzyganu/Magento2SampleModule
Hay muchos creadores de módulos disponibles para Magento 2. Aquí hay algunos enlaces
http://cedcommerce.com/magento-2-module-creator/
https://amasty.com/magento-2-module-creator.html
Espero eso ayude :)
Para crear un módulo en Magento 2, se requieren los siguientes pasos:
Para mejor uso PHP Storm
Mejores prácticas Use PHP Storm
Paso 1: crea la carpeta del módulo Hello World
Paso 2: crea el módulo
Paso 3: registre el módulo creado
Paso 4: habilite el módulo
El nombre del módulo se define como "VendorName_ModuleName". La primera parte es el nombre del proveedor y la última parte es el nombre del módulo: Por ejemplo: Sathya_HelloWorld.
##### crear directorio de archivos como
Magento2/app/code/Sathya/HelloWorld
app/code/Sathya/HelloWorld/etc/module.xml
Los contenidos serían:
<?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>
Crear archivo Registration.php
app/code/Sathya/HelloWorld/registration.php
Los contenidos serían:
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Sathya_HelloWorld',
__DIR__
);
Antes de habilitar el Módulo, asegúrese de que el Módulo esté creado o no. Para eso, ejecute el comando desde el directorio raíz de Magento como.
php bin/magento module:status
Enumera todos los módulos deshabilitados
###### Sathya_HelloWorld
Para habilitar el Módulo, ejecute el comando como:
php bin/magento module:enable Sathya_HelloWorld
También hay otra forma de habilitarlo. Lo cual se explicará más adelante.
Actualice su base de datos: ejecute "bin / magento setup: upgrade" desde el directorio raíz de Magento.
Deje ejecutar el comando:
php bin/magento setup:upgrade
Por favor, corre
php bin/magento setup:static-content:deploy
Luego ejecuta (opcional)
php bin/magento setup:static-content:deploy -f
Para agregar la ruta, es necesario crear el archivo routes.xml
app/code/Sathya/HelloWorld/etc/frontend/routes.xml
El contenido sería:
<?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>
El directorio y el archivo que necesita crear es:
app/code/Sathya/HelloWorld/Controller/Index/Test.php
Los contenidos serían:
<?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;
}
}
Una vez completado, ejecute el comando para borrar el caché
php bin/magento c:f
Verifique su Módulo ingresando URL ahora debe ser como:
http://< YourDomain.com >/helloworld/index/test