Anda di halaman 1dari 19

 

Web Developer 
Pertemuan 01 
 

Aksamedia Team 
17 Oktober 2018 
 

   

 
 

Daftar Isi 
 
Daftar Isi 1 

Life Cycle Laravel 3 


Life Cycle Secara Garis Besar 3 
Perhentian Pertama 3 
HTTP Kernel / Console Kernel 3 
Service Provider 3 
Pengiriman Request Untuk Ditangani 4 
Ilustrasi Life Cycle Laravel 4 

Routing 5 
Routing Dasar 5 
Lokasi File Route 5 
Method-Method Yang Tersedia 5 
Route Redirect 6 
Route View 6 
Route Parameters 7 
Parameter Wajib 7 
Parameter Tidak Wajib 8 
Parameter Berupa Regex 8 
Memberi Nama Route 9 
Generate URL dan Redirect 9 
Route Groups 10 
Middleware 10 
Namespaces 10 
Sub-Domain Routing 11 
Route Prefixes 11 
Route Name Prefixes 12 
Rate Limiting 12 
Method Spoofing 13 
Mengakses Route yang Aktif 14 
Melihat Daftar Route dari Aplikasi 14 

URL Generation 14 


Penggunaan Dasar 14 
Generate URL Biasa 14 
Mengakses URL yang Sedang Aktif 14 
URL Untuk Named Route 14 


 

Signed URL 14 


Validasi Signed Request 14 
URL Untuk Memanggil Aksi di Controller 14 

Kesimpulan 15 

   


 

Life Cycle Laravel 


Sebelum  mempelajari  lebih  jauh  tentang  framework  laravel,  kita  harus  mengetahui 
siklus  hidup  laravel  terlebih  dahulu.  Yang  mana  dengannya  akan  bisa  dipahami  bagaimana 
cara  kerja  framework  laravel  secara  garis  besar  dan  secara  menyeluruh.  Hal  ini  akan 
bermanfaat ketika kita terjun langsung membangun ​real project.​  

Life Cycle Secara Garis Besar 

Perhentian Pertama 

Entri  poin  pertama  dari  setiap  request  ke  dalam  aplikasi  laravel  ada  di  file 
public/index.php​.  Semua  request,  meskipun  tidak  mengarah  ke  url  index.php  tetap  akan 
di-​redirect  ke  file ​public/index.php oleh web server (Nginx / Apache). Dalam file ini isinya tidak 
terlalu  banyak,  tapi  dari  sinilah  seluruh  file  dari  framework akan dimulai, salah satunya adalah 
me-​retrieve i​ nstance app dari aplikasi laravel dari file ​bootstrap/app.php. 

HTTP Kernel / Console Kernel 

Pemberhentian  selanjutnya  adalah  Kernel.  Terdapat  dua  buah  kernel  pada  Laravel. 
Yaitu  kernel  untuk  HTTP  dan  kernel  untuk  Console.  Kernel  untuk  HTTP  ada  di  file 
app/Http/Kernel.php  dan  kernel  untuk  Console  ada  di  file  ​app/Console/Kernel.php​. Jika pada 
sistem  operasi,  kernel  adalah  bagian  yang  berperan  sangat  penting  sehingga termasuk yang 
awal-awal  dieksekusi  ketika  booting,  maka  demikian  juga  dengan  framework  laravel.  Kernel 
pada  laravel  digunakan  untuk  menyiapkan  segala  hal  yang  dibutuhkan  sebelum  ​request 
benar-benar  ditangani.  Semisal  menyiapkan  ​error  handling,  ​konfigurasi  ​logging,  ​mendeteksi 
environment​ dari aplikasi dan tugas-tugas penting lainnya. 

Service Provider 

Salah  satu  tugas  terpenting dari kernel adalah proses memuat semua service provider 


