Apa itu framework Larafel

Apa itu framework Larafel

Laravel adalah sebuah framework PHP yang dirilis dibawah lisensi MIT, dibangun dengan konsep MVC (model view controller). Laravel adalah pengembangan website berbasis MVP yang ditulis dalam PHP yang dirancang untuk meningkatkan kualitas perangkat lunak dengan mengurangi biaya pengembangan awal dan biaya pemeliharaan, dan untuk meningkatkan pengalaman bekerja dengan aplikasi dengan menyediakan sintaks yang ekspresif, jelas dan menghemat waktu.

MVC adalah sebuah pendekatan perangkat lunak yang memisahkan aplikasi logika dari presentasi. MVC memisahkan aplikasi berdasarkan komponen- komponen aplikasi, seperti : manipulasi data, controller, dan user interface.

  1. Model, Model mewakili struktur data. Biasanya model berisi fungsi-fungsi yang membantu seseorang dalam pengelolaan basis data seperti memasukkan data ke basis data, pembaruan data dan lain-lain.
  2. View, View adalah bagian yang mengatur tampilan ke pengguna. Bisa dikatakan berupa halaman web.
  3. Controller, Controller merupakan bagian yang menjembatani model dan view.

Beberapa fitur yang terdapat di Laravel :

  • Bundles, yaitu sebuah fitur dengan sistem pengemasan modular dan tersedia beragam di aplikasi.
  • Eloquent ORM, merupakan penerapan PHP lanjutan menyediakan metode internal dari pola “active record” yang menagatasi masalah pada hubungan objek database.
  • Application Logic, merupakan bagian dari aplikasi, menggunakan controller atau bagian Route.
  • Reverse Routing, mendefinisikan relasi atau hubungan antara Link dan Route.
  • Restful controllers, memisahkan logika dalam melayani HTTP GET and POST.
  • Class Auto Loading, menyediakan loading otomatis untuk class PHP.
  • View Composer, adalah kode unit logikal yang dapat dieksekusi ketika view sedang loading.
  • IoC Container, memungkin obyek baru dihasilkan dengan pembalikan controller.
  • Migration, menyediakan sistem kontrol untuk skema database.
  • Unit Testing, banyak tes untuk mendeteksi dan mencegah regresi.
  • Automatic Pagination, menyederhanakan tugas dari penerapan halaman

7 Alasan Menggunakan Framework Laravel dibandingkan native PHP

1. Menghindari repetitive work

Membangun berbagai fitur di website itu cukup memakan waktu. Apalgi jika kita membangunnya sendiri. Itulah sebabnya, dalam industri web itu ada yang namanya NIH (Not Invented Here). Jadi, untuk beberapa fitur web, kita serahkan ke library lain yang bukan hasil bikinan kita.

Contoh sederhananya adalah fitur export excel. Fitur ini sangat sering saya temui dalam membuat website. Bisa saja saya membuat library sendiri yang merubah file teks biasa menjadi excel, tapi pasti memakan waktu. Oleh karena itu, fitur ini selalu saya percayakan ke library PHPExcel.

Laravel, bekerja di bawah level library itu. Ia bekerja meng-abstraksi fitur-fitur native PHP. Banyak sekali contohnya, dari Session, Redirect, Autentikasi, Cache, Input, Lokalisasi, Routing, Database, Queue dan sebagainya. Yang jika saya jelaskan semuanya bisa selesai satu buku.

Saya contohkan dengan Routing. Dalam mengembangkan aplikasi PHP, pasti kita sering berurusan dengan URL. Yang paling sederhana, adalah kita membuat subfolder dengan berbagai file php di dalamnya.

Teknik lain dalam routing ini adalah dengan menggunakan pattern Front Controller. Jika Anda belum paham, pattern ini memungkinkan kita membuat sebuah aplikasi PHP dengan url yang kompleks tapi hanya memiliki satu file index. Pattern ini sangat sering ditemui di berbagai CMS populer misalnya wordpress.

Untuk membangun pattern ini, ada cukup banyak hal yang harus Anda lakukan dari membuat logic front controller dan setup url writing di web server (misalnya dengan .htaccess di apache). Kalau mau coba buat sendiri, silahkan pelajari tutorial di sitepoint ini. 

Routing di Laravel akan memudahkan developer membuat aplikasi dengan pattern Front Controller. Routing Laravel telah mengabstraksi fitur URL di PHP untuk melakukan hal dasar ini. Contoh sederhananya, jika kita ingin membangun URL seperti diatas, kita cukup mengisi file routes.php dengan:

Route::get('/', ...);
Route::get('blog/{blog-title?}', ...);
Route::get('blog/berita/{id?}', ...);
Route::get('blog/kategori/{id?}', ...);
Route::get('kontak', ...);
dst...

Dengan cara ini, ada beberapa keuntungan:

  • Untuk menambah/mengubah/menghaps URL, kita cukup memodifikasi file routes.php.
  • Untuk mengetahui route apa saja yang tersedia di aplikasi, kita pun cukup membuka file routes.php.

Bahkan Laravel menyediakan fitur untuk mengetahui semua route dengan satu perintah, yaitu php artisan routes.

2. Security

Bagi saya, keamanan aplikasi merupakan nomor satu dalam mengembangkan website. Terlebih jika website tersebut menyimpan banyak data yang sangat penting.

Keamanan merupakan hal yang terus berkembang. Riset terus dilakukan. Tiap hari celah baru ditemukan. Begitupun dengan penutup celahnya.

