Sejak versi 2021, PHPMaker memperkenalkan sebuah server event baru yang bernama Route_Action. Fungsinya untuk membuat route baru, selain route built-in yang sudah disediakan oleh PHPMaker, seperti: add, edit, delete, list, view, search, atau update.
Untuk route built-in yang kita sebutkan di atas tadi, sudah pernah kita bahas pada artikel Mengenal SEO-Friendly URL di Aplikasi Web yang Dihasilkan oleh PHPMaker 2021.
Dengan menggunakan server event Route_Action, maka kita sebagai Web Developer dapat menambahkan aksi controller kita sendiri ke dalam controller yang terdapat di Aplikasi Web yang dihasilkan oleh PHPMaker. Untuk informasi lebih lanjut, dapat dibaca pada dokumentasi Slim Framework’s Routing.
Tidak banyak penjelasan yang terdapat di menu Help PHPMaker 2021 mengenai server event Route_Action ini. Satu-satunya cara untuk mengenal lebih dalam server event tersebut adalah dengan mencobanya secara langsung.
Untuk itu kita akan kembali menggunakan project demo2021 yang bisa kita download file-nya untuk dicoba di localhost kita masing-masing.
Sekarang mari kita buka file demo2021 tersebut dengan menggunakan PHPMaker 2021, kemudian silahkan langsung lompat lokasi ini: Server Events -> Global -> All Pages -> Route_Action, lalu masukkan kode berikut ke dalam server event tersebut:
$app->any('/my-models', function ($request, $response, $args) { $oldresponse = ""; if (!isset($_GET['searchTerm'])) { $data = ExecuteRows("SELECT ID AS id, Model AS Text FROM models ORDER BY ID LIMIT 10"); } else { $search = $_GET['searchTerm']; $search = AdjustSql($search); $data = ExecuteRows("SELECT ID AS id, Model AS Text FROM models WHERE Model LIKE '%".$search."%' LIMIT 10"); } return $response->withJson($data); });
Jika sudah, simpan project-nya, lalu pastikan untuk men-generate ulang file script seperti biasa menggunakan PHPMaker 2021.
Kita asumsikan bahwa Aplikasi Web di-generate ke dalam sub-folder demo2021 di bawah root folder web server yang kita gunakan, maka kita dapat mengakses alamat ini melalui browser:
http://localhost/demo2021/my-models
Perhatikanlah hasilnya. Seharusnya Aplikasi Web akan menampilkan output sebagai berikut:
[{"id":"1","0":"1","Text":"240SX","1":"240SX"},{"id":"2","0":"2","Text":"530iabc","1":"530iabc"},{"id":"3","0":"3","Text":"645Ci","1":"645Ci"},{"id":"4","0":"4","Text":"735i","1":"735i"},{"id":"5","0":"5","Text":"745i","1":"745i"},{"id":"6","0":"6","Text":"Allante","1":"Allante"},{"id":"7","0":"7","Text":"Avenger","1":"Avenger"},{"id":"8","0":"8","Text":"B350 Ram","1":"B350 Ram"},{"id":"9","0":"9","Text":"C230 Kompressor Sport Coupe","1":"C230 Kompressor Sport Coupe"},{"id":"10","0":"10","Text":"C240","1":"C240"}]
Itu artinya kode yang kita masukkan ke dalam server event Route_Action tadi berfungsi sebagaimana mestinya. Kode tersebut akan menampilkan semua record yang berada di table models dalam format JSON (JavaScript Object Notation).
Kemudian, cobalah ubah URL di browser tadi menjadi seperti ini:
http://localhost/demo2021/my-models?searchTerm=Avenger
Lalu perhatikan sekarang seperti apa output-nya? Seharusnya yang muncul di halaman browser adalah seperti ini:
[{"id":"7","0":"7","Text":"Avenger","1":"Avenger"}]
Dari URL yang kedua tadi, kita mencoba menambahkan parameter untuk menyaring data yang ditampilkan dengan menyertakan parameter searchTerm yaitu Avenger, maka sistem hanya menampilkan data dari table models yang bernama Avenger.
Dengan contoh yang sangat sederhana tersebut, bisa kita ambil kesimpulan bahwa server event Route_Action sangat cocok digunakan jika kita ingin mengembalikan output dalam format JSON melalui URL yang business-logic dan route-nya bisa kita tentukan sendiri sesuai kebutuhan.
Jadi, di sini tidak ada HTML tag yang kita sertakan. Hanya data dalam format JSON saja yang kita tampilkan berdasarkan fungsi global ExecuteRows yang kita panggil di dalam server event tersebut.
Contoh penerapan dari server event Route_Action ini juga bisa lewat pemakaian AJAX yang akan mengembalikan nilai tertentu berdasarkan alamat URL yang bisa kita definisikan route-nya sesuai keinginan kita.
Selain itu, kita juga bisa membuat routes sendiri menggunakan server event tersebut. Solusi selengkapnya, silahkan simak artikel Membuat URL yang SEO-Friendly Tanpa Menggunakan Nama Table di PHPMaker 2021.
Artikel ini telah diperbarui pada hari Senin, 16 Agustus 2021 sekitar pukul 11.20 WIB, dengan menambahkan link ke artikel Membuat URL yang SEO-Friendly Tanpa Menggunakan Nama Table di PHPMaker 2021.
[…] Anda di sini: Beranda / PHPMaker / Setelah Route_Action, Ada Lagi Server Event Api_Action di PHPMaker 2021 Mari Berkenalan dengan Server Event Route_Action di PHPMaker 2021 […]