yang  ada  dalam  aplikasi  laravel.  Semua  service  provider (normalnya) terkonfigurasi dalam file 
​ ari  setiap  ​provider  akan  dipanggil,  setelah 
config/app.php​.  Tahap  pertama,  fungsi  ​register()  d
​ erhasil di-​register​, barulah method ​boot() ​dari setiap provider akan dipanggil. 
semua ​provider b

Service  provider  adalah  yang  bertanggung  jawab  untuk  memuat  dan  memulai 
komponen-komponen  terpenting  dari  framework,  seperti  database,  queue,  validation,  dan 
routing.  


 

Pengiriman Request Untuk Ditangani 

Setelah  keseluruhan  service  dari  aplikasi  berhasil  di-​load​,  maka  Request  dari  user 
akan  mulai  ditangani.  Pertama-tama  request  akan  dilewatkan  ke  dalam  sistem  routing  untuk 
​ ana  request  tersebut  akan  diproses. 
kemudian  dari  situ  akan  ditentukan  di  ​controller  m
Sebelum itu juga request akan melewati sebelum dan sesudah diproses oleh ​controller​. 

Ilustrasi Life Cycle Laravel 

https://www.toptal.com/php/choosing-between-symfony-and-laravel-frameworks 

Gambar  perbandingan  life  cycle  framework  symfony  dan  laravel,  ​kita  fokus  ke  yang 
laravel  di  mana  di  sana  terlihat  secara  garis  besar  bagaimana  request  masuk  ke  dalam 
framework  laravel  hingga  keluar.  Pembahasan  tentang  middleware  dan  controller  secara 
mendalam insyaallah akan dipelajari pada pertemuan-pertemuan yang akan datang. 


 

Routing 
Routing Dasar 
Routing  paling  dasar  pada  laravel  hanyalah  kombinasi  dari  2  parameter  yaitu  url  dan 
callback  berupa  Closure,  atau  fungsi  tanpa  nama  atau  juga  sering  disebut  sebagai 
anonymous function.​  

 
Route​::​get​(​'/hello-world'​, ​function​ () {
​return​ ​'Hello world!'​;
}); 

JIka  kita  membuka  alamat  /hello-world  maka  kita  akan  melihat  output  berupa  tulisan 
“Hello world!”. 

Selain  dengan  menggunakan  Closure  sebagai  parameter  kedua  ketika  pendefinisian 


route, kita juga bisa menggunakan string yang mendefinisikan Controller mana dan fungsi apa 
yang akan menangani route tersebut seperti contoh berikut: 

 
Route​::​get​(​'/users'​, ​'UserController@index'​); 

Lokasi File Route 

Lokasi  file  route  terdapat  pada  folder  ​routes​.  Ada  4  file  default  dalam  direktori 
tersebut.  2  dari  4  file  tersebut  (yaitu  ​routes/web.php  dan  ​routes/api.php​)  telah teregister atau 
terload  secara ​default ​oleh framework pada file ​app/Providers/RouteServiceProvider.php​. Jika 
kita  buka  file  lalu  kita  lihat  dua  fungsi  mapWebRoutes()  dan  mapApiRoutes() kita akan dapati 
bahwa dua routing web dan api di-load dengan middleware yang berbeda.  

Method-Method Yang Tersedia 

Dalam routing laravel, kita bisa mendefinisikan semua method HTTP yang tersedia: 

 
Route​::​get​(​$uri​, ​$callback​);


 

Route​::​post​(​$uri​, ​$callback​);
Route​::​put​(​$uri​, ​$callback​);
Route​::​patch​(​$uri​, ​$callback​);
Route​::​delete​(​$uri​, ​$callback​);
Route​::​options​(​$uri​, ​$callback​); 

Atau,  dalam  keadaan  tertentu  mungkin  kita  membutuhkan  lebih  dari  satu  HTTP 
method  untuk  satu  routing,  maka  kita  bisa  menggunakan  fungsi  match()  dengan  parameter 
array.​   Dan  apabila  kita ingin satu routing bisa menangani semua HTTP method maka kita bisa 
menggunakan fungsi any() sebagaimana contoh berikut. 

 
Route​::​match​([​'get'​, ​'post'​], ​'/'​, ​function​ () {
​// ini
});

