Saya baru mengenal magento2.
Saya ingin membuat modul Hello World sederhana di magento 2.
Bagaimana cara membuat modul ini?
Saya baru mengenal magento2.
Saya ingin membuat modul Hello World sederhana di magento 2.
Bagaimana cara membuat modul ini?
Jawaban:
Nah ini pertanyaan yang luas tetapi saran terbaik saya adalah memeriksa sampel resmi Magento 2.
Anda dapat menemukannya di sini: https://github.com/magento/magento2-samples
Proyek ini adalah kumpulan sampel untuk menunjukkan teknologi yang diperkenalkan di Magento 2. Anda akan menemukan ekstensi paling sederhana bersama dengan sampel yang secara bertahap menambahkan fitur untuk menuntun Anda melalui eksplorasi dan pendidikan platform Magento 2.
Selain itu, Anda dapat menemukan banyak tutorial jika Anda mencari "magento 2 create module" di Google
Sebutkan modulnya StackExchange_HelloWorld
.
Anda membutuhkan file-file ini:
app/code/StackExchange/HelloWorld/registration.php
- file pendaftaran
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'StackExchange_HelloWorld',
__DIR__
);
app/code/StackExchange/HelloWorld/etc/module.xml
- file deklarasi modul
<?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
- file routing 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
- pengontrol indeks
<?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
- file tata letak
<?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
- templat untuk blok
<h2>Hello World</h2>
setelah Anda selesai, jalankan ini di konsol
setup php bin / magento: tingkatkan
Anda harus dapat melihat hasilnya di url [ROOT]/helloworld
routes.xml
file harus ditempatkan di app/code/StackExchange/HelloWorld/etc/frontend
tidak app/code/StackExchange/HelloWorld/frontend
. Ada yang etc
hilang. Dan saya lupa 2 use
klausa dalam file controller. Lihat jawaban pembaruan saya.
Saya juga baru mencoba kemarin dan berhasil membuat modul Hello World Magento 2 saya sendiri. Saya mengikuti tutorial ini untuk membuat modul Magento 2 sederhana , ada 6 langkah seperti di bawah ini
=> Langkah 1: Buat folder modul:
aplikasi / kode / Magentoexplorer / Helloworld
=> Langkah 2: Tambahkan module.xml untuk mendeklarasikan modul
<?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>
=> Langkah 3: Buat registrasi.php untuk mendaftarkan modul
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Magentoexplorer_Helloworld',
__DIR__
);
=> Langkah 4: Cara Memasang, Mengaktifkan atau Menonaktifkan / menghapus modul
cd [magento_directory]
php bin/magento setup:upgrade
=> Langkah 5: Rute modul. membuatapp/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>
=> Langkah 6: Kontroler dan aksi.
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;
}
}
Modul terbaik untuk Anda ikuti adalah modul ini: https://github.com/magento/magento2-samples/tree/master/sample-module-newpage
Ini fokus pada frontend untuk Magento 2. Anda mungkin dapat menggunakan modul ini dan mengubahnya menjadi modul Anda sendiri.
Modul paling sederhana cukup mudah:
app/code
buat folder Anda untuk Vendor dan Modul. Yaituapp/code/MyCompany/FirstModule
Di dalam FirstModule
folder tambahkan aregistration.php
DIR);
Di dalam folder yang sama, buat etc
folder, sepertiapp/code/MyCompany/FirstModule/etc
Di etc
folder buat amodule.xml
Dan voila. Itu dia. Anda sekarang dapat mengaktifkan modul Anda melalui SSH dengan bin/magento module:enable MyCompany_FirstModule
perintah.
Di bawah ini adalah tutorial untuk modul sederhana
https://www.mageplaza.com/magento-2-module-development/
Anda juga dapat mengunduh modul di bawah ini
https://github.com/tzyganu/Magento2SampleModule
Ada banyak pembuat modul yang tersedia untuk Magento 2. Berikut adalah beberapa tautan
http://cedcommerce.com/magento-2-module-creator/
https://amasty.com/magento-2-module-creator.html
Semoga bermanfaat :)
Untuk membuat modul di Magento 2, langkah-langkah berikut diperlukan:
Untuk Penggunaan PHP Storm Terbaik
Praktik Terbaik Gunakan PHP Storm
Langkah 1: Buat folder modul Hello World
Langkah 2: Buat modul
Langkah 3: Daftarkan Modul yang Dibuat
Langkah 4: Aktifkan modul
Nama modul didefinisikan sebagai "VendorName_ModuleName". Bagian pertama adalah nama vendor dan bagian terakhir adalah nama modul: Misalnya: Sathya_HelloWorld.
##### buat direktori file sebagai
Magento2/app/code/Sathya/HelloWorld
app/code/Sathya/HelloWorld/etc/module.xml
Isi akan:
<?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>
Buat file Registration.php
app/code/Sathya/HelloWorld/registration.php
Isi akan:
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Sathya_HelloWorld',
__DIR__
);
Sebelum mengaktifkan Modul, pastikan apakah Modul dibuat atau tidak. Untuk itu jalankan perintah dari direktori root Magento sebagai.
php bin/magento module:status
Ini Daftar semua Modul Dinonaktifkan
###### Sathya_HelloWorld
Untuk mengaktifkan Modul, jalankan perintah sebagai:
php bin/magento module:enable Sathya_HelloWorld
Juga ada cara lain untuk mengaktifkannya. Yang akan dijelaskan nanti.
Harap tingkatkan basis data Anda: Jalankan "setup bin / magento: upgrade" dari direktori root Magento.
Mari jalankan perintah:
php bin/magento setup:upgrade
Tolong jalankan
php bin/magento setup:static-content:deploy
Kemudian jalankan (opsional)
php bin/magento setup:static-content:deploy -f
Untuk menambahkan rute, perlu membuat file route.xml
app/code/Sathya/HelloWorld/etc/frontend/routes.xml
Konten akan menjadi:
<?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>
Direktori dan file yang perlu Anda buat adalah:
app/code/Sathya/HelloWorld/Controller/Index/Test.php
Isi akan:
<?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;
}
}
Setelah selesai, silakan jalankan perintah untuk menghapus cache
php bin/magento c:f
Periksa Modul Anda dengan memasukkan URL sekarang harus seperti:
http://< YourDomain.com >/helloworld/index/test