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.
Catatan:
Ingat!!!!!!!!!
Nama file blog_home_index_home.xml ini memiliki prefix blog_home dari nama route disini:

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

Jalankan perintah berikut untuk reload semua hal.
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. |
./bin/magento setup:upgrade && chmod -R 777 generated/ var/
Hasilnya

Comments
Post a Comment