Route​::​any​(​'foo'​, ​function​ () {
​//
}); 

Route Redirect 

Untuk  melakukan  redirect  kita  bisa  menggunakan  fungsi  redirect().  Fungsi  ini 
menerima  2  parameter  wajib,  dan  1  parameter  optional.  2  parameter  yang  wajib  adalah  url 
awal  dan url tujuan. Sedangkan parameter ke-3 adalah integer berupa HTTP status code yang 
ingin  direturn,  misalnya  status  code  ​302  ​yang  menunjukkan  bahwa  redirect  ini  bersifat 
sementara. 

 
Route​::​redirect​(​'/dari-sini'​, ​'/kesana'​, ​302​); 

 
Route View 

Jika  pada  suatu  routing  kita  hanya  ingin  mengembalikan  sebuah  view  maka  kita 
tinggal  menggunakan  fungsi  view().  Fungsi  view()  menerima  url  sebagai  parameter  pertama, 
dan  nama  atau  lokasi  file  view  sebagai  parameter  kedua.  Sebagai  tambahan,  kita  bisa 


 

menambahkan  data  berupa  ​array  sebagai  parameter  ketiga  di  mana  ini  nantinya  akan 
diterima oleh view sebagai variabel. 

 
Route​::​view​(​'/welcome'​, ​'welcome'​);

Route​::​view​(​'/welcome'​, ​'welcome'​, [​'name'​ => ​'Taylor'​]); 

Route Parameters 
Route bisa menerima parameter dinamis. Seperti ​username,​  id, dan sebagainya. Ada 3 
jenis  parameter  yang  tersedia  pada  framework  laravel  yaitu parameter yang wajib, parameter 
tidak wajib, dan parameter berupa regex. 

Parameter Wajib 

Parameter  wajib  adalah  parameter  yang  harus  diisi.  Jika  tidak  diisi  maka  framework 
laravel  akan  mengembalikan  response  404.  Kita  bisa  mendefinisikan  route  parameter  wajib 
seperti berikut: 

 
Route​::​get​(​'user/{id}'​, ​function​ (​$id​) {
​return​ ​"User {​$id​}"​;
}); 

Kita juga bisa mendefinisikan sebanyak mungkin parameter yang kita inginkan. 
Route​::​get​(​'user/{id}/photos/{photo}'​, ​function​ (​$user​,​ $photo​) {
​//
}); 

Nama  variabel  pada  Closure  tidak  harus  sama  seperti  pada  pendefinisian  parameter. 
Kita  bisa  menggunakan  nama  variabel  yang  berbeda, yang penting adalah urutannya (selama 
tidak ada dependency injection). 

 
Route​::​get​(​'user/{id}/photos/{photo}'​, ​function​ (​$userId​,​ $photoId​) {
​//
}); 


 

Parameter Tidak Wajib 

Kita  juga  bisa  mendefinisikan  parameter  opsional,  yang  artinya  tidak  wajib untuk diisi. 
Tetapi  kita  harus  mendefinisikan  nilai  default  dari  parameter  tersebut.  Parameter  yang  tidak 
wajib didefinisikan dengan diakhiri tanda tanya (?). 

 
Route::​get​(​'blog/posts/{page?}'​, ​function​ (​$page​ = ​null​) {
​return​ ​$page​;
});

# atau
Route​::​get​(​'blog/posts/{page?}'​, ​function​ (​$page​ = ​1​) {
​return​ ​$page​;
}); 

Parameter Berupa Regex 

Selain  mendefinisikan  parameter,  kita  juga  bisa  mengatur parameter seperti apa yang 


diterima.  Misalkan  parameter  hanya  boleh  dari  karakter  abjad,  atau hanya boleh numeric dan 
sebagainya, kita bisa mendefinisikannya dengan menggunakan regex. 

 
Route​::​get​(​'user/{name}'​, ​function​ (​$name​) {
​//
})->​where​(​'name'​, ​'[A-Za-z]+'​);

