Cara Membuat Ekstensi Hello World Di Magento 2

Diterbitkan: 2017-04-25

Kami akan membuat ekstensi yang sangat sederhana di Magento 2. Setelah selesai, output ekstensi akan mengatakan ” Halo Weblizar, Ini adalah Ekstensi Magento hello world pertama Anda! ” di konten blokir pada rute frontend khusus. Mari kita pelajari cara membuat ekstensi di magento 2 dengan hello world sebagai output kita.

Persyaratan :

Pada daftar, Anda memiliki versi Magento 2 terbaru yang saat ini 2.1. Diinstal di sistem lokal Anda.

Sebelum kita memulai pengembangan ekstensi Magento 2, ada dua hal yang sering dilupakan orang dan sebaiknya Anda lakukan:

1. Nonaktifkan cache Magento

Menonaktifkan cache Magento selama pengembangan akan menghemat waktu Anda karena Anda tidak perlu membersihkan cache secara manual setiap kali Anda membuat perubahan pada kode Anda.

Cara termudah untuk menonaktifkan cache adalah pergi ke Admin => System => Cache Management => pilih semua jenis cache dan nonaktifkan.

2. Masukkan Magento ke mode pengembang

Anda harus memasukkan Magento ke mode pengembang untuk memastikan bahwa Anda melihat semua kesalahan yang dilakukan Magento kepada Anda.

Untuk melakukan ini, buka terminal Anda dan pergi ke root Magento 2. Dari sana Anda harus menjalankan perintah berikut:

php bin/magento deploy:mode:set developer

Cara Membuat Ekstensi Di Magento:

Membuat file dan folder ekstensi:
Pengaturan Ekstensi
Langkah pertama adalah membuat folder ekstensi dan file yang diperlukan untuk mendaftarkan ekstensi Magento.
1. Buat folder berikut:

  • aplikasi/kode/Weblizar
  • aplikasi/kode/Weblizar/Helloworld

Folder Weblizar adalah namespace ekstensi, dan Helloworld adalah nama ekstensi .
Catatan: Jika Anda tidak memiliki folder kode di direktori aplikasi, buatlah secara manual.

2. Sekarang kita memiliki folder ekstensi, kita perlu membuat file module.XML di folder app/code/Weblizar/Helloworld/etc dengan kode berikut:

<?xml version="1.0″?>
<config xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=”urn:magento:framework:Module/etc/module.xsd”>
<nama modul=”Weblizar_Helloworld” setup_version="1.0.0″></module>
</config>

3. Untuk mendaftarkan modul, buat file Registration.php di folder app/code/Weblizar/Helloworld dengan kode berikut:

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Weblizar_Helloworld',
__DIR__
); ?>

4. Buka terminal Anda dan pergi ke root Magento 2. Jalankan dari sana perintah berikut:

pengaturan bin/magento php: tingkatkan

Jika Anda ingin memastikan bahwa ekstensi terinstal, Anda dapat pergi ke Admin => Stores => Konfigurasi => Lanjutan => Lanjutan dan periksa apakah ekstensi ada dalam daftar atau Anda dapat membuka app/etc/config.php dan periksa larik untuk kunci 'Weblizar_Helloworld', yang nilainya harus disetel ke 1.

panel admin magento saat membuat ekstensi

Membuat pengontrol

1. Pertama kita perlu mendefinisikan router. Untuk melakukannya, buat file route.XML di folder app/code/Weblizar/Helloworld/etc/frontend dengan kode berikut:

<?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=”standar”>
<route id=”helloworld” frontName=”helloworld”>
<nama modul=”Weblizar_Helloworld” />
</rute>
</router>
</config>

Di sini kita mendefinisikan router dan rute frontend kita dengan id "helloworld".

Atribut frontName akan menjadi bagian pertama dari URL kita.

Di Magento 2, URL dibuat dengan cara ini:
<frontName>/<controler_folder_name>/<controller_class_name>

Jadi dalam contoh kita, URL final akan terlihat seperti ini:

helloworld/indeks/indeks

2. Sekarang kita buat file controller Index.php di folder app/code/Weblizar/Helloworld/Controller/Index dengan kode berikut:

<?php

namespace Weblizar\Helloworld\Controller\Index;

gunakan Magento\Framework\App\Action\Context;

indeks kelas meluas \Magento\Framework\App\Action\Action
{
dilindungi $_resultPageFactory;

fungsi publik __construct(Context $context, \Magento\Framework\View\Result\PageFactory $resultPageFactory)
{
$this->_resultPageFactory = $resultPageFactory;
induk::__construct($konteks);
}

eksekusi fungsi publik()
{
$resultPage = $this->_resultPageFactory->create();
kembali $resultPage;
}
}

Di Magento 2 setiap tindakan memiliki kelasnya sendiri yang mengimplementasikan metode execute() .

Membuat blok

Kami akan membuat kelas blok sederhana dengan metode getHelloWorldTxt() yang mengembalikan string "Hello world".

1. Buat file Helloworld.php di folder app/code/Weblizar/Helloworld/Block dengan kode berikut:

<?php
namespace Weblizar\Helloworld\Block;

kelas Helloworld memperluas \Magento\Framework\View\Element\Template
{
fungsi publik getHelloWorldTxt()
{
return 'Halo Weblizar, Ini adalah Ekstensi magento hello world pertama Anda!';
}
}

Membuat file layout dan template

Di Magento 2, file tata letak dan templat ditempatkan di folder tampilan di dalam ekstensi Anda. Di dalam folder view, kita dapat memiliki tiga subfolder: adminhtml, base, dan frontend.
Folder adminhtml digunakan untuk admin, folder frontend digunakan untuk frontend dan folder dasar digunakan untuk file admin dan frontend.

1. Pertama, kita akan membuat file helloworld_index_index.XML di folder app/code/Weblizar/Helloworld/view/frontend/layout dengan kode berikut:

<halaman xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=”../../../../../../../lib /internal/Magento/Kerangka/
View/Layout/etc/page_configuration.xsd” layout=”1column”>
<tubuh>
<referenceContainer name=”konten”>
<block class=”Weblizar\Helloworld\Block\Helloworld” name=”helloworld” template=”helloworld.phtml” />
</referenceContainer>
</tubuh>
</halaman>

Setiap halaman memiliki tangan tata letak dan untuk tindakan pengontrol kami, pegangan tata letak adalah helloworld_index_index. Anda dapat membuat file konfigurasi tata letak untuk setiap pegangan tata letak.

Dalam file tata letak kami, kami telah menambahkan blok ke wadah konten dan mengatur template blok kami ke helloworld.phtml, yang akan kami buat di langkah berikutnya.

2. Buat file helloworld.phtml di folder app/code/Weblizar/Helloworld/view/frontend/templates dengan kode berikut:

<h1><?php echo $this->getHelloWorldTxt(); ?></h1>

$variabel ini mereferensikan kelas blok kita dan kita memanggil metode getHelloWorldTxt() yang mengembalikan string 'Hello world!'.

Dan itu saja. Buka URL /helloworld/index/index di browser Anda dan Anda akan mendapatkan sesuatu seperti ini dan

buat ekstensi di output magento

Klik di sini untuk mengunduh ekstensi magento hello world