Laravel adalah salah satu framework PHP yang paling populer, yang digunakan untuk membangun aplikasi web dengan sintaks yang elegan dan modular. Framework ini mengikuti arsitektur Model-View-Controller (MVC) dan dirancang untuk menyederhanakan tugas pengembangan dengan menyediakan alat dan struktur yang terorganisir.
Sejarah Laravel: Laravel pertama kali dirilis oleh Taylor Otwell pada 2011. Awalnya, Taylor mengembangkan Laravel sebagai alternatif yang lebih elegan dan sederhana dibandingkan framework PHP yang ada saat itu, seperti CodeIgniter. Laravel terus dikembangkan dengan tujuan memudahkan developer dan menciptakan pengalaman pengembangan yang lebih menyenangkan. Berikut adalah beberapa tonggak penting dalam sejarah Laravel:
Laravel 1 (2011): Versi pertama Laravel dirilis pada Juni 2011. Versi ini sangat sederhana dan hanya mendukung pengelolaan rute, tanpa banyak fitur modern seperti ORM atau sistem template.
Laravel 3 (2012): Laravel mulai mendapatkan perhatian besar setelah versi 3 dirilis. Ini memperkenalkan fitur penting seperti sistem perintah Artisan CLI, dukungan untuk bundles (paket ekstensi), dan Eloquent ORM untuk interaksi database yang lebih mudah.
Laravel 4 (2013): Dikenal sebagai "Laravel Illuminate," versi ini melakukan banyak perubahan besar, termasuk integrasi Composer sebagai pengelola dependensi. Versi ini juga memperkenalkan Migration, dan sistem Database Seeding yang modern.
Laravel 5 (2015): Laravel terus berkembang dengan tambahan sistem Middleware, Scheduler, dan dukungan untuk Events. Laravel 5 juga memperkenalkan Elixir untuk pengelolaan aset dan Form Requests untuk validasi input.
Laravel 8 dan 9 (2020-2022): Versi modern ini memperkenalkan fitur-fitur yang lebih canggih seperti Jetstream, integrasi dengan Livewire dan Inertia.js, serta sistem migrasi yang lebih baik dan perbaikan dari segi performa dan keamanan.
Fungsi Laravel: Laravel diciptakan untuk menyederhanakan pengembangan aplikasi web yang kompleks, dan framework ini menawarkan berbagai fungsi utama:
MVC (Model-View-Controller): Laravel mendukung arsitektur MVC yang memisahkan logika aplikasi dari presentasi, yang memudahkan pengembangan, pemeliharaan, dan pengujian.
Routing: Laravel menyediakan sistem routing yang sangat intuitif, memungkinkan developer untuk menetapkan rute URL ke logika aplikasi dengan mudah.
Eloquent ORM: Laravel memiliki ORM yang kuat bernama Eloquent, yang mempermudah interaksi dengan database melalui objek dan relasi.
Blade Templating Engine: Laravel menyediakan engine template yang disebut Blade, yang memungkinkan pengembangan tampilan HTML yang dinamis dengan lebih efisien.
Artisan Command Line Interface (CLI): Artisan memudahkan berbagai tugas pengembangan seperti migrasi database, testing, dan pembuatan boilerplate kode dengan perintah yang bisa dieksekusi dari terminal.
Migration dan Schema Builder: Laravel mendukung sistem migrasi database yang memudahkan manajemen skema database tanpa perlu menulis SQL mentah. Developer bisa mengubah struktur database menggunakan PHP code.
Middleware: Laravel menyediakan lapisan middleware yang bisa digunakan untuk mengendalikan request HTTP sebelum mencapai aplikasi (misalnya untuk autentikasi, logging, atau modifikasi data).
Queue Management: Laravel memiliki sistem manajemen antrian yang canggih untuk menangani tugas-tugas yang memakan waktu lama, seperti pengiriman email atau pemrosesan file besar, sehingga bisa dilakukan secara asinkron tanpa mengganggu user.
Testing: Laravel memiliki dukungan bawaan untuk unit testing dan pengujian berbasis web, memungkinkan developer untuk menulis tes otomatis untuk aplikasi mereka.
Security: Laravel menyediakan banyak fitur keamanan, seperti hashing kata sandi, proteksi dari serangan CSRF, validasi input, dan sanitasi untuk melindungi aplikasi dari serangan umum.
Keunggulan Laravel: Fitur lengkap dan modern: Laravel dilengkapi dengan berbagai fitur canggih yang menyederhanakan pengembangan aplikasi web modern. Dokumentasi yang baik: Laravel dikenal memiliki dokumentasi yang lengkap dan mudah diikuti. Komunitas yang besar: Laravel memiliki komunitas developer yang sangat aktif, banyak tutorial, paket ekstensi, dan forum bantuan. Laravel tidak hanya mempercepat proses pengembangan aplikasi, tetapi juga membantu developer menulis kode yang lebih bersih, terstruktur, dan mudah dikelola.
Untuk menginstal Laravel, ada beberapa persyaratan sistem yang harus dipenuhi. Berikut adalah persyaratan minimum dan langkah-langkah instalasi Laravel.
Persyaratan Sistem Laravel: Laravel membutuhkan beberapa ekstensi dan software yang harus ada di sistem Anda:
PHP versi 8.1 atau lebih tinggi.
Ekstensi PHP yang dibutuhkan:
OpenSSL (PHP extension) PDO (PHP Data Objects) Mbstring (Multibyte String extension) Tokenizer XML Ctype Fileinfo BCMath (untuk perhitungan matematis bilangan besar) JSON GD atau ImageMagick (untuk manipulasi gambar jika menggunakan fitur ini) Composer: Laravel menggunakan Composer sebagai dependency manager untuk mengelola paket dan pustaka eksternal. Composer harus diinstal di sistem.
Web server: Anda dapat menggunakan salah satu dari berikut ini:
Apache (disarankan untuk menggunakan mod_rewrite diaktifkan) Nginx Atau server bawaan yang disediakan oleh Laravel saat pengembangan. Langkah Instalasi Laravel: Install Composer: Pastikan Composer sudah diinstal di sistem Anda. Jika belum, Anda bisa mengunduhnya dari getcomposer.org.
composer -V
Jika Composer sudah terpasang, Anda akan melihat versi Composer yang terinstal.
Install Laravel via Composer: Setelah Composer terpasang, Anda bisa menggunakan perintah berikut untuk menginstal Laravel:
composer create-project --prefer-dist laravel/laravel myproject
Ini akan mengunduh Laravel terbaru dan membuat proyek dengan struktur direktori Laravel.
Menjalankan Server Laravel: Setelah instalasi berhasil, Anda bisa menjalankan server Laravel untuk pengembangan lokal dengan perintah berikut:
php artisan serve
Secara default, server Laravel akan berjalan di http://localhost:8000.
Atur Koneksi Database (opsional): Untuk mengonfigurasi koneksi database, buka file .env yang ada di direktori root proyek Laravel dan sesuaikan pengaturan berikut:
env Copy code DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=nama_database DB_USERNAME=username DB_PASSWORD=password Sesuaikan dengan pengaturan database yang digunakan.
Persiapan Tambahan: Jika menggunakan Apache atau Nginx, Anda perlu mengkonfigurasi virtual host atau site block dan pastikan dokumen root diarahkan ke folder /public dari proyek Laravel.
Laravel juga mendukung Valet (untuk pengembangan di MacOS) atau Homestead (VM berbasis Vagrant) untuk lingkungan pengembangan yang lebih canggih.
Dengan semua persyaratan tersebut terpenuhi, Anda sudah siap untuk mengembangkan aplikasi menggunakan Laravel.
Struktur direktori Laravel dirancang untuk memudahkan pengembangan aplikasi web dengan mengikuti prinsip Model-View-Controller (MVC) dan memisahkan kode sesuai dengan tanggung jawabnya. Berikut adalah penjelasan tentang direktori dan fungsinya dalam Laravel:
Struktur Direktori Laravel: Setelah Anda menginstal Laravel, berikut adalah struktur direktori yang akan terbentuk:
Console/: Berisi perintah Artisan kustom yang Anda buat. Exceptions/: Mengelola exceptions yang dihasilkan oleh aplikasi. Http/: Folder ini menyimpan Controllers, Middleware, dan Requests yang berhubungan dengan HTTP. Controllers/: Tempat menyimpan controller yang menangani logika aplikasi. Middleware/: Menyimpan middleware yang digunakan untuk memfilter request HTTP sebelum mencapai controller. Requests/: Menyimpan request khusus untuk validasi atau logika lainnya sebelum diproses oleh controller. Models/: Menyimpan model yang berhubungan dengan database, biasanya berinteraksi dengan tabel di database. Providers/: Berisi service provider yang bertanggung jawab untuk menghubungkan layanan-layanan dalam aplikasi. Ringkasan: Folder app/ adalah tempat untuk logika aplikasi, seperti controller, model, middleware, dan layanan.
app.php: File ini menjalankan aplikasi Laravel dan mem-boot semua layanan. cache/: Menyimpan file yang di-cache untuk meningkatkan performa, termasuk konfigurasi cache. Ringkasan: bootstrap/ menangani proses bootstrap dan penyimpanan cache aplikasi.
Contoh file konfigurasi: app.php, database.php, mail.php, cache.php, dll. Ringkasan: Folder ini digunakan untuk konfigurasi seluruh sistem aplikasi.
factories/: Menyimpan factory model untuk pengujian. migrations/: Berisi file migrasi yang mengatur skema database. seeds/: Menyimpan file seeding yang digunakan untuk menambah data uji atau data awal ke database. Ringkasan: Folder database/ mengelola migrasi, factory, dan seed data untuk database.
index.php: File yang menjalankan aplikasi Laravel dan mengarahkan semua request ke Laravel. .htaccess: Jika menggunakan Apache, file ini digunakan untuk mengatur aturan URL rewrite. Ringkasan: Folder public/ berisi file yang diakses oleh pengguna, termasuk file frontend.
views/: Berisi file Blade template yang digunakan untuk menyajikan tampilan HTML. lang/: Berisi file terjemahan untuk lokalitas aplikasi. css/, js/: Berisi file CSS dan JavaScript mentah yang akan dikompilasi (biasanya dengan menggunakan Laravel Mix). Ringkasan: Folder resources/ adalah tempat untuk tampilan, terjemahan, dan aset yang akan dikompilasi.
web.php: Definisi rute untuk request berbasis web (menggunakan session, cookie, dll.). api.php: Definisi rute untuk API (biasanya menggunakan stateless authentication). console.php: Menangani rute perintah Artisan. channels.php: Menangani rute broadcasting untuk event Laravel. Ringkasan: Folder routes/ digunakan untuk mendefinisikan semua rute (web, API, console) dalam aplikasi.
app/: Tempat menyimpan file yang diunggah atau file dinamis lainnya. logs/: Menyimpan file log aplikasi. framework/: Menyimpan cache, session, file blade yang dikompilasi, dll. Ringkasan: Folder storage/ menyimpan file sementara seperti log, cache, dan file yang diunggah.
Feature/: Berisi pengujian yang lebih luas dan mendalam, mencakup beberapa bagian dari aplikasi. Unit/: Berisi pengujian unit untuk logika tunggal yang terisolasi. Ringkasan: Folder tests/ berisi pengujian otomatis untuk aplikasi.
Ringkasan: Folder vendor/ digunakan untuk menyimpan semua library eksternal.