Konsep Laravel
Laravel merupakan salah satu framework PHP populer yang dikembangkan oleh Taylor Otwell. Laravel adalah proyek open source untuk mengembangkan aplikasi berbasis web dengan arsitektur MVC (Model – View – Controller).
Beberapa fitur yang tersedia pada Laravel antara lain:
- Eloquent ORM (Object-Relational Mapping): Memudahkan interaksi dengan database menggunakan sintaks PHP yang intuitif. Anda dapat mendefinisikan model untuk setiap tabel database dan melakukan operasi CRUD (Create, Read, Update, Delete) dengan mudah. Eloquent juga mendukung relasi antar tabel (one-to-one, one-to-many, many-to-many).
- Blade Templating Engine: Sistem templating yang sederhana namun powerful, memungkinkan Anda menggunakan sintaks PHP dalam template HTML dengan cara yang bersih dan aman. Blade menyediakan direktif seperti
@if,@foreach,@extends,@yield, dan komponen untuk membuat tampilan dinamis. - Artisan Console: Command-line interface (CLI) yang disertakan dengan Laravel. Artisan menyediakan banyak perintah berguna untuk otomatisasi tugas-tugas umum seperti membuat model, migration, controller, seeder, menjalankan pengujian, membersihkan cache, dan banyak lagi.
- Routing: Sistem perutean yang fleksibel memungkinkan Anda mendefinisikan URL aplikasi dan mengaitkannya dengan controller atau closure functions. Laravel mendukung berbagai jenis rute dan middleware untuk mengontrol akses.
- Middleware: Mekanisme untuk memfilter HTTP request yang masuk ke aplikasi Anda. Middleware dapat digunakan untuk autentikasi, logging, validasi, dan tugas-tugas lain sebelum atau sesudah request ditangani.
- Form Request Validation: Memudahkan proses validasi data yang dikirim melalui form. Anda dapat membuat kelas Form Request khusus dengan aturan validasi yang jelas, dan Laravel secara otomatis menangani validasi serta menampilkan pesan kesalahan.
- Security: Laravel dibangun dengan mempertimbangkan keamanan, seperti proteksi terhadap CSRF (Cross-Site Request Forgery), XSS (Cross-Site Scripting), dan SQL injection.
- Authentication & Authorization: Menyediakan sistem otentikasi (login, registrasi, lupa kata sandi) dan otorisasi (hak akses pengguna) yang mudah diimplementasikan. Laravel Breeze dan Jetstream menyediakan scaffolding UI untuk fitur-fitur ini.
- Testing: Dukungan bawaan untuk berbagai jenis pengujian, termasuk unit testing, integration testing, dan end-to-end testing. Laravel menyediakan helper functions dan assertion methods untuk memudahkan penulisan tes.
- Queues: Sistem antrian yang memungkinkan menunda tugas-tugas berat (seperti pengiriman email) dan menjalankannya di latar belakang untuk meningkatkan responsivitas aplikasi.
- Caching: Mendukung berbagai sistem caching (Redis, Memcached, file) untuk meningkatkan performa dengan menyimpan data yang sering diakses dalam memori.
- Events & Listeners: Implementasi pola Observer untuk menjalankan kode saat event tertentu terjadi dalam aplikasi.
- Notifications: Memudahkan pengiriman notifikasi ke berbagai saluran, seperti email, SMS, database, atau layanan pihak ketiga.
- Broadcasting: Mendukung siaran event secara real-time melalui WebSockets untuk fitur seperti live chat atau notifikasi real-time.
- Task Scheduling: Menjadwalkan tugas-tugas cron menggunakan sintaks ekspresif dalam kode PHP.
- Passport (OAuth2 Server): Paket resmi untuk implementasi otentikasi OAuth2, memungkinkan aplikasi menjadi penyedia otentikasi untuk aplikasi lain.
- Sanctum (API Authentication): Paket ringan untuk otentikasi berbasis token untuk SPA, mobile apps, dan simple APIs.
- Socialite (Social Authentication): Memudahkan integrasi otentikasi dengan berbagai penyedia OAuth seperti Facebook, Twitter, dan Google.
- Filesystem: Abstraksi untuk berinteraksi dengan berbagai sistem penyimpanan file, lokal maupun cloud (Amazon S3, Google Cloud Storage).
- Mail: Memudahkan pengiriman email dengan dukungan berbagai driver seperti SMTP, Mailgun, dan Amazon SES.
- Pusher (Realtime Services): Integrasi mudah dengan layanan Pusher untuk fitur realtime.
- Localization: Mendukung aplikasi multibahasa dengan fitur pengelolaan terjemahan.
- Packages: Ekosistem paket yang kaya melalui Composer untuk menambahkan fungsionalitas tambahan dengan mudah.
Konfigurasi Laravel
Persyaratan Sistem
Laravel memiliki persyaratan minimal sistem. Berikut adalah persyaratan Laravel 12:
- PHP >= 8.2
- Ekstensi PHP: BCMath, Ctype, Fileinfo, JSON, Mbstring, OpenSSL, PDO, Tokenizer, XML
- Composer (dependency manager)
Struktur Direktori Laravel
Struktur folder utama Laravel meliputi:
app/: Berisi kode sumber aplikasi seperti Models, Controllers, dan layanan lainnya.bootstrap/: File bootstrap dan cache aplikasi.config/: File konfigurasi aplikasi.database/: Migration, seeders, dan factory database.public/: Folder yang dapat diakses publik, berisi entry point aplikasi (index.php) dan aset seperti gambar, CSS, dan JavaScript.resources/: Template view, file bahasa, dan aset mentah (sebelum kompilasi).routes/: Definisi route aplikasi.storage/: File log, cache, dan file upload.tests/: Kode pengujian aplikasi.vendor/: Dependensi composer.
Konfigurasi File .env
File .env adalah tempat konfigurasi lingkungan aplikasi, seperti pengaturan database, mail, dan lain-lain. Contoh pengaturan database:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=nama_database
DB_USERNAME=root
DB_PASSWORD=
Menjalankan Server Development
Untuk menjalankan server development bawaan Laravel, gunakan perintah:
php artisan serve
Server akan berjalan di alamat http://127.0.0.1:8000 secara default.