Laravel Dasar
Jika anda adalah seorang pemula dan ingin membuat aplikasi web menggunakan Laravel, Anda harus memahami beberapa dasar-dasar Laravel berikut:
- MVC (Model-View-Controller) architecture
- Eloquent ORM (Object-Relational Mapping)
- Route
- Blade templating engine
- Dependency injection
- Artisan command-line interface
- Middleware
- Event & Listeners
Apa itu MVC?
MVC (Model-View-Controller) adalah sebuah arsitektur desain yang digunakan untuk memisahkan kode dalam aplikasi menjadi tiga komponen utama: Model, View, dan Controller.
- Model: Model merupakan komponen yang bertanggung jawab untuk mengelola data. Dalam Laravel, model digunakan untuk mengakses dan mengelola data dalam database.
- View: View adalah komponen yang bertanggung jawab untuk menampilkan data. Dalam Laravel, view digunakan untuk menampilkan halaman web yang ditampilkan kepada pengguna.
- Controller: Controller adalah komponen yang bertanggung jawab untuk mengatur interaksi antara model dan view. Dalam Laravel, controller digunakan untuk mengatur logika aplikasi dan mengatur data yang ditampilkan dalam view.
Secara sederhana, MVC bekerja dengan cara user melakukan request (misalnya mengakses sebuah halaman web), request tersebut diterima oleh controller, controller akan mengambil data yang diperlukan dari model, kemudian data tersebut diolah dan diteruskan ke view yang akan menampilkan data tersebut kepada user.
Dalam Laravel, komponen-komponen MVC dapat dibuat dengan mudah menggunakan perintah Artisan CLI.
Apa itu Eloquent ORM?
Eloquent ORM (Object-Relational Mapping) adalah sebuah fitur yang disediakan oleh Laravel untuk mengelola database dengan menggunakan objek-objek dalam aplikasi Anda, bukan query SQL. Ini adalah salah satu dasar-dasar laravel yang sebaiknya anda pelajari.
ORM adalah sebuah teknologi yang memungkinkan Anda untuk mengakses dan mengelola data dalam database dengan cara yang sama seperti Anda bekerja dengan objek dalam bahasa pemrograman OOP (Object Oriented Programming).
Dalam ORM, setiap tabel dalam database diwakili oleh sebuah kelas (model) yang mewakili tabel tersebut. Setiap baris dalam tabel diwakili oleh sebuah objek yang dibuat dari kelas model tersebut. Jadi, ketika Anda bekerja dengan database, Anda bekerja dengan objek-objek ini, bukan dengan query SQL.
Eloquent ORM memungkinkan Anda untuk melakukan operasi CRUD (create, read, update, dan delete) pada data dalam database dengan mudah dan cepat. Sebagai contoh, Anda dapat menambahkan baris baru ke tabel “users” dengan menciptakan objek baru dari kelas “User” dan menyimpan objek tersebut:
$user = new User;
$user->name = "John Doe";
$user->email = "johndoe@example.com";
$user->save();
Atau Anda dapat mengambil semua baris dari tabel “users” dengan perintah:
$users = User::all();
Selain itu, Eloquent ORM juga dapat digunakan untuk mengelola relasi antar tabel dalam database seperti one to one, one to many, dan many to many. Anda dapat menentukan relasi antar tabel dalam model, sehingga Anda dapat dengan mudah mengambil data yang terkait dari tabel lain tanpa perlu menulis query join yang rumit.
Contoh, kita memiliki tabel “users” dan “posts”, jika Anda memiliki relasi one to many antara keduanya, Anda dapat mengambil semua post dari user tertentu dengan perintah :
$user = User::find(1);
$posts = $user->posts;
Secara umum, Eloquent ORM memudahkan Anda dalam mengelola data dalam aplikasi dengan cara yang lebih efisien dan intuitif. Ini juga membantu Anda untuk mengatur dan mengelola relasi antar tabel dalam database dengan lebih mudah. Namun perlu diingat, Anda harus memahami dasar-dasar relasi dalam database sebelum menggunakan Eloquent ORM.
Apa itu Route?
Route adalah sebuah fitur yang disediakan oleh Laravel untuk menentukan aksi yang akan dilakukan saat pengguna mengakses URL tertentu dalam aplikasi Anda. Route digunakan untuk menentukan URL mana yang akan ditangani oleh controller mana, sehingga Anda dapat menentukan logika yang akan dijalankan saat pengguna mengakses URL tertentu.
Dalam Laravel, route didefinisikan dalam file “routes/web.php” atau “routes/api.php” . Anda dapat menentukan route untuk menangani request GET, POST, PUT, DELETE, dan lain-lain.
Contoh, untuk menangani request GET pada url ‘/home’, Anda dapat menambahkan route seperti ini :
Route::get('/home', 'HomeController@index');
Ini akan mengarahkan semua request GET yang diterima di ‘/home’ ke method ‘index’ dari controller ‘HomeController’
Selain itu, route juga dapat menerima parameter, sebagai contoh jika ingin menangani request GET pada url ‘/profile/{id}’, Anda dapat menambahkan route seperti ini :
Route::get('/profile/{id}', 'ProfileController@index');
Ini akan mengarahkan semua request GET yang diterima di ‘/profile/{id}’ ke method ‘index’ dari controller ‘ProfileController’ dan parameter {id} akan diakses di dalam method tersebut.
Laravel juga menyediakan fitur-fitur seperti middleware, dan constraint yang dapat digunakan untuk mengontrol akses pada route, dan validasi pada parameter yang diterima.
Secara umum, Route adalah fitur yang sangat penting dalam pengembangan aplikasi dengan Laravel dan termasuk dasar-dasar Laravel, karena ini memungkinkan Anda untuk dengan mudah menentukan logika yang akan dijalankan saat pengguna mengakses URL tertentu dalam aplikasi Anda.
Apa Blade Templating Engine?
Blade adalah mesin template yang disediakan oleh Laravel untuk membuat tampilan dalam aplikasi Anda. Ini juga sebaiknya anda kuasai karena merupakan dasar-dasar Laravel. Blade digunakan untuk menentukan bagaimana data yang diambil dari controller akan ditampilkan kepada pengguna.
Blade memungkinkan Anda untuk menggabungkan kode PHP dan HTML dalam satu file template. Blade akan mengevaluasi kode PHP dan menampilkan hasilnya dalam HTML. Blade menyediakan seperangkat perintah yang dapat digunakan untuk mengontrol aliran data dan logika dalam template.
Pertama-tama, untuk menggunakan Blade, Anda harus mengubah ekstensi file template Anda menjadi .blade.php. Seperti misalnya, jika Anda ingin membuat template baru bernama ‘home’, maka Anda harus membuat file baru dengan nama ‘home.blade.php’ di folder ‘resources/views’
Blade menyediakan perintah-perintah yang dapat digunakan dalam template, seperti :
- @if, @elseif, @else: digunakan untuk mengontrol aliran logika dalam template. Contoh :
@if ($value == 1)
<p>Value is 1</p>
@elseif ($value == 2)
<p>Value is 2</p>
@else
<p>Value is not 1 or 2</p>
@endif
- @foreach: digunakan untuk melakukan looping pada data array. Contoh:
<ul>
@foreach ($users as $user)
<li>{{ $user->name }}</li>
@endforeach
</ul>
- @include: digunakan untuk menyertakan file template lain. Contoh:
@include('partials.header')
- @yield: digunakan untuk menyediakan area konten yang dapat diisi oleh child template. Contoh :
<!-- file layout.blade.php -->
<html>
<head>
<title>App Title</title>
</head>
<body>
@yield('content')
</body>
</html>
<!-- file home.blade.php -->
@extends('layout')
@section('content')
<p>Welcome to the home page!</p>
@endsection
di sini, perintah @extends digunakan untuk menentukan bahwa file home.blade.php menggunakan layout yang ditentukan dalam file layout.blade.php, dan perintah @section digunakan untuk mengisi bagian yang ditentukan dengan perintah @yield(‘content’) dalam layout.
Selain itu, Blade juga memungkinkan Anda untuk menentukan template yang dapat digunakan oleh beberapa halaman sekaligus dengan menggunakan perintah @extends dan @section.
Secara umum, Blade sangat membantu dalam pengembangan aplikasi dengan Laravel karena memungkinkan Anda untuk dengan mudah menentukan tampilan yang dinamis dan memisahkan logika aplikasi dari tampilan. Selain itu, Blade juga memungkinkan Anda untuk dengan mudah mengatur tampilan yang digunakan oleh beberapa halaman sekaligus dan mengelola tampilan dengan lebih efisien.
Apa itu Dependency Injection?
Dependency injection adalah sebuah desain pattern yang digunakan untuk mengelola dependensi (atau kebutuhan) dari sebuah objek. Dependency injection memungkinkan Anda untuk menyediakan dependensi kepada objek yang membutuhkannya tanpa harus mengetahui bagaimana dependensi tersebut diciptakan atau diinisialisasi.
Dalam konteks pengembangan aplikasi, dependency injection digunakan untuk menyediakan objek yang dibutuhkan oleh sebuah class tanpa harus mengetahui bagaimana objek tersebut diciptakan atau diinisialisasi. Dengan menggunakan dependency injection, Anda dapat memisahkan logika pembuatan objek dari logika yang menggunakan objek tersebut, sehingga membuat aplikasi Anda lebih mudah di maintain dan diubah.
Ada beberapa cara untuk melakukan dependency injection, diantaranya adalah :
- Constructor injection: dengan menyediakan dependensi melalui constructor class
- Property injection: dengan menyediakan dependensi melalui property class
- Method injection: dengan menyediakan dependensi melalui method class
Di Laravel, dependency injection diterapkan secara otomatis oleh sistem service container. Dengan menggunakan service container, Anda dapat dengan mudah menyediakan dependensi kepada class tanpa harus mengetahui bagaimana dependensi tersebut diciptakan atau diinisialisasi.
Dengan menggunakan dependency injection, Anda dapat membuat class yang lebih independen dan tidak tergantung pada class lain, sehingga membuat aplikasi Anda lebih mudah di test dan diubah. Selain itu, dependency injection juga memungkinkan Anda untuk mengganti dependensi yang digunakan oleh class tanpa harus mengubah kode class tersebut, sehingga membuat aplikasi Anda lebih fleksibel dan adaptable.
Apa itu Artisan command-line interface?
Artisan adalah command-line interface (CLI) yang disediakan oleh Laravel untuk membantu dalam pengembangan aplikasi. Artisan menyediakan berbagai perintah yang dapat digunakan untuk mempermudah pengembangan aplikasi seperti :
- Membuat controller, model, dan view
- Menjalankan migrasi database
- Menjalankan task scheduled
- Membuat seeder
- Membuat task command baru
Anda dapat menjalankan perintah Artisan dengan mengetik “php artisan” di command prompt atau terminal, diikuti dengan perintah yang diinginkan. Beberapa contoh perintah yang disediakan oleh Artisan antara lain :
- “php artisan make:controller” digunakan untuk membuat controller baru
- “php artisan make:model” digunakan untuk membuat model baru
- “php artisan make:view” digunakan untuk membuat view baru
- “php artisan migrate” digunakan untuk menjalankan migrasi database
- “php artisan make:seeder” digunakan untuk membuat seeder baru
- “php artisan schedule:run” digunakan untuk menjalankan task scheduled
- “php artisan make:command” digunakan untuk membuat task command baru
- “php artisan route:list” digunakan untuk melihat daftar route yang ada dalam aplikasi.
- Anda juga dapat menjalankan perintah Artisan dengan menambahkan opsi atau parameter untuk memberikan informasi tambahan kepada perintah tersebut. Beberapa contoh :
- “php artisan make:controller –resource” untuk membuat controller dengan method-method CRUD
- “php artisan make:model -m” untuk membuat model dan migrasinya sekaligus
Artisan juga menyediakan fitur-fitur seperti argument dan option yang dapat digunakan untuk memberikan informasi tambahan kepada perintah yang dijalankan. Kuasai ini untuk menguasai dasar-dasar laravel.
Apa itu Middleware?
Middleware adalah sebuah lapisan antara request yang masuk ke aplikasi dan response yang dikembalikan oleh aplikasi. Middleware dapat digunakan untuk melakukan berbagai tugas seperti:
- Autentikasi: memeriksa apakah pengguna yang mengirimkan request sudah login atau belum
- Autorisasi: memeriksa apakah pengguna yang mengirimkan request memiliki hak akses yang cukup untuk mengakses fitur tertentu
- Filter: menyaring request yang masuk untuk memastikan bahwa request memenuhi syarat tertentu
- Logging: mencatat informasi tentang request dan response
Salah satu contoh penggunaan middleware yang paling umum adalah untuk autentikasi pengguna. Middleware ini digunakan untuk memeriksa apakah pengguna yang mengirimkan request sudah login atau belum. Jika pengguna belum login, maka middleware akan mengarahkan pengguna ke halaman login.
Laravel menyediakan middleware ‘auth’ yang dapat digunakan untuk autentikasi pengguna. Anda dapat menentukan middleware ‘auth’ pada route atau group route yang memerlukan autentikasi. Contoh :
Route::middleware(['auth'])->group(function () {
Route::get('/dashboard', 'DashboardController@index');
Route::get('/profile', 'ProfileController@index');
});
ini akan menentukan bahwa route ‘/dashboard’ dan ‘/profile’ hanya dapat diakses oleh pengguna yang sudah login.
Middleware juga digunakan untuk autorisasi yang memerlukan cek hak akses dari user yang login, seperti cek role atau permission dari user yang login, middleware bisa digunakan untuk cek apakah user yang login memiliki hak akses untuk mengakses fitur tertentu.
Middleware juga dapat digunakan untuk fitur lain seperti, menyaring request, mencatat informasi, dll.
Di Laravel, middleware didefinisikan di dalam file “app/Http/Middleware”. Anda dapat menambahkan middleware baru dengan membuat class baru di dalam folder tersebut. Selain itu, Anda juga dapat menentukan middleware yang akan dijalankan pada setiap route atau group route di dalam file “app/Http/Kernel.php”.
Event & Listeners
Event dan Listener adalah fitur yang disediakan oleh Laravel untuk menangani event yang terjadi dalam aplikasi Anda. Event adalah sebuah kejadian yang terjadi dalam aplikasi, seperti saat pengguna mendaftar atau saat pesanan diterima. Listener adalah sebuah class atau function yang digunakan untuk menangani event tersebut.
Contoh penggunaan event dan listener yang paling umum adalah saat pengguna mendaftar atau melakukan registrasi. Pada saat pengguna mendaftar, event “UserRegistered” akan terjadi dan listener “SendWelcomeEmail” akan dijalankan untuk mengirimkan email pemberitahuan pendaftaran ke pengguna yang baru saja mendaftar.
class UserRegistered
{
public $user;
public function __construct($user)
{
$this->user = $user;
}
}
class SendWelcomeEmail
{
public function handle(UserRegistered $event)
{
// send welcome email to $event->user
}
}
Anda dapat menentukan listener yang akan dijalankan saat event terjadi di dalam file “EventServiceProvider”.
protected $listen = [
UserRegistered::class => [
SendWelcomeEmail::class,
],
];
fitur Event & Listener membantu dalam pengembangan aplikasi dengan Laravel karena memungkinkan Anda untuk dengan mudah menangani event yang terjadi dalam aplikasi dan membuat aplikasi Anda lebih mudah di maintain dan diubah dengan fitur-fitur seperti Event & Listeners yang disediakan.
Itu adalah beberapa dasar-dasar Laravel yang perlu Anda ketahui untuk membuat aplikasi web menggunakan Laravel. Namun dasar-dasar Laravel ini hanyalah permulaan dan Anda harus terus belajar dan mengejar pemahaman yang lebih dalam tentang framework ini untuk menjadi lebih produktif dalam pengembangan aplikasi web dengan Laravel.
Baca juga Daftar Semua Artikel