Friday, December 20, 2019
PHP Lumen Upload Media
Tutorial ini melanjutkan project dari tutorial sebelum nya dengan nama ‘PHP Lumen Resource
Relationship’.
Pada tutorial ini kita akan membahas mengenai upload media dan upload video kedalam tabel posts.
Fitur upload Image di Post
Untuk mengimplementasikan fitur upload image kita harus menambahkan satu field ke tabel posts.
Caranya ketik di command Prompt /CMD :
php artisan make:migration add_image_to_posts_table
Selanjutnya buka filenya di Database/Migration/.. , dan tambahkan kode berikut:
Selanjutnya ketik di command Prompt /CMD :
php artisan migrate
Dengan begitu sudah bertamah satu kolom/field di table posts.
Selanjutnya buka file App/Http/Controllers/PostsController.php dan tambahkan kode berikut di function store :
Silakan test di postman store dan isi form datany, dan jika berhasil maka responnya seperti ini.
Fitur get image Post
Pertama tambahkan kode di routes/web.php
Selanjutnya tambahkan method baru "image" di App/Http/Controllers/PostsController.php.
Kemudian lakukan test di postman get dengan parameter image name sesuai dengan nama image yang tadi kita create.
Jika berhasil maka responnya seperti ini:
Fitur upload Image di Post
Untuk mengimplementasikan fitur upload video kita juga harus menambahkan satu field ke tabel posts dengan nama video.
Caranya ketik di command Prompt /CMD :
php artisan make:migration add_video_to_posts_table
Selanjutnya buka filenya di Database/Migration/.. , dan tambahkan kode berikut:
Selanjutnya ketik di command Prompt /CMD :
php artisan migrate
Selanjutnya buka file App/Http/Controllers/PostsController.php dan tambahkan kode berikut di function store:
Silakan test di postman store dan isi form datanya, dan jika berhasil maka responnya seperti ini.
Fitur get video Post
Pertama tambahkan kode di routes/web.php
Selanjutnya tambahkan method baru "video" di
App/Http/Controllers/PostsController.php
Kemudian lakukan test di postman get dengan parameter video name sesuai dengan nama video
yang tadi kita create.
Jika berhasil maka responnya seperti ini:
dan selesai
Monday, December 9, 2019
PHP Lumen Resource Relationship
Deskripsi
Tutorial ini melanjutkan project dari tutorial sebelum nya dengan nama ‘PHP Lumen Authorization. Pada tutorial ini kita akan menambahkan fitur relationship antara model (tabel).
Tujuan praktek ini adalah untuk:
1. Memahami konsep relationship
2. Mampu implementasi fitur relationship
Prasyarat
Harus menyelesaikan dulu modul dengan judul ‘PHP Lumen Authorization’, yang sudah dibuat pada tutoraial sebelumnya
Implementasi Comment
Sekarang kita akan mengimplementasikan fitur comment, yaitu user bisa memberikan komentar pada salah satu post. Untuk mengimplementasikan fitur ini dibutuhkan 2 endpoint yaitu.
1. Endpoint untuk create comment
2. Endpoint untuk get comment based on post. List komentar nya harus mengandung object user
Pertama kita buat tabel comments terlebih dahulu dengan migrasi ke database buka cmd ketikan
php artisan make:migration create_comments_table
Edit filenya di Database/migration dan tambahkan kode berikut:
lanjut ketika di cmd : php artisan migrate
Kemudian kita buat sebuah controller di App\Http\Controllers\CommentsController.php, dan masukan kode berikut:
Selanjutnya kita buat model Comment di App\Models\Comment.php, dan masukan kode barikut :
Selanjutnya buka model Post.php dan tambahkan kode berikut :
Selanjutnya tambahkan di App\Http\Controllers\PublicController\PostsController.php, dan tambahkan kode berikut:
Sehingga respon dari get post nya adalah terdiri dari beberapa comment yang memiliki object user di dalamnya. Namun sebelum melakukan get all post.
Selanjutnya tambah kode berikut di routes\web.php
Lakukan testing di postman dengan endpoint
http://localhost:8000/public/posts
maka hasilnya seperti berikut
selesai...
selamat mencoba
Monday, December 2, 2019
PHP Lumen Authorization
Tutorial ini melanjutkan project dari tutorial sebelum nya dengan nama ‘PHP Lumen Authentication’. Pada tutorial ini kita akan menambahkan fungsi autentikasi. Tujuan praktek ini adalah untuk:
1. Mampu implementasi otorisasi menggunakan Lumen
2. Mampu membuat fungsi pengecekan otorisasi
3. Memahami logika untuk otorisasi
Prasyarat
Harus menyelesaikan dulu modul dengan judul
‘PHP Lumen Authentication’.
Menambahkan Column Role Pada Table users
Untuk menambahkan column role pada table users, mari kita ikuti langkah-langkah berikut ini:
1. Membuat database migration dengan menjalankan command dibawah ini pada terminal:
php artisan make:migration add_role_to_users_table --table=users
2. Buka file database/migrations/..._add_role_to_users_table.php, dan ubah menjadi seperti
dibawah ini
3. Jalankan command dibawah ini pada terminal:
php artisan migrate
4. Secara default column role yang sudah terdaftar di database menjadi role=reader.
3. Jalankan command dibawah ini pada terminal:
php artisan migrate
4. Secara default column role yang sudah terdaftar di database menjadi role=reader.
6. Dan selesai
Kebutuhan User Role
Setiap role dari user, memiliki kemampuan yang berbeda-beda, yakni:
1. Admin
- Bisa read all posts
- Bisa read detail post
- Bisa create posts
- Bisa update post
- Bisa delete post
2. Editor
- Bisa read all posts (yang dibuat oleh user yang lagi login)
- Bisa read detail post (yang dibuat oleh user yang lagi login)
- Bisa create posts
- Bisa update post (yang dibuat oleh user yang lagi login)
- Bisa delete post (yang dibuat oleh user yang lagi login)
3. Reader
- Bisa read all posts
- Bisa read detail post
- Bisa memberikan comment pada post tertentu
4. dan selesai
Membuat Logika Policy Pada Read All Post
Logika police ini berguna untuk menentukan role apa bisa mengakses data apa. Untuk implementasi kebutuhan user role diatas, kita akan menggunakan fitur policies dari Lumen. Untuk membuat logika policy pada read all, mari ikuti langkah-langkah dibawah ini:
1. Buka file app/Providers/AuthServiceProvider.php, codenya seperti dibawah ini.
2. Buka file app/Http/Controllers/PostsController.php, tambahkan Gate class dan ubah function index
3. Anda coba login dengan user yang role = ‘user’, maka respon nya seperti dibawah ini.
4. Anda coba login dengan user yang role = ‘admin’ atau ‘editor’, maka respon nya seperti dibawah ini.
5. Kalau login pakai ‘admin’, maka list post nya adalah semua posts, kalau login pakai ‘editor’
pakai list post nya hanya post yang user_id = user logged in id.
6. Dan selesai
Membuat Logika Policy Pada Update Post
User yang bisa melakukan update adalah ‘editor’ dan ‘admin’. Untuk ‘editor’ hanya bisa meng-update post yang dia create, untuk ‘admin’ bisa meng-update semua post. Untuk membuat logika policy pada create, mari ikuti langkah-langkah dibawah ini:
1. Buka file app/Providers/AuthServiceProvider.php, codenya seperti dibawah ini.
2. Buka file app/Http/Controllers/PostsController.php
3. Anda coba login dengan user yang role = ‘user’, maka respon nya seperti dibawah ini.
4. Kalau anda login dengan user yang valid authorization nya, maka tampilanya seperti dibawah ini.
5. Selesai
Membuat Logika Policy Pada Create, Read detail dan Delete Post
User yang bisa melakukannya adalah ‘editor’ dan ‘admin’. Dan keduanya bisa melakukan di semua data post. Untuk membuat logika policy pada create, mari ikuti langkah-langkah dibawah ini:
Buka file app/Providers/AuthServiceProvider.php, codenya seperti dibawah ini.
Buka file app/Http/Controllers/PostsController.php, tambahkan di function create, show dan destroy
Coba anda login dengan user yang valid authorization nya yaitu 'admin' atau 'editor', maka tampilanya seperti dibawah ini.pakai list post nya hanya post yang user_id = user logged in id.
6. Dan selesai
Membuat Logika Policy Pada Update Post
User yang bisa melakukan update adalah ‘editor’ dan ‘admin’. Untuk ‘editor’ hanya bisa meng-update post yang dia create, untuk ‘admin’ bisa meng-update semua post. Untuk membuat logika policy pada create, mari ikuti langkah-langkah dibawah ini:
1. Buka file app/Providers/AuthServiceProvider.php, codenya seperti dibawah ini.
2. Buka file app/Http/Controllers/PostsController.php
3. Anda coba login dengan user yang role = ‘user’, maka respon nya seperti dibawah ini.
4. Kalau anda login dengan user yang valid authorization nya, maka tampilanya seperti dibawah ini.
5. Selesai
Membuat Logika Policy Pada Create, Read detail dan Delete Post
User yang bisa melakukannya adalah ‘editor’ dan ‘admin’. Dan keduanya bisa melakukan di semua data post. Untuk membuat logika policy pada create, mari ikuti langkah-langkah dibawah ini:
Buka file app/Providers/AuthServiceProvider.php, codenya seperti dibawah ini.
Buka file app/Http/Controllers/PostsController.php, tambahkan di function create, show dan destroy
kita coba Create maka hasilnya seperti berikut
kita coba Read Detail
kita coba Delete
Coba login dengan user yang role = ‘reader’, dan test di setiap function yang sudah di buat.
maka respon nya seperti dibawah ini.
coba Create
kemudian Read Detail
lalu Delete
Endpoint Untuk Public User
Untuk public user bisa melakukan Read All dan Read Detail. Untuk mengakomodir kebutuhan ini kita akan membuat routes dan controller baru.
Pertama buat dulu routes nya di Routes/web.php
Buat file controller baru dengan nama app/Http/Controllers/PublicController/PostsController.php
kemudian tambahkan code dibawah ini
Buka file app/Models/Post.php, tambahkan code dibawah ini sebelum penutup Class:
Buka file app/Models/User.php, tambahkan code dibawah ini sebelum penutup Class:
Buka url http://localhost:8000/public/2post di postman:
selesai
Subscribe to:
Posts (Atom)
Architecture Microservices
Microservice merupakan pengembangan dari Monolitik Arsitektur. Microservice ini merupakan kumpulan proses independen dan kecil yang ...
-
Tutorial ini melanjutkan project dari tutorial sebelum nya dengan nama ‘PHP Lumen Validation and Error Handling’. Pada tutorial ini kita ...
-
Muhammadridwan1401@gmail.com Tutorial ini melanjutkan project dari tutorial sebelum nya dengan nama ‘PHP Lumen Authentication’. Pada t...
-
Berikut ini adalah tutorial menggunakan CodeIgniter + Grocery Crud yang bisa membuat fungsi Sound CRUD dalam hitungan detik. Dalam tutor...