Wawasan kenapa sebaiknya kita menggunakan framework PHP pada umumnya, dan lebih khususnya framework Laravel.
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. Misalnya:
index.php /blog/index.php /blog/berita/index.php /blog/kategori/index.php /kontak.php
dst..
Tentunya, cara seperti ini tidak efektif untuk dilakukan untuk aplikasi yang besar. Karena, kita tidak akan paham struktur URL di website yang dibangun tanpa melihat isi tiap foldernya.
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. Ini salah satu contoh outputnya:
Tuh kan, Anda dapat langsung memahami URL apa saja yang tersedia di aplikasi ini.. ☺
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 paham Laravel dalam seminggu. (oke, itu saya, hahaha :D )
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.
Yang saya pahami, pekerjaan web developer itu unik. Berbeda dengan pekerjaan lain yang cenderung stabil. Menjadi web developer harus siap mempelajari berbagai hal baru. Apa, bagaimana dan kenapa-nya ketika kita membuat web bisa berubah dalam hitungan bulan, bahkan minggu.
Popularitas Laravel dalam beberapa tahun ini menunjukkan ada “sesuatu” di framework ini yang bisa kita pelajari dan manfaatkan. Sekiranya kita belum berminat untuk menggunakannya di dunia kerja, tidak ada salahnya jika kita mempelajarinya. Banyak hal yang bisa kita pelajari, dari arsitekturnya, coding style, API-nya, dll. Bisa jadi, framework ini merupakan jawaban dari do’a-do’a kita tentang berbagai keluhan ketika coding selama ini.
sumber : https://medium.com/laravel-indonesia/7-alasan-menggunakan-framework-laravel-dibandingkan-native-php-89462abd806
Tidak ada komentar:
Posting Komentar