Sunday, July 26, 2020

Malas Coding dengan menggunakan Framework Laravel dan LazyCrud Package

Asal Muasal lazycrud

Terkadang kita selalu melakukan hal yang hampir sama dalam coding, gitu-gitu aja dan hanya berbeda di property atau beberapa bagian saja. Selama kita sudah implentasi design pattern yang pas buat kita, maka struktur dan lain-lain hampir sama. Bahkan kita sampai bosan melakukan itu. 

Dan berasal dari situ, maka terpikir untuk melakukan ide males coding dengan membuat sebuah package untuk laravel yaitu lazycrud. Dengan menggunakan package ini, maka proses development bisa dipangkas sampai dengan 75%. Bahkan bisa lebih jika hanya membuat CRUD table sederhana. 

Bagaimana Cara menggunakannya?

Membuat table di laravel dengan migration

Pertama-tama buatlah migration dilaravel dengan nama table dan struktur yang kita inginkan. Disini penulis mencoba buat table namanya banks dengan DDL nya sebagai berikut:


Setelah membuat migration table banks, run php artisan migrate untuk membuat table itu didatabase. Pastikan struktur dan type data nya sesuai yang diharapkan.

Require webappid/lazycrud di project.

Lakukan req lazycrud di project yang diinginkan sebagai development dependency nya. dengan perintah berikut:
composer require webappid/lazycrud --dev 
Karena by default lazycrud ini juga req pacakge webappid/laravel-user, biasanya penulis suka memindah User class bawaan laravel ke folder Models dan mengganti extends nya dari bawaan laravel ke User class bawaan laravel-user seperti berikut:


Selain itu ganti config di auth laravel untuk referensi User class nya: menjadi seperti di bawah ini:

Membuat CRUD dengan LazyCrud

Setelah semua persiapan selesai, tinggal run perintah artisan berikut dengan menambahkan nama Model Class nya. Misal nama table nya adalah banks maka nama class nya adalah Bank.
php artisan lazy:crud Bank
Progressnya kurang lebih seperti ini:


Abaikan yang error, karena untuk versi saat ini, error hanya memberikan info kalau nama class nya sudah terbuat. 

Untuk pertamakali lakukan dump-autoload karena ada kemungkinan beberapa class belum ter-build dengan cara seperti ini:
composer dump-autoload

Clas-class buatan LazyCrud

File-file yang digenerate sudah terbagi-bagi menjadi beberapa folder seperti Folder di Models untuk Model Class


File-file di folder di Repositories Untuk Repository Class karena LazyCrud implementasi Repository Pattern. 


File-file difolder Services sebagai class-class untuk penghubung antara controller dan repository


 File-file di folder Controllers sebagai Default controller nya




File-file di folder Requests untuk kebutuhan input validatation.


File-file yang ada di folder tests untuk kebutuhan unit test dan features test dasar laravel:


Serta laravel route yang sudah teregisterkan di file lazy-web by default seperti di bawah ini:


Dan otomatis melakukan inject script ke route file laravel di line paling bawah:


Untuk mempercantik route, lakukan perintah ini:

php artisan lazy:format
Supaya menghasilkan route format seperti ini:


Untuk melakukan testing apakah hasil crud nya sesuai harapan atau tidak, bisa run unit test dari class TestCase atau dari masing2 class. Tapi karena dari contoh tersebut ada 1 column yang menggunakan type enum, Lazy crud saat ini belum mampu untuk automatic create data dummy testing sesuai harapan, makanya perlu di edit di bagian getDummy untuk create faker status serperti di bawah ini:


Menjadi seperti ini:


Kemudian run unit test, jika semua lancar maka akan menghasilkan zero error di unit test


So, gampang kan? ga perlu pusing-pusing lagi untuk menulis coding yang berulang-ulang. Tinggal LazyCrud dan biarkan artisan menyiapkan segalanya untuk mu, dan custom-lah sesuai kebutuhan.

package dibuat dengan menggunakan LazyCrud:

webappid/bank

Happy Coding and Lazy Code

Share this

1 Response to "Malas Coding dengan menggunakan Framework Laravel dan LazyCrud Package"