Route​::​get​(​'user/{id}'​, ​function​ (​$id​) {


​//
})->​where​(​'id'​, ​'[0-9]+'​);

Route​::​get​(​'user/{id}/{name}'​, ​function​ (​$id​,​ $name​) {


​//
})->​where​([​'id'​ => ​'[0-9]+'​, ​'name'​ => ​'[a-z]+'​]); 


 

Memberi Nama Route 


Routing  pada  laravel  bisa  diberi  nama,  yang  mana  dengannya  kita  bisa  memanggil 
route  dengan  namanya,  bukan  dengan  url-nya.  Sehingga  meskipun  urlnya  berganti-ganti 
asalkan namanya tetap, kita tidak perlu mengubah ​kodingan​ di banyak tempat. 

 
Route​::​get​(​'user/profile'​, ​function​ () {
​//
})->​name​(​'user.profile'​);

# atau
Route​::​get​(​'user/profile'​, ​'UserController@show'​)->​name​(​'user.profile'​);

Generate URL dan Redirect  

Dengan  memberi  nama  route,  kita  bisa  men-generate  url  dan  redirect  dengan  cara 
yang mudah tanpa harus menulis alamat lengkap dari routing tersebut. Seperti di bawah ini: 

 
# Generating URLs...
$url​ = ​route​(​'user.profile'​);

# Generating Redirects...
return​ ​redirect​()->​route​(​'user.profile'​); 

Ada  pun  jika  pada  routing  terdapat  parameter,  kita  bisa  mengatur  parameternya 
dengan dengan mem-​passing ​array pada fungsi route atau redirect. 

 
Route​::​get​(​'user/{id}/profile'​, ​function​ (​$id​) {
​//
})->​name​(​'user.profile'​);

$url​ = ​route​(​'user.profile'​, [​'id'​ => ​1​]); 


 

Route Groups 
Penggunaan  route  group  memungkinkan  kita  untuk  mengatur  properti  tertentu 
terhadap  sekumpulan  route  tanpa  harus  mendefinisikannya  satu-persatu.  Semisal 
middleware,  url  prefix,  nama  prefix,  namespace  dan  sebagainya.  Route  group  didefinisikan 
dengan perintah ​Route​::​group​. 

Middleware 

Untuk  menentukan  middleware  terhadap  route  group  kita  harus  memanggil  fungsi 
middleware()  terlebih  dahulu  sebelum  fungsi  group().  Parameter  yang  diterima  fungsi 
middleware  adalah  array  yang  berisi  nama  middleware.  Pembahasan  tentang  middleware 
insyaallah akan dilakukan pada pertemuan-pertemuan yang akan datang 

 
Route​::​middleware​([​'first'​, ​'second'​])->​group​(​function​ () {
​Route​::​get​(​'/'​, ​function​ () {
​// menggunakan middleware first dan second
});

​Route​::​get​(​'user/profile'​, ​function​ () {
​// menggunakan middleware first dan second
});
}); 

Namespaces 

Kasus  lain  yang  sering  memanfaatkan  route  group  adalah  ketika  kita  ingin 
mendefinisikan  namespace.  Misalnya  kita  memiliki  banyak  controller  pada  directory 
App\​Http​\​Controllers\Admin​.  Maka  kita  bisa  menambahkan  namespace  Admin  pada  route 
group. 

 
Route​::​namespace​(​'Admin'​)->​group​(​function​ () {
​// Controllers Within The "App\Http\Controllers\Admin" Namespace
}); 

Perhatian​:  ​framework  laravel  secara  default  pada  RouteServiceProvider  telah 


mendefinisikan namespace ​App\​Http​\​Controllers​. ​Sehingga kita tidak perlu mendefinisikannya 
lagi. 

10 
 

Sub-Domain Routing 

