Skip to main content

Membuat module sederhana di Magento 2

Controller adalah salah satu hal penting dalam  membuat Module dalam Magento 2, dan juga dalam kontek PHP MVC Framework pada umumnya. Fungsionalitasnya adalah request yang diterima, memproses, dan merender halaman.

Dalam Magento 2 Controller hal ini dapat terlihat sangat berbeda dangan PHP Framework lainnya karena bisa memiliki  lebih dari satu file yang berada dalam folder Controller modul. Dalam kasus ini akan mulai terasa perbedaan mencolok dengan PHP Framework lainnya.

Saya akan meneruskan catatan ini dari post sebelumnya tentang bagaimana cara membuat Modul Kosong. Perlu lihat cara install dan setup pertama kali? cek disini.

Langkah 1: Membuat file routes.xml.

$ cd app/code/Mojambe/Blog/
$ mkdir etc/frontend
$ touch etc/frontend/routes.xml

routes.xml berlokasi di bawah blog/etc


Isi dari file 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 frontName="blog" id="blog_home">
<module name="Mojambe_Blog"/>
</route>
</router>
</config>


Langkah 2: Membuat file controller.

$ mkdir -p Controller/Home/
$ touch Controller/Home/Home.php

Home.php

<?php
namespace Mojambe\Blog\Controller\Home;

use Magento\Framework\App\Action\Context;
use Magento\Framework\View\Result\PageFactory;
use Magento\Framework\App\Action\Action;

class Home extends Action
{
    protected $_pageFactory;

    public function __construct(Context $context, PageFactory $pageFactory)
    {
        $this->_pageFactory = $pageFactory;
        return parent::__construct($context);
    }

    public function execute()
    {
        return $this->_pageFactory->create();
    }
}


Langkah 4: Buat file Layout (blog_home_index_home.xml)

blog_index_home.xml rubah jadi blog_home_index_home.xml (lihat ini)

Catatan:
blog_index_home.xml rubah jadi blog_home_index_home.xml (lihat ini)


blog_home_index_home.xml

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<referenceContainer name="content">
<block class="Mojambe\Blog\Controller\Home" name="blog_index_home" template="Mojambe_Blog::posts.phtml" />
</referenceContainer>
</page>


Ingat!!!!!!!!!

Nama file blog_home_index_home.xml  ini memiliki prefix blog_home  dari nama route disini:


Langkah 5: Buat file Block

Block/Posts.php

Posts.php

<?php
namespace Mojambe\Blog\Block;

use Magento\Framework\View\Element\Template;
use Magento\Framework\View\Element\Template\Context;

class Posts extends Template
{
public function __construct(Context $context) {
parent::__construct($context);
}

public function sayHello()
    {
        return __('Hello World');
    }
}

Langkah 6: Buat file template posts.phtml

Template: view/frontend/templates/posts.phtml

posts.phtml

<h2>hai kawan mojambe!</h2>
<p> <?php echo $block->sayHello(); ?> </p>

Langkah 7: Flush cache Magento

Cache Management


Flush Cache

Set berikut sebagai disabled.


Disable bagian ini. (bila gagal beri akses: chmod -R 777 app/etc/)

3 ini wajib disable.



Bagaimana cara flush cache Magento?  


Langkah 8: Coba di browser


Hai, ada yang salah dikit, rubah folder Controller/Home/Home.php jadi Controller/Index/Home.php
jangan lupa juga rubah ini (home jadi index):




Seuaikan juga ini.

Struktur foldernya lihat, terutama bagian controller. 

Jalankan perintah berikut untuk reload semua hal.

./bin/magento setup:upgrade && chmod -R 777 generated/ var/ 

Hasilnya

Comments

Popular posts from this blog

Numpang Kerja Remote dari Bandung Creative Hub

Semalam kemarin (09 Januari 2019) tidak sengaja kami sekeluarga lewat Bandung Digital Hub saat pulang dari Fish Wow Cheeseee  yang di Jl. Lombok. Bandung Digital Hub ini sendiri berlokasi tidak jauh dari dari tempat kami makan tersebut, yaitu berlokasi di Jl. Laswi No.7, Kacapiring, Batununggal, Kota Bandung, Jawa Barat 40271. Berhubung untuk bulan Januari 2019 ini sedang tidak masuk ke kantor maka saya putuskan untuk besoknya (hari ini 09 Januari 2019) nyoba untuk bekerja remote dari Bandung Digital Hub , apalagi istri yang kebetulan follower pak Ridwan Kamil di Instagram juga Facebook dan tampaknya pernah lihat ulasan mengenai tempat ini sehingga tampak antusias supaya saya datang ketempat ini ini dan mencoba bekerja dari gedung creative hub dan coworking yang keren ini.  Tempat Parkir Masalah utama saat kita datang ke coworking space terutama yang berlokasi di Bandung (atau mungkin kota-kota lainnya) adalah lahan parkir, kadang lahan parkir ...

Numpang Kerja Remote dari Bandung Digital Valley

Satu lagi co-working place  gratisan dan keren yang cukup populer dikota Bandung, co-working place yang juga memberikan fasilitas tempat kerja (co-working place) dan fitur-fitur menarik lainnya,  co-working place keren  ini adalah Bandung Digital Valley atau yang sering disingkat BDV . C o-working place  Bandung Digital Valley ini  merupakan bagian dari Telkom , mulai aktif digunakan dari sekitar tahun 2012 lalu .  Tempat ini biasanya menjadi tempat favorit bagi para pengiat startup, freelancer, dan mahasiswa . Gedung BDV Gedung BDV Gedung BDV Co-working space Bandung Digital Valley ini sendiri berlokasi di Menara Bandung Digital Valley, Jl. Gegerkalong Hilir No.47, Sukarasa, Sukasari, Kota Bandung, Jawa Barat, detailnya bisa dilihat di Google map berikut. Pemandangan jalan setelah pintu satpam. Free Co-working Space Membership Untuk mulai menggunakan fasilitas co-working space ini secara gratis maka yang pe...

Membuat Authentikasi Berbasis Token pada Spring Boot dengan Spring Security dan JWT

Setelah beberapa kali mencari tutorial tentang otentikasi aplikasi web Spring Boot dengan menggunakan JWT yang mudah dipahami akhirnya saya menemukan artikel berbahasa Inggris tapi sangat mudah dipahami  dan diikuti, artikel tersbut berada disini , dengan judul " Spring Boot Token based Authentication with Spring Security & JWT ". Untuk memudahkan orang-orang yang terbiasa membaca artikel dalam bahasa indonesia (termasuk saya sendiri), artikel ini saya buat dan susun ulang (artikel aslinya tidak tertulis dengan runtut dan dapat membuat pemula bingung dengan berbagai error yang muncul) supaya lebih mudah untuk diikuti dan dapat di gunakan bersama. Applikasi yang akan kita buat adalah aplikasi web yang setiap endpoint-nya hanya bisa di akses oleh role tertentu. 1. Tools Yang Diperlukan IntelliJ Idea text editor. Spring Assistant Plugin. Postman. PostgreSQL + DBeaver. Min Java 8 Spring Boot 2.1.8 (dengan Spring Security, Spring Web, Spring Data JPA). jjwt 0.9.1. Maven 3.6.1....