Modul kustom Magento: Langkah demi langkah untuk membuatnya di Magento 2

Diterbitkan: 2020-11-11

Modul kustom Magento adalah proses pengembangan yang penting bagi setiap pengembang Magento. Seperti yang Anda ketahui, pada suatu saat, pengembang mungkin perlu mengintegrasikan fungsionalitas atau modulnya sendiri. Dalam posting blog ini hari ini, kami akan memandu Anda langkah demi langkah untuk mengembangkan modul khusus di Magento 2

Pembaruan Terbaru: Kami baru saja merilis versi 2.0 dari Claue Multipurpose Magento 2 Theme, dengan banyak peningkatan kinerja dan fitur eksklusif. Lihat tema ini sekarang: Claue Magento Theme 2. 0

claue2_edited (1)

Demo Langsung

Claue – Clean, Minimal Magento 2&1 Theme adalah template yang sangat baik untuk toko eCommerce modern dan bersih dengan 40+ tata letak beranda dan banyak pilihan untuk toko, blog, portofolio, tata letak pencari toko, dan halaman berguna lainnya. Claue versi 2. 0 hadir dengan banyak fitur eksklusif termasuk:

  • Berbasis pada tema Luma.
  • Memenuhi semua standar Tema Magento
  • Peningkatan kinerja yang signifikan
  • Kompatibel dengan sebagian besar ekstensi pihak ketiga.
  • Sepenuhnya kompatibel dengan Magento 2.4.x

Versi lanjutan kedua ini benar-benar berbeda dari yang sebelumnya. Jadi, jika Anda menggunakan Claue versi 1 dan ingin memperbarui ke Claue versi 2, Anda hanya dapat membangun kembali situs web baru dan tidak memperbarui dari versi lama. Sekarang, mari kita kembali ke topik utama.

Magento adalah platform yang sangat serbaguna yang hadir dengan banyak fitur berguna dan mendukung modul gratis dan berbayar. Ini menyediakan modul yang dapat diinstal secara online serta dapat disesuaikan untuk memenuhi kebutuhan klien. Kustomisasi dicapai dengan menghasilkan modul dan kemudian dapat dimodifikasi sesuai pilihan dengan memanfaatkan kekuatan bahasa PHP. Misalnya, jika situs web kami memiliki fitur atau kumpulan fitur atau persyaratan tertentu yang tidak umum bagi pasar, sebuah modul dapat mengisi celah itu untuk kami.

Magento hadir dengan 3 jenis kumpulan kode (Kode, Inti, dan Lokal) tempat modul khusus dan inti berada. Kumpulan (folder) lokal adalah tempat semua modul khusus berada atau harus ditempatkan. Di bawah ini diberikan adalah komponen yang modul harus menyertakan.

  • Blok – Di sini Anda perlu menyediakan fitur yang digunakan untuk menampilkan data di template kami.
  • Model – Semua logika bisnis terdapat di sini.
  • Resource – Model menyertakan fungsi yang digunakan untuk interaksi database.
  • Pengontrol – Mendefinisikan tata letak halaman dan memblokir file dan dimuat saat URL diminta.
  • etc – Mencakup file konfigurasi dalam format XML yang menunjukkan kepada Magento berapa banyak file yang dimiliki modul dan bagaimana modul berinteraksi.
  • Pembantu – Termasuk fungsi yang digunakan untuk mendefinisikan logika bisnis umum (seperti pengubahan ukuran gambar, validasi). Fungsi-fungsi ini dapat digunakan di mana saja di seluruh aplikasi Magento
  • sql – Berisi skrip SQL untuk membuat, memodifikasi, atau menghapus tabel SQL.

Bagaimana cara membuat modul khusus Magento?

Buat modul sederhana di Magento 2

Membuat modul sederhana di Magento 2 itu mudah. Anda akan perlu untuk mencapai tugas-tugas berikut:

  • Buat direktori baru untuk modul
  • Buat skrip registration.php
  • Buat file informasi etc/module.xml
  • Instal modul baru

Buat direktori baru untuk modul

Ada dua opsi untuk memilih posisi direktori baru

  • app/code/{vendor}/
  • vendor/{vendor}/

Anda dapat memilih opsi pertama jika modul Anda ditujukan untuk toko online tertentu yang sedang Anda kerjakan. Tetapi jika Anda membuat modul dengan tujuan untuk digunakan di berbagai situs web, lebih cocok untuk memilih opsi kedua. Sekarang saya akan menggunakan opsi pertama untuk contoh ini.

Pertama, Anda perlu membuat direktori bernama EndPoint (nama vendor kami) dengan subdirektori di dalamnya, MyModule :

 cd {website_root} mkdir -p app/code/EndPoint/MyModule

Buat skrip registrasi.php

File registration.php memberitahu Magento untuk mendaftarkan modul baru dengan nama dan lokasi tertentu.

Buat file bernama app/code/EndPoint/MyModule/registration.php dengan kode di bawah ini

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

Buat file informasi etc/module.xml

