jump to navigation

CakePHP: Dimana menyimpan business logic? Januari 19, 2008

Posted by huzz in CakePHP, Manajemen IT, Open Source, Teknologi Informasi.
trackback

Gara-gara harus me-review beberapa source code orang lain, rasanya meletakkan logika aplikasi (business logic) di dalam controller bisa dibilang kurang tepat. Jika pun logika aplikasi yang dibutuhkan sederhana (misalnya hanya untuk Create, Retrieve, Update, Delete data), maka sebaiknya script operasi itu dilakukan di Model. Bukan diĀ  controller.

Controller sejatinya hanya menerima inputan dari browser dan mendelegasikannya ke “sesuatu” yang perlu memprosesnya lalu mengambil hasil pemrosesan itu untuk selanjutnya didelegasikan lagi ke View+Helper yang bertugas menampilkan data (entah teks biasa, grafik, file pdf, etc) . Jika diperlukan dalam upaya pemrosesan inputan dari browser, controller bisa memanggil data dari Model, but without SQL please…klo ada script SQL sebaiknya disimpan di model aja. Controller “terima bersih” data2.0 yang diperlukan dalam bentuk array. Singkatnya : controller cuma jadi polisi pengatur lalu lintas data aja antara View, Model, dan “sesuatu” yang mengolah logika aplikasi.

Jadi, sesuatu yang mengolah logika aplikasi itu apa? simpanlah business logic di Component. :) keuntungannya : business logic bisa dipake lintas controller, bisa dipanggil baik lewat request web biasa atau web service dan lain2.0 yang belum bisa saya sebutkan satu persatu karena emang blum tau..hehehe….

Klo di java, cara kayak ginian dah biasa. klo di PHP, gw malah khawatir ini berlebihan/overkill. PHP kan terkenal pragmatis :) . Seperti “hadits” Rasmus Lerdorf, nabi-nya PHP :

The greatest inefficiencies come from solving problem that you’ll never have

Hey, what do u think?

Komentar»

1. reekoheek - Juni 7, 2008

jadi business logic yang biasa digunakan di java — biasanya diletakkan di EJB, Spring — harus diletakkan di Component CakePHP ya? Mungkin ga ya pake stack demikian:
CakePHP – DWR – Servlet – Spring/EJB3 – Hibernate? overkill kayaknya ya :P
Senang berkenalan dengan penulis… ingin lebih lanjut brainstorming

2. Okto Silaban - November 17, 2008

Itu dia yang bikin aku juga bingung. CakePHP sendiri sebenarnya dirancang untuk menampung model kaya gitu. Tapi kok disampel – sampel nya, baik di book.cakephp.org, maupun dari buku2 yang ditulis orang lain.., proses CRUD database dilakukan di controller.

Harus dikembalikan ke jalan yang benar nih para pemakai CakePHP yg tersesat..

Tulisan yang bagus.. :)