Hai, nggak kerasa udah 4 artikel yang sudah Saya tulis di seri “Standarisasi CI4”. Karena mungkin banyak dari teman-teman yang butuh rangkuman cepatnya, akan Saya kutip sesuai urutan flow pembuatan CRUD. Tapi jangan lupa untuk baca artikelnya satu-per-satu ya, karena banyak penjelasan yang cukup penting juga demi pemahaman teman-teman.
Environment#
CI_ENVIRONMENT
digunakan untuk mengatur CI apakah error handling akan ditampilkan atau tidak. Konstanta ini merepresentasikan apakah aplikasi berada di lingkungandevelopment
atauproduction
.app_baseURL
digunakan untuk mengatur URL default aplikasi.database.default.database
digunakan untuk mengatur database mana yang akan digunakan.database.default.username
digunakan untuk mengatur username yang akan digunakan untuk mengakses database.database.default.password
digunakan untuk mengatur password dari user yang akan digunakan untuk mengakses database.
Routing#
- Single-method, digunakan jika suatu modul hanya memiliki sedikit metode; alternatif jika
$routes->resource()
ataupun$routes->presenter()
dianggap mubazir.<?php // app/Config/Routes.php $routes->get('/user', 'UserController::index'); $routes->get('/user/new', 'UserController::new'); $routes->get('/user/(:num)/edit', 'UserController::edit/$1'); $routes->get('/user/(:num)', 'UserController::show/$1'); $routes->post('/user', 'UserController::create'); $routes->patch('/user/(:num)', 'UserController::update/$1'); // Gunakan Patch atau Put, sama saja. $routes->put('/user/(:num)', 'UserController::update/$1'); $routes->delete('/user/(:num)', 'UserController::delete/$1');
- Restful routing, digunakan jika suatu modul adalah bagian dari CRUD atau RESTful API.
<?php // app/Config/Routes.php $routes->resource('user', ['controller' => 'UserController']); $routes->presenter('blog', ['controller' => 'BlogController']);
- Option pada RESTful routing:
<?php // app/Config/Routes.php $routes->resource('user', [ 'controller' => 'UserController', // Nama Controller yang digunakan 'placeholder' => ':num', // Mengatur regex yang digunakan controller untuk penerimaan parameter 'websafe' => true, // Mengatur versi yang aman untuk HTTP (hanya berlaku untuk resource, bukan presenter) 'only' => ['method1', 'method2'], // Mengatur metode apa saja yang bisa dipakai 'except' => ['method3', 'method4'], // Mengatur metode apa saja yang akan dibuang ]);
Controller#
- Controller biasa.
- Penggunaan: digunakan jika modul tersebut digunakan untuk komputasi, dan bukan untuk CRUD. Bisa juga digunakan sebagai modul ekstensi dari sebuah modul CRUD.
- Command:
php spark make:controller Nama --suffix
- Bare Controller.
- Penggunaan: digunakan jika seluruh controller tidak memiliki fungsi atau helper yang di-load secara default.
- Command:
php spark make:controller Nama --suffix --bare
- Resource Controller.
- Penggunaan: digunakan bersamaan dengan
$routes->resource()
pada konfigurasi rute. Biasanya digunakan dalam pembuatan RESTful API. - Command:
php spark make:controller Nama --suffix --restful controller
- Penggunaan: digunakan bersamaan dengan
- Presenter Controller.
- Penggunaan: digunakan bersamaan dengan
$routes->presenter()
pada konfigurasi rute. Biasanya digunakan dalam pembuatan CRUD. Gunakan opsi ini jika teman-teman ingin membuat modul CRUD dengan lebih cepat. - Command:
php spark make:controller Nama --suffix --restful presenter
.
- Penggunaan: digunakan bersamaan dengan
Model#
- Buat model menggunakan command line dengan perintah
php spark make:model Nama --suffix
. Flag--suffix
akan menambahkan kata Model di akhir nama secara otomatis. - Atur penggunaan tabel yang digunakan pada suatu model dengan mengatur property
$table
. - Atur bentuk balikan dari model dengan mengatur property
$returnType
kearray
atauobject
. - Property
$allowedFields
digunakan untuk mengatur kolom-kolom apa saja yang bisa diisi. - Property
$validationRules
digunakan untuk mengatur validasi dari kolom-kolom yang ada di property$allowedFields
. - Property
$validationMessages
digunakan untuk mengatur pesan error dari validasi yang tidak memenuhi kriteria$validationRules
. - Model Callback berguna untuk memanipulasi data sebelum data tersebut diolah lebih lanjut.
- Validasi model akan berjalan saat fungsi
insert()
,update()
, atausave()
dipanggil.
Daftar Pustaka#
- Standarisasi CI4 - Routing oleh Aghits Nidallah.
- Standarisasi CI4 - Environment oleh Aghits Nidallah.
- Standarisasi CI4 - Controller oleh Aghits Nidallah.
- Standarisasi CI4 - Model Query oleh Aghits Nidallah.