Pengalaman Menggunakan Laravel

Pengalaman Menggunakan Laravel

Awal mengenal PHP saya mencoba untuk mendalami CodeIgniter dan alhamdulillah sudah beberapa project sudah saya kerjakan menggunakan Framework yang sangat terkenal pada eranya, kenapa saya katakan pada eranya setelah saya baca-baca CodeIgniter sudah tidak mengeluarkan lagi versi terbarunya kalau tidak salah terakhir yang saya tahu CodeIgniter Mengeluarkan versi 2.1.4, akhirnya dengan sangat terpaksa saya mencoba melirik ke Laravel yang dikenal sebagai Framework modern dan elegan tapi untuk lebih jelasnya saya mencoba ulas satu per satu mengenai Framework yang satu ini.  Dan baru sekitar bulan September / Oktober ini saya diajak teman-teman dari komunitas PHP Indonesia (wilayah Jogja) untuk mencoba framework baru yaitu Laravel khususnya Laravel versi terbaru yaitu versi 4.x, yang memang kebetulan ada project yang dikerjakan dengan framework tersebut.

Sebelum kita lanjut ada beberapa kata kunci yang harus diingat tentang laravel yaitu :
  • RESTFull Routing
  • Beautifull templating
  • Proven Foundation
  • Great Community
  • Refactor
  • Powered by Composer
  • Command line (artisan)

Dari seluruh fitur diatas satu yang saya acungi jempol yaitu Powered by Composer yang membuat manajemen packagenya saya akui sangat bagus dan menjadi standar de-facto package management di dunia PHP.

Selain Composer ada beberapa fitur lagi yang saya anggap keren banget 
  • IoC (Dependency Injection Management)
  • Facade
  • Package (Service Provider)

I.  IoC (Dependency Injection Management)

Syarat untuk mempelajari Framework hal yang paling penting adalah mempelajari OOP (Object Oriented Programming) dan yang menjadi Salah satu syarat dalam dunia OOP adalah :

One class one responbility yang artinya Satu class hanya dibuat untuk menghandle satu buah proses.  Jika proses itu berhubungan atau membutuhkan sesuatu dari class lainnya, maka ini yang dinamakan dengan class dependencies. Jika kita tidak cerdas dalam memanage dependency maka source code yang kita buat tidak terstruktur menurut saya namun Hal ini dihandle dengan cukup baik di framework Laravel, yaitu dengan menyediakan fitur IoC atau Inversion of Control yang digunakan memang untuk menghandle masalah class dependencies ini.

Bicara mengenai IoC berikut proses dari Ioc ?

Closure

Yang dimaksud dengan Closure adalah kita mendaftarkan object yang sekiranya akan kita pakai di dalam sebuah class lainnya misal mau kita pakai di controller.  Setelah object tersebut kita daftarkan di container, maka otomatis object tersebut bisa diakses di manapun itu di sistemnya Laravel.

Automatic

Yang dimaksud dengan automatic adalah ketika kita menggunakan fitur construct type hint, dimana kita memasukkan parameter yang tipenya adalah object dari class lain di method constructor class yang ingin kita pakai.  

Proses ini terdiri dari dua :

  1. Via container dengan cara ini Laravel akan mencoba mencari object yang di butuhkan di dalam container object mereka, jika memang ada, maka parameter object akan menggunakan object dari container tersebut.
  2. Via reflection class  Proses kedua ini dilakukan setelah melewati proses pertama.  Di proses pertama, jika Laravel tidak berhasil mencari object dari sebuah class yang dibutuhkan, Laravel akan menggunakan fitur Reflection dari php.  Class yang memiliki dependency dengan class lainnya akan dianalisis secara otomatis dengan menggunakan fitur ini, jika ternyata class yang sedang dianalisis ini memiliki dependency dengan class lainnya, dia (Laravel) akan mencari object dari seluruh object yang terdaftar via autoload composer, dan jika setelah dicari via manual di autoload composer pun tidak ada, maka akan melontarkan error.

II.  Facade

fitur Facade di Laravel menrupakan  Class yang menggunakan fitur magic method milik php yaitu __callStatic() untuk mendapatkan object yang kita butuhkan. Dalam proses sesungguhnya fitur Facade ini mempunyai beberapa tahapan
  • Mendaftarkan object kita via IoC container
  • Membuat class facade milik kita sendiri
  • Mendaftarkan class facade milik kita di app/config/app.php bagian aliases

III.  Package – Service Providers

Dengan Service provider kita bisa mendaftarkan object-object dari package composer yang kita buat, atau mungkin juga dari yang lain, baik dari package yang memang dibuat untuk Laravel ataupun package yang dibuat untuk semua framework (lintas framework).  Apa keuntungan dengan ‘mendaftarkan’ object-object tersebut ?
  • Object dari package bisa masuk ke sistem laravel (hooking), yang artinya kita pun bisa memakai fitur-fitur dari laravel di package kita
  • Core extension.  Kita bisa mengextend core-core Laravel yang ingin kita rubah atau mungkin tambahi fitur-fitur tertentu.
  • Termasuk IoC container bisa kita pakai via service provider

1 komentar : Leave Your Comments

  1. Sepertinya kenal dengan tulisan ini... dari blognya mas hiraq.

    BalasHapus

Selanjutnya

Komentar Terbaru