28
Introduction to Laravel By: Yogi Salomo Mangontang Pratama & M. Harits S. Adil Haqqi Elfahmi

Introduction to Laravel

Embed Size (px)

DESCRIPTION

File Presentasi sebagai tahap awal untuk pembelajaran pengembangan aplikasi berbasis Web dengan menggunakan framework Laravel untuk Bahasa PHP

Citation preview

Page 1: Introduction to Laravel

Introduction to Laravel

By: Yogi Salomo Mangontang Pratama

& M. Harits S. Adil Haqqi Elfahmi

Page 2: Introduction to Laravel

Outline Presentasi

• Tentang Laravel

• How to get started

• Komponen-Komponen Laravel

Page 3: Introduction to Laravel

Tentang Laravel

• Apa itu Laravel?

• Arsitektur

Page 4: Introduction to Laravel

Apa itu Laravel?

“Framework gratis dan open source untuk pengembangan

aplikasi berbasis web dan dirancang untuk pola

pengembangan MVC ( Model, View, Controller )”

Taylor Otwell MIT License Github

Page 5: Introduction to Laravel

Arsitektur

Page 6: Introduction to Laravel

How to get started

• System Requirements

• Composer

• Instalasi Laravel

Page 7: Introduction to Laravel

System Requirements

• PHP >= 5.4

• MCrypt PHP Extension

Download it Here :

Page 8: Introduction to Laravel

Composer

• Dependency Manager untuk bahasa pemrograman PHP.

• Cara Mendapatkan:

• Ketik perintah berikut pada terminal:

• Atau download installer-nya ( khusus Windows ) pada:

php -r "readfile('https://getcomposer.org/installer');" | php

Page 9: Introduction to Laravel

Instalasi Laravel

• Clone dari Github Laravel

• Download dari website Laravel

• Laravel Installer

• Menggunakan Composer

composer create-project laravel/laravel --prefer-dist

Page 10: Introduction to Laravel

Komponen–Komponen Laravel

• Route

• Controller

• Eloquent ORM

• View

Page 11: Introduction to Laravel

Routes • <Nama Domain> / app / routes.php

• Memetakan URL kepada fungsi-fungsi pada Controller

• Pada URL dapat ditambahkan parameter untuk dikirimkan kepada

fungsi.

• <Fungsi> dapat diisi dengan fungsi dari Controller maupun fungsi

anonymus yang langsung diimplementasikan pada route

Route::<Metode Route>(‘<URL>’, ‘<Fungsi>’);

Route::get(‘url/{var?}’, function($var = default);

Page 12: Introduction to Laravel

Macam-macam Route

• Basic GET

• Basic POST

• Any

Route::get(‘<URL>’, ‘<Fungsi>’);

Route::post(‘<URL>’, ‘<Fungsi>’);

Route::any(‘<URL>’, ‘<Fungsi>’);

Page 13: Introduction to Laravel

Macam-macam Route

• RESTful Controller

• URL dipetakan kepada Controller tertentu. Fungsi yang

dipanggil sesuai dengan bagian akhir dari URL

• Contoh URL: ‘user/view’ maka fungsi yang dipanggil pada

controller getView / postView.

Route::controller(‘<URL>’, ‘<Nama Controller>’);

public function getView { } public function postView { } public function putView { }

Page 14: Introduction to Laravel

Macam-macam Route

• Resource Controller

• Mempermudah pengelolaan Resource. Contoh: Foto,

Session, dsb.

Route::resource(‘<URL>’, ‘<Nama Controller>’);

Page 15: Introduction to Laravel

Filter

• Membantu membatasi akses kepada suatu route tertentu

• Cara mendefinisikan:

• Ini

• Pada file filter.php

• Cara mengimplementasikan:

Route::filter(‘<nama>’, <Fungsi>);

Route::get(‘<URL>', array('before' => ‘<Nama Filter>', <Fungsi>));

Page 16: Introduction to Laravel

Filter

Page 17: Introduction to Laravel

Controller • <Nama Domain> / app / controllers

• Fungsi-fungsi yang berinteraksi dengan model dan mengembalikan

berbagai nilai kepada client.

• Jenis-jenis:

• Basic

• RESTful

• Resource

class <Nama Controller> extends BaseController{ }

Page 18: Introduction to Laravel

Controller • Nilai yang dikembalikan oleh Controller:

• Datatype ( boolean, integer, dll)

• View

• withInput : dengan nilai input dari Form

• withError : dengan pesan Error dari validator

• with : dengan model yang di-binding ke variabel

• Redirect

• JSON

Page 19: Introduction to Laravel

Controller

Page 20: Introduction to Laravel

Validator

• Berfungsi untuk membantu melakukan validasi terhadap input yang

diberikan pada form

• Rules didefinisikan dengan cara disimpan dalam sebuah Array

dengan format:

• Daftar Rules dapat diperiksa di website Laravel

• Messages berisi pesan Error yang ingin dibuat khusus, didefinisikan

dengan cara disimpan pada sebuah Array dengan format:

$<Nama Variabel> = Validator::make( <Input>, <Rules>, <Messages>);

‘<Nama Field>’=> ‘<Rules1>|<Rules2>|…’

‘<Nama Rule>’=> ‘<Isi Pesan>’

Page 21: Introduction to Laravel

Eloquent ORM

• <Nama Domain> / app / models

• Merepresentasikan Tabel sebagai sebuah objek pada aplikasi

• Atribut:

• table : Mendefinisikan nama tabel yang digunakan

• guarded : kolom pada tabel yang tidak boleh di-mass assignment

• fillable : Mendefinisikan kolom yang boleh di-mass assignment

class <Nama Model> extends Eloquent { }

Page 22: Introduction to Laravel

Eloquent ORM

• Beberapa Query pada Model:

• Model::all();

• Model::find(1);

• Model::where(‘<Atribut>', ‘<Operator>',

‘<Nilai>');

• Untuk melakukan penyimpanan ke database, dilakukan pemanggilan

fungsi save() oleh Model.

Page 23: Introduction to Laravel

Eloquent ORM

• Mendukung Relationship Mapping antar tabel pada database:

• One To One

• Many To Many

• One To Many

• public function author() { return $this->belongsTo('Author','author_id'); }

Page 24: Introduction to Laravel

Eloquent ORM

• Mendukung Soft Delete, yaitu tidak langsung menghapus data pada

database melainkan memberikan Timestamp pada atribut

deleted_at. Beberapa fungsinya antara lain:

• withTrashed() : Memasukkan yang sudah di delete

• onlyTrashed() : Hanya yang sudah di delete

• restore() : Mengembalikan yang sudah di delete

Page 25: Introduction to Laravel

View – Blade Engine

• <Nama Domain> / app / views

• File pada view disimpan dengan format: <Nama File>.blade.php

• Merepresentasikan tampilan yang akan diberikan pada user.

• Blade: Engine untuk melakukan templating pada Laravel

Page 26: Introduction to Laravel

View – Blade Engine

• Beberapa fungsi yang terdapat pada Blade Engine:

• @extends : memanggil/meng-inherit file view lainnya

• @section : Mengisi suatu section pada view yang di-inherit

• @endsection : Mengakhiri pengisian suatu section

• Control Structures:

• @if, @else, @elseif & @endif

• @for & @endfor

• @while & @endwhile

• @foreach & @endforeach

Page 27: Introduction to Laravel

View – Blade Engine

• Selain itu untuk memanggil fungsi echo dari php dapat dilakukan

dengan menggunakan {{<Nilai yang Ingin Ditampilkan>}}

Page 28: Introduction to Laravel

Thanks