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

30 lines
1.3 KiB
Markdown

# 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 /admin``Admin\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.