Kita  juga  bisa  mendefinisikan  subdomain  terhadap  route  dengan  melakukan 


pemanggilan fungsi domain() sebelum fungsi group(). 

 
Route​::​domain​(​'{account}.myapp.com'​)->​group​(​function​ () {
​Route​::​get​(​'user/{id}'​, ​function​ (​$account​,​ $id​) {
​//
});
}); 

Route Prefixes 

Route  prefix  adalah  salah  satu  kasus  yang  paling  banyak  digunakan  pada 
pendefinisian route group. Perhatikan contoh berikut: 

 
Route​::​get​(​'admin/users'​, ​'UserController@index'​);
Route​::​post​(​'admin/users'​, ​'UserController@store'​);
Route​::​get​(​'admin/users/{user}'​, ​'UserController@show'​);
Route​::​get​(​'admin/users/{user}/edit'​, ​'UserController@edit'​);
Route​::​put​(​'admin/users/{user}'​, ​'UserController@update'​);
Route​::​delete​(​'admin/users/{user}'​, ​'UserController@destroy'​); 

Dari  pada  mendefinisikan  url  admin  pada  setiap  route,  lebih  baik  kita  menjadikannya 
prefix dalam satu route group dengan memanggil fungsi prefix() sebelum fungsi group().  

 
Route​::​prefix​(​'admin'​)->​group​(​function​ () {
​Route​::​get​(​'users'​, ​'UserController@index'​);
​Route​::​post​(​'users'​, ​'UserController@store'​);
​Route​::​get​(​'users/{user}'​, ​'UserController@show'​);
​Route​::​get​(​'users/{user}/edit'​, ​'UserController@edit'​);
​Route​::​put​(​'users/{user}'​, ​'UserController@update'​);
​Route​::​delete​(​'users/{user}'​, ​'UserController@destroy'​);
}); 

11 
 

Lagi  pula  kalau  kita  misalkan  ingin  mengubah  url  prefix  yang  awalnya  dari  admin 
menjadi  misalkan  super-admin,  kita  tinggal  mengubah  satu  baris  saja  bukan?  Ini  jauh  lebih 
mudah dan menghemat tenaga. 

Route Name Prefixes 

Untuk  prefix nama, kurang lebih seperti pada prefix url di penjelasan sebelumnya. Dan 
prefix  nama  itu  akan  diatur/ditambahkan  persis  sebagaimana  ia  didefinisikan.  Jadi  perlu 
diperhatikan untuk menambahkan tanda titik (.) pada pendefinisian nama. 

 
Route​::​name​(​'admin.'​)->​group​(​function​ () {
​Route​::​get​(​'users'​, ​function​ () {
​// Route assigned name "admin.users"...
})->​name​(​'users'​);
}); 

Rate Limiting 
Laravel  secara  default  sudah  menyediakan  middleware  untuk  membatasi  akses  pada 
suatu  route  tertentu.  Kita  bisa  menambahkan  middleware  tersebut  kepada  salah  satu  route 
secara  khusus  atau  juga  kepada  route  group.  Nama  middleware-nya  adalah  throttle,  ia 
menerima  2  parameter,  yang  pertama  adalah  jumlah  request  maksimal dan parameter kedua 
adalah rentang waktu dalam satuan menit. 

 
Route​::​middleware​(​'throttle:3,1'​)->​group​(​function​ () {
​Route​::​get​(​'/tes-throttle'​, ​function​ () {
​return​ ​"hello! anda hanya bisa melihat route ini 3 kali dalam satu menit"​;
});
}); 

Jika  telah  melakukan  akses  lebih  dari  batas  yang  ditentukan,  otomatis  framework 
laravel  akan  mengembalikan  response  dengan  http  code  429.  Jika  request-nya  bukan  ajax, 
tampilan error bawaannya adalah seperti pada gambar berikut: 

12 
 

