Routing di Magento

August 2, 2019 by Badwi

Routing di Magento ditentukan per-modul. Ada beberapa jenis routing, antara lain urlrewrite, standard, cms, dan default. Routing juga dibatasi oleh area (soal area akan dibahas pada tulisan berikutnya). Area yang disediakan oleh Magento secara default adalah adminhtml dan frontend.

Tulisan ini akan membahas standard routing di area frontend. Routing jenis ini bisa dibuat dengan layout xml, atau dengan aturan

<baseUrl>/[<storeCode>]/<frontName>/<controller>/<action>.

Hal pertama yang harus dibuat adalah file 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="%routerId%">
        <route id="%routeId%" frontName="%frontName%">
            <module name="%moduleName%"/>
        </route>
    </router>
</config>

%routerId% diganti standard karena ini adalah standard routing. %frontName% disesuaikan dengan <frontName> pada aturan. Nilainya biasanya sama dengan %routeId%. %moduleName% disesuaikan dengan modul yang mendefinisikannya, dengan format Vendor_NamaModul.

Kemudian buat controller sesuai aturan, yang ditaruh di folder Controller. Contohnya, url yang akan dibuat adalah /blog/show/post. Maka controller dibuat di app/code/Vendor/NamaModul/Controller/Show/Post.php. Perhatikan path blog tidak terdapat di URI file controller, karena ia adalah front name yang sudah disebut di routes.xml.

File Post.php harus meng-extend class \Magento\Framework\App\Action\Action. Maka contoh controller sebagai berikut:

<?php
namespace Vendor\NamaModul\Controller\Show;

class Post extends \Magento\Framework\App\Action\Action
{
    function execute() {
        return $result;
    }
}

Function execute() adalah function utama dari controller tersebut. $result adalah hasil return yang diharapkan, bisa berupa page, redirect, layout, raw atau JSON. Akan dibahas pada tulisan mendatang. Stay tuned!

© 2017 | Hucore theme & Hugo