Pada langkah ini, Anda perlu membuat file informasi modul kami, di mana kami akan menentukan nomor versi modul. Pertama, kita harus membuat direktori etc di dalam app/code/EndPoint/MyModule :

 mkdir app/code/EndPoint/MyModule/etc

kemudian buat module.xml dengan baris perintah berikut:

 <?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 = "EndPoint_MyModule" setup_version = "1.0.0" > </ module > </ config >

Instal modul baru

Sekarang kita perlu menginstal dan mengaktifkan modul baru, Jadi dari root situs web kita, kita perlu menjalankan perintah

 php bin/magento setup:upgrade

Magento akan mengeluarkan daftar nama modul dan pembaruan konfigurasi dan modul baru EndPoint_MyModule harus terdaftar dalam daftar itu

Tambahkan rute khusus ke modul kami

Sekarang kami memiliki modul yang berfungsi dan diaktifkan, tetapi belum melakukan apa pun! Apa cara sederhana untuk memeriksa apakah modul kita diaktifkan? Mari kita siapkan rute kustom, jadi jika kita menekan URL seperti https://{our_website}/mymodule/test/helloworld kita dapat mengembalikan respons kustom dari pengontrol.

Membuat rute kustom memerlukan beberapa langkah tersendiri:

  • Buat direktori baru untuk pengontrol
  • Buat file etc/routes.xml
  • Buat pengontrol
  • Tingkatkan modul baru

Buat direktori baru untuk pengontrol

Pertama, kita perlu membuat direktori baru di mana pengontrol PHP baru untuk rute kustom kita akan hidup. Jalur direktori baru harus:

app/code/EndPoint/MyModule/Controller

Anda dapat menghasilkan level direktori sebanyak yang Anda inginkan, berdasarkan jalur yang kami inginkan. Misalnya, jika Anda membuat kelas bernama Index di app/code/EndPoint/MyModule/Controller , URL yang akan dirutekan ke pengontrol ini adalah https://{our_website}/mymodule/index (direktori "Pengontrol" adalah diabaikan).

Beli Jika Anda membuat kelas bernama HelloWorld di app/code/EndPoint/MyModule/Controller/Test , URL yang dihasilkan adalah https://{our_website}/mymodule/test/helloworld .

Buat file etc/routes.xml

routes.xml akan memberi tahu Magento URL dasar apa yang akan digunakan untuk modul kita. Pertama, kita perlu membuat direktori "frontend" di mana file route.xml perlu ditempatkan:

 mkdir app/code/EndPoint/MyModule/etc/frontend

Saat Anda membutuhkan URL dasar menjadi MyModule , Anda harus membuat file XML di dalam direktori baru yang akan merutekan semua permintaan yang dibuat ke URL yang diberikan ke pengontrol modul kami:

 <?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 = "mymodule" id = "mymodule" > < module name = "EndPoint_MyModule" /> </ route > </ router > </ config >

Buat pengontrol

Jika kami ingin menanggapi permintaan untuk https://{our_website}/mymodule/test/helloworld Anda perlu membuat direktori Controller dasar dan subdirektori Test :

 mkdir -p app/code/EndPoint/MyModule/Controller/Test

Di bawah direktori ini, Anda perlu membuat pengontrol Magento khusus kami. Semua pengontrol rute harus memperluas \Magento\Framework\App\Action\Action . Kita juga perlu memiliki metode construct() publik untuk meneruskan konteks ke leluhur kita dan fungsi execute() yang akan dipanggil saat URL dipukul:

 <?php namespace EndPoint \ MyModule \ Controller \ Test ; class HelloWorld extends \ Magento \ Framework \ App \ Action \ Action { public function __construct ( \Magento\Framework\App\Action\Context $context ) { parent ::__construct( $context ); } public function execute () { echo "Hello world!" ; } }

Tingkatkan modul baru

Pada langkah ini, Anda perlu memutakhirkan pengaturan Magento kami. Tetapi karena Anda menyertakan pengontrol baru yang mendapatkan parameter dari injektor ketergantungan dalam konstruksi. Anda juga perlu mengkompilasi mesin injeksi ketergantungan (seperti pabrik, proxy, dan pencegat). Terakhir, Anda perlu mengosongkan cache sehingga konten baru akan disajikan dari URL khusus kami:

 php bin/magento setup:upgrade php bin/magento setup:di:compile php bin/magento cache:flush

Dan itu saja. Buka /helloworld/index/index URL di browser Anda dan Anda akan mendapatkan sesuatu seperti ini: Itu berarti modul kami berfungsi!

modul khusus magento

Sampai di akhir tutorial: Modul kustom Magento: Langkah demi langkah untuk membuatnya di Magento 2. Kami harap ini adalah blog yang bermanfaat untuk Anda. Jika Anda ingin memahami lebih lanjut tentang Magento, Anda dapat membaca artikel Platform Magento kami untuk detail lebih lanjut, juga ingat untuk memeriksa ekstensi Magento 2 kami dan tema Magento 2 kami untuk mendukung situs web Anda.