laravel in action · buat template denganmengeksekusi perintahinidi command line laravelnew atau...

50
Persiapan Sudah terinstall 1. PHP versi 7.2/XAMPP/WAMP 2. Mysql/Postgresql 3. Text Editor (Visual Studio Code)

Upload: others

Post on 22-Aug-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Persiapan

Sudah terinstall1. PHPversi 7.2/XAMPP/WAMP2. Mysql/Postgresql3. TextEditor(VisualStudioCode)

Page 2: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

PEMBUKA BELAJAR

“Kami ridho Allah SWT sebagai Tuhanku, Islam sebagai agamaku, dan Nabi Muhammad sebagai Nabi dan Rasul, Ya Allah, tambahkanlah kepadaku ilmu dan berikanlah aku

kefahaman”

DOABELAJAR

Page 3: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

LLARAVEL IN ACTION

Sadr Lufti Mufreni, S.Kom, M.Sc.2019

Page 4: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Bahan Kajian

OutlinesPendahuluanInstalasiOtentifikasiModelMigrasi DatabaseRouterControllerView

Page 5: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Pendahuluan

Laravel adalah webframeworkuntuk PHPFramework:kumpulan libraryyangdijadikan satuIdeawal dari RubyonRailsdengan konsep MVC(Model-View-Controller)

Page 6: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Pendahuluan

Frameworklainnya:1. CakePHP2. CodeIgniter:palingpopuler 2010

Mempunyai komunitas yangkuatKelemahan:adaptasi terhadap teknologi baru kurang,versi terakhir belummendukung PHP7

Page 7: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Pendahuluan

Laravel :opensource,mendukung PHP7Fitur1. Composer:mengelola dependecy2. EloquentORM:modelyangterhubung ke database,databaseindependent3. QueryBuilder4. Restfulcontroller:mendukung HTTPverb(POST,PUT,DELETE,GET)5. Bladetemplate:untuk halaman webyangdinamis6. ArtisanCLI:commandlineuntuk manipulasi projek

Page 8: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Instalasi

1.Sebelum menginstall Laravel,installdulu Composer

Page 9: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Instalasi

1.Sebelum menginstall Laravel,installdulu ComposerEksekusicomposerJangan lupa updatePATH

2.InstallLaravel dengan mengeksekusi perintah ini dicommandlinecomposerglobalrequirelaravel/installerJangan lupa updatePATH

3.Masuk ke direktori htdocs

Page 10: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Instalasi

4.Buat templatedengan mengeksekusi perintah ini dicommandlinelaravel new<nameprojek>ataularavel new<nameprojek>--auth--auth digunakan untuk membuat otentifikasi secara otomatis

5.Masuk ke direktori <nama projek>dan eksekusiphp artisanserve

6.Buka browserdan kunjungihttp://localhost/<nama projek>

Page 11: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Instalasi

Page 12: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Instalasi

7.Buka file.env dirootdirektori projek baru8.Ubah DB_CONNECTIONmenjadi pgsql untuk databasePostgresql dan portke 54329.Bila databasebelum ada silahkan dibuat databasenyaContoh dipostgresql,buka adminsqlcreatedatabaselaravelcreateusermyblog withencryptedpassword‘myblog’grantallprivilegesondatabaselaravel tomyblog ;10.Buka terminal/commandprompt,masuk ke direktori projek baru,eksekusi diterminal/commandprompphp artisanmigrate

Page 13: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Instalasi

Page 14: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Instalasi

Setelah berhasil membuat projek,Laravel membuat direktori berikut1. app :kode untuk controller/model2. boostrap :boostrap/cachedibuat writable3. config :berisi konfigurasi dari projek: app.php,database.php4. database :fileyangdiperlukan untuk migrasi5. public :menyimpan staticfile/images/javascript/css6. resources :kode untuk view7. routes :berisi routeprojek:web.php,api.php8. storage :writablepermission,compiledstuff9. tests :testingframeworkforPHPUnit10. vendor :composerdependencies

Page 15: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Otentifikasi

Untuk membuat otentifikasi Laravel menyediakan fitur otomatisnya.

Caranya:installpackagelaravel/ui dengan cara mengeksekusi diterminalcomposerrequirelaravel/ui --devphp artisanui bootstrap–auth

Ubah file.env APP_URLsesuai dengan nama webnya

Page 16: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Otentifikasi

Page 17: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Otentifikasi

Page 18: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Otentifikasi

Membutuhkan settingmailserver

Page 19: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Otentifikasi

Di.env,ubah mailsettings

