Laravel 5

laravel-5

Ada yang belum tahu tentang Laravel ? Bagi yang belum tahu, oklah, aku coba kasih tahu sebentar tentang apa itu Laravel.

Laravel adalah sebuah framework yang digunakan untuk web development di PHP.  Umur framework ini, terbilang masih baru (walaupun sudah mulai beranjak ke versi 5), dan mungkin seumuran dengan PhalconPHP.

Framework ini sebenarnya bisa dibilang dibangun di atas komponen-komponen yang sebagian besar milik Symfony, dan sudah dibuat menggunakan hampir semua metodologi dan tools yang cukup modern untuk saat ini, misalnya :

  1. Composer
  2. Console / Terminal
  3. MVC Design Pattern
  4. Event Management
  5. Service Provicer
  6. IoC Container
  7. Dependency Injection Pattern
  8. PHP 5.3+ features, namespace, lambda function, dll
  9. Unit test
  10. DotEnv
  11. ORM via Eloquent
  12. Template engine via Blade
  13. dll…

Saya sendiri menggunakan Laravel tidak dari awal, yaitu versi 1.0.  Saya bahkan mulai memakai framework ini sejak Laravel masuk ke versi 4.0, karena saat itu banyak sekali diskusi dan artikel yang menceritakan kecantikan framework ini.

Dan sekarang Laravel sendiri sudah memasuki versi 5.0, walaupun statusnya masih dev atau under development.

Ok, jadi sekarang apa perbedaan di versi 5 kali ini ? Jawabannya adalah beda.  Kenapa saya hanya menulis “beda” ? Karena memang perubahan yang terjadi di Laravel 5 ini tergolong sangat ekstrim (dan tolong jangan ditiru).  Hampir 90% semuanya berubah, mulai dari struktur folder semuanya berubah, penambahan layer, manajemen core,  dll.

Lalu apa yang saya suka dari fitur-fitur baru Laravel 5 ?

  1. Middleware.  Ini adalah point pertama yang sangat saya suka dari Laravel 5.  Apa itu Middleware ? Sama dengan penggunaan istilah ini di framework lain juga, yang dimaksud dengan middleware adalah sebuah mekanisme untuk memfilter HTTP request sebelum aplikasi kita benar-benar dijalankan.  Proses filtering ini sebenarnya sudah ada sejak Laravel 4+ hanya saja, bagi saya pribadi mekanisme filtering HTTP request dengan menerapkan konsep Middleware ini, source code kita akan jauh lebih rapi.
  2. Contracts.   Sesuai dengan namanya yang cukup kita Indonesia – kan saja, tetapi di Laravel ini, “contract” adalah sebuah interface yang digunakan oleh core framework Laravel.  Dengan adanya “contract” atau “interface” ini kita bisa mengimplementasikan flow milik kita sendiri yang artinya tidak melulu menggunakan lib yang berasal dari Laravel.  Contohnya adalah ketika kita ingin mengimplementasikan “Cache” milik kita sendiri, kita cukup menggunakan “interface” Cache dari Laravel dan kemudian implementasinya bisa terserah kita.
  3. Form Request.  Pertanyaan utama di sini adalah, dimanakah biasanya kita meletakkan Validator untuk memproses input dari sebuah form ? Umumnya, seorang programmer akan meletakkan Validator di Controller atau di Model, baik itu implementasi sendiri ataupun menggunakan package composer dari luar (third party).  Dengan adanya metode ini, source code Controller / Model kita akan jauh lebih rapi, karena proses validasi dari sebuah form akan terjadi di object class lain, dan otomatis dieksekusi oleh Laravel.
  4. Command Bus.  Apa pula ini ? Ok, jadi gambarannya begini.  Terkadang dalam aplikasi kita, ada sebuah proses yang nantinya akan dieksekusi oleh sebuah “action” dari sebuah Controller.  Permasalahannya adalah, jumlah proses yang harus dieksekusi ini berbeda-beda dan banyak macamnya.  Misal, dalam 1x request kita harus mengirim email, mengupdate database, filtering data, dll.  Ok, kita bisa menaruh semua logic ini dalam controller kita yang kemudian berakhir dengan FSUC (Fat Such Ugly Controller) atau bagi yang sudah tobat, kita menaruhnya di Model.  Nah, dengan adanya “Command Bus” ini, setiap proses logic tersebut akan dianggap sebuah sebuah command, dan sudah disediakan object class sendiri di Laravel 5 ini.  Apa manfaatnya ? Source code kita akan menjadi jauh lebih rapi daripada kita harus mencampur proses logic semuanya menajdi satu dan berantakan di mana-mana.

Apa manfaat lain dari keempat point di atas?

  1. Code reusable
  2. Clean code
  3. SOLID principle
  4. Easy to test! (unit test)

Karena status versi 5 ini masih under development, mungkin ini dulu saja fitur-fitur yang saya suka, dan kayaknya akan terus dipertahankan oleh si Taylor Otwell, karena saya dengar ada issue, beliau ini ada juga “membuang” beberapa hal dari Laravel, dan salah satunya adalah Whoops yang diganti dengan default error management dari Symfony.

Tapi segala hal di dunia ini pasti ada kekurangan dan kelebihannya, lalu apa kekurangan dari Laravel 5 ini ? Menurut saya pribadi, ada satu kekurangan yang saya sendiri sebenarnya memang sudah tidak sreg bahkan sejak Laravel 4, dan hal itu masih (dipertahankan) ada di Laravel 5, apa itu ? Eloquent!

~ Semoga bermanfaat :)

sumber: TulisanHiraq.net

One thought on “Laravel 5

  1. Howdy! I know this is kinda off topic but I was wondering which blog platform are you using
    for this website? I’m getting tired of WordPress because I’ve
    had problems with hackers and I’m looking at options for another
    platform. I would be awesome if you could point me in the direction of a good platform.

Leave a Reply

Your email address will not be published. Required fields are marked *