Pertemuan ke 3
Laravel
Application Structure
Struktur Laravel :
• Struktur aplikasi di Laravel pada
dasarnya adalah struktur folder, sub-
folder, dan file yang disertakan dalam
sebuah proyek.
• Gambaran umum tentang struktur
aplikasi seperti yang ditunjukkan pada
gambar di sebelah.
• Snapshot yang ditampilkan di sini
mengacu pada folder root Laravel yaitu
laravel-project. Ini mencakup berbagai
sub-folder dan file. Analisis folder dan
file, beserta aspek fungsionalnya.
Folder APP – Application Folder
Ini adalah folder aplikasi dan menyertakan seluruh kode sumber proyek. Ini
berisi peristiwa, pengecualian, dan deklarasi middleware. Folder aplikasi
terdiri dari berbagai sub folder seperti yang dijelaskan di bawah ini :
1. Console
2. Events
3. Exceptions
4. Jobs
5. Listeners
6. Policies
7. Providers
1. Console
• Console menyertakan perintah artisan yang diperlukan
untuk Laravel.
• Itu termasuk direktori bernama Commands, di mana semua
perintah dideklarasikan dengan tanda tangan yang sesuai.
• File [Link] memanggil perintah yang dideklarasikan di
[Link].
• Jika kita perlu memanggil perintah tertentu di Laravel, maka
kita harus membuat perubahan yang sesuai di direktori ini.
2. Events
• Folder ini mencakup semua Event untuk proyek tersebut.
• Event digunakan untuk memicu aktivitas, meningkatkan
kesalahan, atau validasi yang diperlukan, dan memberikan
fleksibilitas yang lebih besar.
• Laravel menyimpan semua Event di bawah satu direktori.
File default yang disertakan adalah [Link] di mana
semua event dasar dideklarasikan..
3. Exceptions
• Folder ini berisi semua metode yang diperlukan untuk
menangani pengecualian. Itu juga berisi file [Link] yang
menangani semua pengecualian.
4. Jobs
• Direktori Pekerjaan memelihara aktivitas yang antri untuk
aplikasi Laravel. Kelas dasar dibagi di antara semua
Pekerjaan dan menyediakan lokasi sentral untuk
menempatkan mereka di bawah satu atap..
5. Listeners
• Listeners bergantung pada peristiwa dan menyertakan
metode yang digunakan untuk menangani peristiwa dan
pengecualian. Misalnya, event login yang dideklarasikan
menyertakan event LoginListener.
6. Policies
• Kebijakan adalah kelas PHP yang menyertakan logika
otorisasi. Laravel menyertakan fitur untuk membuat semua
logika otorisasi di dalam kelas kebijakan di dalam sub folder
ini.
7. HTTP
• Folder Http memiliki sub-folder untuk pengontrol,
middleware, dan permintaan aplikasi.
• Karena Laravel mengikuti pola desain MVC, folder ini
menyertakan model, pengontrol, dan tampilan yang
ditentukan untuk direktori tertentu.
• Sub-folder Middleware mencakup mekanisme middleware,
yang terdiri dari mekanisme filter dan komunikasi antara
respons dan permintaan.
• Sub-folder Permintaan mencakup semua permintaan
aplikasi..
8. Providers
• Folder ini mencakup semua penyedia layanan yang
diperlukan untuk mendaftarkan acara untuk server inti dan
untuk mengonfigurasi aplikasi Laravel..
Folder BOOTSTRAP
• Folder ini menyertakan semua skrip bootstrap aplikasi.
• Folder ini berisi sub-folder yaitu cache, yang mencakup
semua file yang terkait untuk menyimpan aplikasi web ke
dalam cache.
• Kita juga dapat menemukan file [Link], yang
menginisialisasi skrip yang diperlukan untuk bootstrap.
Folder CONFIG
• Folder config mencakup berbagai
konfigurasi dan parameter terkait
yang diperlukan untuk kelancaran
fungsi aplikasi Laravel.
• Berbagai file yang disertakan dalam
folder config seperti yang ditunjukkan
pada gambar di sini.
• Nama file berfungsi sesuai fungsi yang
terkait dengannya.
Folder DATABASE
Seperti namanya, direktori ini menyertakan berbagai
parameter untuk fungsionalitas basis data. Ini mencakup tiga
sub-direktori seperti yang diberikan di bawah ini
1. Seeds : Ini berisi kelas-kelas yang digunakan untuk basis
data pengujian unit.
2. Migrasi : Folder ini membantu dalam kueri untuk
memigrasikan basis data yang digunakan dalam aplikasi
web.
3. Pabrik : Folder ini digunakan untuk menghasilkan sejumlah
besar rekaman data.
Folder PUBLIC
Ini adalah folder root yang membantu menginisialisasi aplikasi
Laravel. Ini termasuk file dan folder berikut
1. .htaccess – File ini memberikan konfigurasi server
2. .javascript dan css − File-file ini dianggap sebagai aset
3. .[Link] − File ini diperlukan untuk inisialisasi aplikasi
web.
Folder RESOURCES
Direktori Resources berisi file yang
menyempurnakan aplikasi web Anda.
Sub-folder termasuk dalam direktori ini
dan tujuannya dijelaskan di bawah −
1. aset − Folder aset menyertakan file
seperti LESS dan SCSS, yang
diperlukan untuk menata aplikasi
web.
2. lang − Folder ini menyertakan
konfigurasi untuk pelokalan atau
internalisasi.
3. views − Views adalah file atau
template HTML yang berinteraksi
dengan pengguna akhir dan
memainkan peran utama dalam
arsitektur MVC.
Amati bahwa direktori sumber daya akan
diratakan alih-alih memiliki folder aset.
Representasi bergambar yang sama
ditunjukkan di samping ini −
Folder STORAGE
Ini adalah folder yang menyimpan semua log dan file penting
yang sering dibutuhkan saat proyek Laravel sedang berjalan.
Sub-folder termasuk dalam direktori ini dan tujuannya
diberikan di bawah −
1. app – Folder ini berisi file-file yang dipanggil secara
berurutan.
2. framework − Ini berisi sesi, cache, dan tampilan yang sering
dipanggil.
3. Log - Semua pengecualian dan log kesalahan dilacak di sub
folder ini.
Folder TESTS
Semua kasus uji unit disertakan dalam direktori ini. Konvensi
penamaan untuk penamaan kelas kasus uji adalah camel_case
dan mengikuti konvensi sesuai fungsi kelas.
Folder VENDOR
Laravel sepenuhnya didasarkan pada dependensi Komposer,
misalnya untuk menginstal pengaturan Laravel atau untuk
menyertakan pustaka pihak ketiga, dll. Folder Vendor
menyertakan semua dependensi komposer.
Environment Configuration
Variabel Environment adalah variabel yang menyediakan daftar layanan
web ke aplikasi web Anda. Semua variabel Environment dideklarasikan
dalam file .env yang menyertakan parameter yang diperlukan untuk
menginisialisasi konfigurasi.
Secara default, file .env menyertakan parameter berikut
APP_ENV = local
APP_DEBUG = true
APP_KEY = base64:ZPt2wmKE/X4eEhrzJU6XX4R93rCwYG8E2f8QUA7kGK8 =
APP_URL = [Link]
DB_CONNECTION = mysql
DB_HOST = [Link]
DB_PORT = 3306
DB_DATABASE = homestead
DB_USERNAME = homestead
DB_PASSWORD = secret
CACHE_DRIVER = file
SESSION_DRIVER = file
QUEUE_DRIVER = sync
REDIS_HOST = [Link]
REDIS_PASSWORD = null
REDIS_PORT = 6379
MAIL_DRIVER = smtp
MAIL_HOST = mailtrap.ioMAIL_PORT = 2525
MAIL_USERNAME = null
MAIL_PASSWORD = null
MAIL_ENCRYPTION = null
Routing
Di Laravel, semua permintaan dipetakan dengan
bantuan route. Perutean dasar merutekan permintaan
ke pengontrol terkait. Routing di Laravel mencakup
kategori berikut
1. Perutean Dasar (Basic Routing)
2. Parameter rute (Route Parameters)
3. Rute bernama (Named Route)
1. Basic Routing
Semua rute aplikasi didaftarkan dalam file
app/[Link]. File ini memberi tahu Laravel untuk
URL yang harus ditanggapi dan pengontrol terkait
akan memberinya panggilan tertentu. Rute sampel
untuk halaman selamat datang dapat dilihat seperti
yang ditunjukkan pada tangkapan layar di bawah ini
Contoh : app/http/[Link]
<?php
Route::get('/', function () {
return view('welcome');
});
1. Basic Routing (lanjutan)
2. Route Parameters
Terkadang dalam aplikasi web, mungkin perlu menangkap
parameter yang diteruskan dengan URL. Untuk ini harus
memodifikasi kode di file [Link].
Dapat menangkap parameter di file [Link] dengan dua
cara seperti dibawah ini.
1. Required Parameters
2. Optional Parameters
2. 1. Required Parameters
Parameter ini adalah parameter yang harus diambil untuk
merutekan aplikasi web.
Misalnya, penting untuk menangkap nomor identifikasi
pengguna dari URL.
Ini dapat dimungkinkan dengan menentukan parameter rute
seperti yang ditunjukkan di bawah ini
Route::get('ID/{id}',function($id) {
echo 'ID: '.$id;
});
2. 2. Optional Parameters
Terkadang pengembang dapat menghasilkan parameter
sebagai opsional dan dimungkinkan dengan dimasukkannya ?
setelah nama parameter di URL.
Penting untuk menjaga nilai default yang disebutkan sebagai
nama parameter.
Lihatlah contoh berikut yang menunjukkan cara mendefinisikan
parameter opsional
Contoh di atas memeriksa apakah nilainya cocok dengan
TutorialsPoint dan dengan demikian merutekan ke URL yang
ditentukan.
Route::get('user/{name?}', function ($name = 'TutorialsPoint') { return
$name;});
3. Named Route
Rute bernama memungkinkan cara yang nyaman untuk
membuat rute.
Rangkaian rute dapat ditentukan menggunakan metode nama
ke dalam definisi rute.
Kode berikut menunjukkan contoh untuk membuat rute
bernama dengan pengontrol
Pengontrol pengguna akan memanggil fungsi showProfile
dengan parameter sebagai profil.
Parameter menggunakan metode nama ke definisi rute.
Route::get('user/profile', 'UserController@showProfile')->name('profile');