HMVC di Code Igniter 4
1. Membuat Modul
Masuk ke root folder, kemudian buat folder Modules
Kemudian buat folder Siswa didalam folder Modules
2. Register Module HMVC
Sekarang kita daftarkan module siswa ke aplikasi
buka file Autoload.app di folder app/config, kemudian carilah $psr4, kemudian daftarkan module baru disana.
public $psr4 = [
APP_NAMESPACE => APPPATH, // For custom app namespace
'Config' => APPPATH . 'Config',
'Modules\Siswa' => ROOTPATH. 'Modules/Siswa', // module baru
];3. Membuat Model di Module Siswabuka terminal kemudian masukkan perintahphp spark make:model DaftarSiswa --suffix --namespace "Modules\Siswa"Perintah ini akan membuat file DaftarSiswaModel di folder Modules\Siswa\Modelfolder Model otomatis dibuat jika belum ada
4. Membuat Controller di module siswabuka terminal kemudian masukkan perintah php spark make:controller DaftarSiswa --suffix --namespace "Modules\Siswa"Perintah ini akan membuat file DaftarSiswaController di folder Modules\Siswa\Controllerfolder Controller otomatis dibuat jika belum ada 5. Membuat Views di module Siswaberbeda dengan controller dan model yang bisa digenerate dari terminal. Kita harus membuat sendiri folder Views. Buat folder Siswa didalam folder views 6. Membuat Routes di ModuleRoutes adalah fungsi yang mengatur pengalamatan (url). Router defaultnya berada di folder config/App.untuk memudahkan koding dan tracing, file router bisa kita buat di module. Untuk membuatnya lakukan langkah-langkah berikut:1. Buat Folder Config di Module Siswa2. Buat file Routes.php di folder Config4. masukkan kode berikut didalam file Routes.php<?php
$routes->get('/siswa/list', 'DaftarSiswaController::index', ['namespace'=>'Modules\Siswa\Controllers']); /*** Tanpa Group */
$routes->group("siswa", ["namespace" => "\Modules\Siswa\Controllers"], function ($routes) { /*** Dengan Group */
$routes->get("/", "DaftarSiswaController::index");
});
5. Buka file Routes utama yang berada di folder App/Config6. Tambahkan Kode berikut ini:<?php
use CodeIgniter\Router\RouteCollection;
/**
* @var RouteCollection $routes
*/
$routes->get('/', 'Home::index');
/*** Kode tambahan mulai disini */
$modules_path = ROOTPATH . 'Modules/';
$modules = scandir($modules_path);
foreach ($modules as $module) {
if ($module === '.' || $module === '..') {
continue;
}
if (is_dir($modules_path) . '/' . $module) {
$routes_path = $modules_path . $module . '/Config/Routes.php';
if (file_exists($routes_path)) {
require $routes_path;
} else {
continue;
}
}
}
/*** Kode tambahan mulai disini */
Sumber: https://onlinewebtutorblog.com/codeigniter-4-hmvc-programming/
