30 lines
1.3 KiB
Markdown
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.
|