Mengikuti perkembangan keamanan aplikasi PHP, misalnya di phpsec, exploit-db, sensiolabs security, dsb bisa cukup melelahkan dan menyita waktu. Apalagi bagi seorang single fighter developer, udah capek bikin website, tambah capek lagi ketika websitenya di hack. Sakitnya tuh, disini, disini, disini... :D

Saya sendiri ketika masih menjadi asisten di Unpad, pernah menguji aplikasi yang dibuat oleh mahasiswa dengan melakukan SQL Injection. Dan hasilnya, cukup lumayan, saya dapat login ke aplikasi mereka tanpa mengetahui username dan passwordnya.. ☺

Laravel dengan komunitasnya, hadir memastikan fondasi dari aplikasi yang kita bangun benar-benar aman dari masalah security dasar seperti ini. Dari mulai pengamanan csrf, autentikasi, sanitasi data, validasi data dsb telah dilakukan oleh framework Laravel. Semuanya itu kita dapat dengan gratis.

Sekiranya ada lubang keamanan di framework ini, tentu akan banyak developer lain yang tahu. Dan, penutup celah keamanan ini akan segera dirilis. Misalnya seperti celah keamanan ini. Untuk menutup celah ini, saya tinggal mengupdate versi laravel ke versi terbaru. Selesai.

3. Quality

Sebagaimana saya jelaskan di poin 2. Laravel akan menjadi fondasi dari aplikasi yang kita bangun. Jika kita hendak membangun rumah, tentunya fondasi yang kokoh dan kuat akan menopang rumah yang besar. Bahkan, gedung pencakar langit sekalipun bisa dibangun diatasnya.

Yap, begitulah Laravel. Dimulai dari standar code yang mengikuti PSR0 dan PSR1. Begitupun dengan syntax dari framework ini, ada ratusan test yang berjalan ketika sebuah syntax baru dimasukkan ke dalam framework ini. Jadi, kita bisa memastikan bahwa framework ini benar-benar solid dan aman. Siap menjadi fondasi dari aplikasi kita, sebesar dan sekompleks apapun.

4. Memudahkan Teamwork

Alasan ini saya tujukan bagi Anda yang membuat framework sendiri. Saya ingin menantang Anda, seberapa cepat developer yang baru mempelajari framework yang Anda buat?

Tentunya, pasti beragam. Tergantung seberapa kompleks arsitektur framework yang Anda buat dan seberapa lengkap dokumentasinya. Belum lagi Anda akan direpotkan ketika developer baru tersebut mendapatkan sebuah fitur yang tidak dijelaskan di dokumentasi. Mencari di google pun di ngga akan ketemu, sekiranya framework ini hanya Anda gunakan di internal kantor (bukan opensource).

Berbeda kasusnya dengan menggunakan Laravel. Jika ada developer baru yang masuk ke project, dia cukup mempelajari dokumentasi resmi Laravel. Ini akan sangat menghemat waktu. Bahkan, ada penulis buku yang berani menjamin Anda 

Suatu saat dia menemukan fitur yang tidak dipahami dari Laravel, dia cukup buka google dan lautan informasi akan datang menghampirinya. Ada pula forum resmi maupun tidak resmi yang siap menjawab pertanyaannya. Simple kan?

Yap, memang ada kepuasan tersendiri ketika kita membuat framework sendiri. Tapi ingat, framework yang solid itu tidak hanya dibangun dari codebase yang kompleks dan arsitektur yang berlapis-lapis. Tapi, ditambah pula dengan dokumentasi yang lengkap dan codebase yang selalu diaudit dari berbagai masalah keamanan dan performa.

Saran saya, untuk pekerjaan yang akan dikerjakan oleh banyak orang, mari kita turunkan ego kita dan gunakan framework yang banyak digunakan orang lain.

5. Interoperability

Jika Anda hendak membangun aplikasi open source, Anda harus memastikan codebase yang digunakan dipahami oleh banyak orang. Dengan begitu, akan lebih banyak orang yang akan berkontribusi di project tersebut.

Laravel dengan popularitas dan berbagai kelebihannnya menjawab masalah itu. Dapat kita temui banyak project opensource menggunakan Laravel, misalnya Flarum, sebuah aplikasi forum yang dibangun diatas Laravel dan EmberJS.

6. Hemat Biaya

Perlu saya jelaskan lagi?? Oke, ini beberapa hal yang akan mengeluarkan biaya ketika Anda menggunakan PHP native atau membuat framework sendiri:

  • Membuat dokumentasi penggunaan
  • Membuat dokumentasi API framework
  • Maintenance security
  • Maintenance bug
  • Maintenance performa
  • dll.

7. Hemat Waktu

Dengan berbagai abstraksi yang dilakukan Laravel, Anda dapat lebih fokus memikirkan logic bisnis dari aplikasi yang Anda buat.

Waktu Anda tidak perlu lagi disia-siakan dengan mengurusi hal-hal dasar di PHP. Titik.

Tentunya, dari semua alasan diatas, pilihan tetap saja jatuh ke tangan Anda. Jika aplikasi yang dikembangkan sangat simple, tentunya penggunaan Laravel bisa overkill.

 
 

Dipost Oleh Fadjar

System Analyst, Programmer dan penulis yang peduli dengan semua hal, Coding PHP, Oprek Program, Reading, Writing, Internet Browsing, Travelling.

Post Terkait

Tinggalkan Komentar