Files
bij/docs/migration/routes.md
2026-04-21 05:59:39 +07:00

1.3 KiB

Routing CI3 vs CI4

CI3 (application/config/routes.php)

  • default_controller = site
  • 404_override = errors/page_missing
  • Pola bahasa URL: ^(\w{2})/(.*)$ → segment berikutnya
  • Pola REST modul api: api/(:any)/(:num)api/$1/id/$2 (CI Bootstrap + codeigniter-restserver)

Json controller: tidak didefinisikan eksplisit; mengikuti routing default controller/method/json/login, dll.

CI4 (app/Config/Routes.php)

Kebutuhan Rute
Beranda default GET /Home::index
Admin (foundation) GET /adminAdmin\Dashboard::index
API mobile (utama) POST /api/mobile/{method}Api\MobileJsonController::{method}
Alias kompatibilitas CI3 POST /json/{method} → handler yang sama

Strategi cutover

  1. Deploy CI4 di hostname/subpath terpisah; uji parity respons per endpoint.
  2. Alihkan aplikasi mobile ke base URL CI4; gunakan /json/* agar path relatif sama dengan CI3 (tanpa mengubah path di kode klien jika sebelumnya /index.php/json/...).
  3. Setelah stabil, opsional: standarkan ke /api/mobile/* dan hentikan CI3 untuk endpoint tersebut.

Catatan index.php

CI3 sering memakai index.php di URL; CI4 public/index.php + rewrite. Samakan konfigurasi web server (Apache/Nginx) agar baseURL di .env sesuai.