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\Model folder Model otomatis dibuat jika belum ada 
 
4. Membuat Controller di module siswa
buka terminal kemudian masukkan perintah 
php spark make:controller DaftarSiswa --suffix --namespace "Modules\Siswa"
Perintah ini akan membuat file DaftarSiswaController di folder Modules\Siswa\Controller
folder Controller otomatis dibuat jika belum ada
 
5. Membuat Views di module Siswa
berbeda 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 Module
Routes 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 Siswa
2. Buat file Routes.php di folder Config
4. 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/Config
6. 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/