Ini  akan  sangat  berguna  untuk  keamanan  aplikasi  yang  kita  bangun.  Terutama  untuk 
menangani  serangan  bruteforce  atau  untuk  menangani  bot  request  palsu.  Sangat  mudah 
bukan? 

Method Spoofing 
Tidak  semua  HTTP  method  disupport  oleh  HTML,  seperti  method  PUT,  PATCH,  dan 
DELETE.  Sehingga  ketika  kita  mendefinsikan  3  HTTP  method  tersebut  melalui  form  HTML 
(bukan  lewat  ajax,  kalau  ajax  support  semua)  kita  perlu  untuk  melakukan teknik yang disebut 
sebagai  ​method  spoofing.  Yaitu  method  pada  form  tetap  method  POST  akan  tetapi  kita 
tambahkan  satu  field  bernama  _method  dengan  value  PUT  atau  PATCH  atau DELETE sesuai 
dengan HTTP method yang dibutuhkan 

 
<form​ ​action​=​"/foo/bar"​ ​method​=​"POST"​>
​<input​ ​type​=​"hidden"​ ​name​=​"_method"​ ​value​=​"PUT"​>
​<input​ ​type​=​"hidden"​ ​name​=​"_token"​ ​value​=​"​{{​ ​csrf_token​() ​}}​"​>
</form> 

​ method  dan  @csrf  yang  disediakan oleh 


Atau  kita  juga  bisa  menggunakan  ​directive  @
laravel. 

 
<form​ ​action​=​"/foo/bar"​ ​method​=​"POST"​>
​@method​(​'PUT'​)
​@csrf
</form> 

13 
 

Mengakses Route yang Aktif 


Kita  bisa  mengakses  route  yang  sedang  aktif  dengan  cara  memanggil  fungsi  ​current​, 
currentRouteName​, dan ​currentRouteAction()​ pada facade Route. 

 
$route​ = ​Route​::​current​();
$name​ = ​Route​::​currentRouteName​();
$action​ = ​Route​::​currentRouteAction​(); 

Melihat Daftar Route dari Aplikasi 


Untuk  melihat  daftar  seluruh  route  dari  aplikasi,  kita  bisa  menggunakan  perintah 
artisan route:list pada command line. 

$ php artisan route:list 

URL Generation 
Laravel menyediakan helper-helper untuk memudahkan kita untuk men-​generate URL. 
Ini  sangat  membantu  developer  ketika  membangun  kumpulan  link-link  pada  view  atau  pun 
ketika melakukan ​redirect ​ dari satu route ke route lainnya. 

Penggunaan Dasar 

Generate URL Biasa 

Helper  url()  bisa  digunakan  untuk  men-​generate  URL  untuk aplikasi kita dan langsung 


otomatis  menghasilkan  URL  berdasarkan  skema  (HTTP  atau  HTTPS)  dan  juga  host/domain 
dari request yang sedang aktif. 

 
$username​ = ​"aksamedia"​;

return​ ​url​(​"users/{​$username​}"​); ​# http://your-app.com/users/aksamedia 

14 
 

Generate URL Dengan Query String 

Dengan  helper  url()  kita  juga  bisa  men-​generate  url  dengan  query  string.  Caranya 
​ sosiatif sebagai parameter kedua dari helper url(). 
adalah dengan menambahkan ​array a

 
{{​ ​url​(​'users'​, [​'query'​ => ​'aksamedia'​]) ​}} 