Page 20: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Otentifikasi

Untuk membuat verifikasi email,ketika mendaftar

Caranya:1. Buka fileUser.php didirektori app2. Untuk menambahkan fitur verifkasi email,Userimplementasi

Illuminate\Contracts\Auth\MustVerifyEmail contract

Page 21: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Otentifikasi

3. Buka fileweb.php didirektori routes4. Tambahkan ['verify'=>true] diAuth::routes5. Tambahkan ->middleware(‘verified’)pada routeyangdiwajibkan useruntuk

verifikasi emailterlebih dahulu

Page 22: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Otentifikasi

Hasil RegisterdenganVerifikasi Email

Page 23: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Otentifikasi

Hasil Registerdengan Verifikasi Email

Page 24: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Otentifikasi

Page 25: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Otentifikasi

Page 26: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Otentifikasi

Page 27: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Otentifikasi

Page 28: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Model

Laravel menggunakan Eloquentsebagai ObjectRelationModel

Setiap Tabledidatabasemempunyai 1ModelclassdiPHPEloquentsecara defaultmenggunakanAutoincrementprimarykey(integer)

Page 29: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Model

Membuat classmodelsecara otomatis1.Menggunakan terminaleksekusi perintah ini didirektori projekphp artisanmake:model Post–mOtomatis membuat filePost.php berisi classdan migrationfile

Page 30: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Model

Page 31: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Model

Membuat classmodelsecara otomatis2.Menggunakan terminaleksekusi perintah ini didirektori projekphp artisanmake:model Comment–mOtomatis membuat fileComment.php berisi classdan migrationfile

Page 32: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Model

Page 33: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Model

MigrationLaravel memudahkan untuk mengupdate databaseEksekusi perintahphp artisanmigrate

Page 34: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Model

Relationship:1. OnetoOnemenggunakan hasOne (PosthasOne User)2. OnetoManymenggunakan hasMany (PosthasMany Comment)3. OnetoMany(Inverse)menggunakan belongsTo (CommenthasOne Post)4. ManytoManymenggunakan belongsToMany

PosthasMany Commentkarena post_id adanya ditablecomments

Page 35: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Model

Relationship:

Page 36: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Controller

Controller:yangmengatur antara Viewdan ModelUntuk mengakses controllerdari Viewmemerlukan Routing.RoutingmenggunakanHTTPVerbsDisimpan diweb.php atau api.php

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

Page 37: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Controller

Untuk routingyangmemerlukan ijin akses menggunakan middleware.Middlewareadalah fungsi yangdigunakan sebelum mengeksekusi requestTugas middlewareyangterpenting adalah filteringrequest,contoh ijin akses.

Untuk mengedit routing,web.php dan api.php bisa digunakan.web.php untuk yangberhubungan dengan routinghalaman webapi.php untuk yangberhubungan dengan APIAjax

Page 38: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Controller

web.php

api.php

Page 39: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

Controller

Untuk membuat controllerdilakukan dengan mengeksekusi perintah berikut:

php artisanmake:controller UserController

Page 40: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

View

Menampilkan tampilan dibrowser.Menggunakan bladetemplate.Gabungan html,css,javascript,dan katakunci spesial.

Sebagai dasar kita menggunakan home.blade.php.Kitaakan menggunakan jquery dicdn,editfileresources/views/layouts/app.blade.php

Page 41: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

View

Page 42: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

View

Page 43: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

View

AjaxUntuk mengaktifkan ajax,APIauthenticationharus diaktifkan.Diperlukanperubahan databaseuntuk tabel users.Eksekusi perintah

php artisanmake:migration enable_api_user_access

Page 44: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

View

php artisanmigrate

Page 45: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

View

Tambahkan kode berikut LoginController diapp\Http\Controllers\Auth\LoginController.php

Page 46: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

MVC

UserController.phpdiubah menjadi

Page 47: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

MVC

home.blade.appditambahkan javascript

Page 48: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

MVC

Page 49: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing

PENUTUP BELAJARحیم الرحمن الر بسم ا.

ا وارزقنا اتـباعه وأرنا الباطل باطال وارزقنا اجتنابه Fاللھم أرنا الحق حق

Ya Allah Tunjukkanlah kepada kami kebenaran sehinggga kami dapatmengikutinya,

Dan tunjukkanlah kepada kami keburukan sehingga kami dapat menjauhinya.

Page 50: Laravel In Action · Buat template denganmengeksekusi perintahinidi command line laravelnew  atau laravel new  --auth ... 9. tests : testing