Stop Mengatakan Symfony dan Laravel adalah MVC Framework

Banyak pengguna Framework PHP terutama yang baru belajar sering terjebak pada paradigma lama tentang MVC, dimana yang mereka pahami seringkali adalah MVC sebagai sebuah struktur folder layaknya yang mereka temui pada CodeIgneter versi 1.X hingga versi 3.X. Tidak hanya itu, bahkan di Wikipedia berbahasa Indonesia tentang MVC, mereka masih memasukkan Laravel bahkan Symfony sebagai contoh MVC Framework.

Tidak hanya itu, bahkan Laravel di Wikipedia Indonesia pun dianggap sebagai MVC Framework. Padahal baik Laravel terlebih Symfony bukanlah murni MVC Framework, mereka hanya Request Response Framework.

Apa itu Request Response Framework? Itu adalah sebuah framework yang fokus pada 3 hal yaitu Request, Process, Response. Yup, hanya itu saja tugasnya, tidak lebih.

Request Response Framework

 

Tipikal dari Request Response Framework adalah kamu bisa langsung membalas request dengan mengembalikan response secara langsung seperti pada gambar di atas. Dan karena Laravel memakai Symfony HTTP Kernel sebagai dasarnya. Tentu saja baik Symfony maupun Laravel punya ciri khas yang sama secara core.

Symfony sendiri sejak dari versi 2 sudah tidak lagi membawa semboyan MVC Framework, melainkan Web Application Framework. Ini dapat dipahami karena memang pada bagian Process, kita dapat menerapkan paradigma apapun termasuk MVC itu sendiri, walaupun secara prakteknya hampir tidak diterapkan.

Untuk Laravel sendiri, karena User-nya kebanyakan mengenal Laravel sebagai first framework, kebanyakan dari mereka masih memahami Laravel sebagai MVC Framework, dan itu mungkin akan terus berlanjut meskipun creator-nya sendiri bahkan tidak sepakat.

3 Aspect is MVC

Begitulah jawaban Otwell ketika ditanya tentang MVC, dan lebih jelas lagi adalah jawaban berikut:

Laravel is Not MVC

Yup, seperti kata saya di atas, karena sifat Symfony maupun Laravel adalah Request Response Framework, maka pada bagian Process kamu dapat menerapkan apapun termasuk MVC kalau kamu memaksa hehehe.

Lebih dari itu, baik Laravel terlebih Symfony dapat digunakan untuk menerapkan arsitektur yang lebih kompleks seperti Event Sourcing, DDD maupun Hexagonal, lalu kenapa kita hanya terjebak pada MVC saja?

Sebagai penutup, postingan di LinkedIn berikut mungkin dapat menambah wawasan Anda tentang Framework.

Leave a Reply