Catatan​:  ​jika  parameter  pertama  ada  http/https  maka  host  yang  direturn  adalah  host 
apa  adanya,  bukan  host  dari  aplikasi  kita.  Contoh:  url(‘​http://tes.com​’)  akan  menghasilkan 
http://tes.com​.  

Mengakses URL yang Sedang Aktif 

JIka  helper  url()  dipanggil  tanpa  ada  parameter,  maka  yang  dikembalikan  adalah 
instance  dari  kelas  ​Illuminate\​Routing​\​UrlGenerator​.  Instance  tersebut  memungkinkan  kita 
untuk mengakses informasi tentang URL saat ini yang sedang aktif. 

 
<div>
​{{-- Mendapatkan url sekarang tanpa query string --}}
​{{​ ​url​()->​current​() ​}}​ ​<br>

​{{-- Mendapatkan url sekarang dengan query string --}}


​{{​ ​url​()->​full​() ​}}​ ​<br>

​{{-- Mendapatkan url dari request sebelumnya --}}


​{{​ ​url​()->​previous​() ​}}​ ​<br>
</div> 

Helper url juga bisa diakses dengan URL facade sebagai berikut: 

 
{{​ \​URL​::​current​() ​}} 

15 
 

URL Untuk Named Route 


Untuk  route-route  yang  telah  diberi  nama  sebagaimana  telah  berlalu  penjelasannya, 
kita  bisa  menggunakan  helper  route()  untuk  men-​generate  url-nya.  Dan  selama  nama  dari 
route  tersebut  tidak  berubah  sekalipun  url-nya  berubah,  maka  kita  tidak perlu mengubah link 
di berbagai view sama sekali. Bayangkan kita memiliki route seperti berikut: 

 
Route​::​get​(​'/post/{post}'​, ​function​ () {
​//
})->​name​(​'post.show'​); 

Untuk men-​generate​ url di atas, seperti ini: 

 
echo​ ​route​(​'post.show'​, [​'post'​ => ​1​]); 

Signed URL 

Laravel  memungkinkan  kita  untuk  membangun sebuah URL dengan query string yang 


ter-​signed    atau  tertandatangani.  Di  mana  url  tersebut  tidak  bisa  diubah-ubah  parameter 
query-nya.  Contoh  kasusnya  adalah  ketika  kita membuat link untuk konfirmasi email, kita bisa 
menggunakan fitur ini. Cara membuatnya adalah sebagai berikut: 

 
{{​ ​url​()->​signedRoute​(​'confirmation'​, [​'email'​ =>
‘developer.aksamedia@gmail.com’​]) ​}}

Contoh URL yang dihasilkan adalah sebagai berikut: 

http://localhost:8000/confirmation?email=developer.aksamedia@gmail.com&signature=bbfe
dd532db6aa5ea5e61893ea7a05e682e8605be82aeff2302238cef2727738 

Url  di  atas  jika  kita  mengganti  query  string  emailnya,  maka  hasilnya  akan  tidak  valid 
ketika diperiksa tanda tangan digitalnya. 

16 
 

Validasi Signed Request 

Untuk  menvalidasi  apakah  url dari ​current request v​ alid atau tidak kita bisa melakukan 


pengecekan dengan fungsi hasValidSignature(). 

 
use​ Illuminate\Http\​Request​;

Route​::​get​(​'confirmation'​, ​function​ (​Request​ ​$request​) {


​if​ (!​$request​->​hasValidSignature​()) {
​abort​(​401​);
}

​# proses confirmation
})->​name​(​'confirmation'​);

URL Untuk Memanggil Aksi di Controller 


Dengan  helper  url(),  selain  hanya  untuk  men-​generate  url  biasa  maupun  url  dari 
named route, kita juga bisa men-​generate ​url() dari fungsi sebuah ​controller​. Contohnya: 

 
$url​ = ​action​(​'HomeController@index'​); 

Kita juga bisa menggunakan sintaks model "callable” array: 

 
use​ App\Http\Controllers\​HomeController​;

$url​ = ​action​([​HomeController​::​class​, ​'index'​]); 

  

Kesimpulan 
Laravel  menyediakan  berbagai  macam  fitur  terkait dengan routing yang memudahkan 
kita sebagai developer. Sehingga pengerjaan project pun bisa relatif menjadi jauh lebih cepat. 

17 
 

Karena  hal-hal  yang  telah  kita bahas pada pertemuan 1 ini sangat susah untuk diimplementasi 


secara manual dengan php native. 

18 

Anda mungkin juga menyukai