Cara menggunakan laravel mongodb crud
Show
Kali ini, kita akan coba implementasi Laravel Queue dengan simple project yang akan mengirimkan email secara teratur menggunakan sistem antrian/queue worker, project ini akan connect ke database MongoDB atau MySQL. Berikut hasil akhir dari tutorial ini berupa code github yang bisa langsung dicoba2 😄 😙
oiya, catatan ini dibuat dari hasil percobaan dan pengalaman pribadi penulis, berikut environment yang saya gunakan, bisa dilihat di file "php": "^7.1.3", Setup MongoDB di localhostSebelum setup Laravel Queue, kita butuh MongoDB yang aman untuk ̶d̶i̶r̶u̶s̶a̶k̶ testing. Lokasi ter-aman ya di localhost, berikut cara setup nya. Install Homebrew (abaikan jika sdh punya)Karena saya menggunakan mac os-x, lebih enak install Homebrew dulu, cukup copast dan jalankan script berikut di terminal /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" Tap dan install official MongoDB homebrewSelanjutnya, kita perlu untuk memastikan versi mongodb yang akan diinstall.
cus lanjut install. 😄
hasil success-nya kayak gini ya ==> Summary Start service dan mulai Connect MongoDB
Setelah service mongodb di-start, selanjutnya bisa menggunakan terminal dan ketik Hasil di terminal setelah berhasil connect, kemudian run command berikut untuk membuat collection baru bernama db.inventory.insertOne( tampilan di terminal setelah run command `mongo`Selamat, sampai sini kalian sudah berhasil setup MongoDB di localhost! yay 👍 👍 Create & configure Laravel projectBuat project Laravel baru bernama laravel-emailqueue
Konfigurasi project Laravel, ubah file Create endpoint /emailLangkah selanjutnya, buat controller baru namanya EmailController.
trus, tambahkan code berikut di routes/web.php Route::get('email', 'EmailController@sendEmail'); lanjut buat mailable class yg bernama SendMailable (akan di-generate otomatis di app/Mail/SendMailable.php)
nanti isi filenya kaya gini ya Sekarang, di file app/Http/Controller/EmailController.php add code berikut public function sendEmail() Selanjutnya run Fiuh,
bernafas dulu, 😅 disini kita sudah punya database MongoDB dan endpoint Setup & Konfigurasi Laravel QueueInstall driver MongoDB PHP dengan PECL (jika belum ada)
Install Laravel MongoDB by JenssegersRun command ini didalam project Laravel kita diatas ya
next, copy script ini didalam config/app.php Jenssegers\Mongodb\MongodbServiceProvider::class, Konfigurasi koneksi database ke MongoDB localhostDidalam config/database.php add code berikut didalam array 'mongodb' => [ Konfigurasi Laravel Queue agar connect ke MongoDBDidalam config/queue.php add code berikut didalam array 'mongodb' => [ Jangan lupa, untuk kedua konfigurasi diatas, file DB_CONNECTION=mongodb Create SendEmailJob untuk mengirimkan email
Nantinya, file ini akan ter-generate secara otomatis di app/Jobs/SendEmailJob.php . Disinilah kita mendefinisikan job apa yang akan dimasukkan ke dalam antrian / queue. isi file SendEmailJob.php seperti ini. Kalau kalian jeli, sebenarnya isinya sama kayak yg di EmailController.php sebelumnya yaitu Mail::to('')->send(new SendMailable()); Artinya, kita perlu pindah juga yang di EmailController.php dari yang sebelumnya begini public function sendEmail() jadi gini (dispatch job untuk dimasukkan ke dalam Queue — table jobs di MongoDB) public function sendEmail() Run & Test Laravel Queue MongoDBFinal step alias langkah terakhir, kita perlu test Hasil di browser (echo output saja) echo output di browserHasil di MongoDB (jobs akan masuk kedalam table test_mongo_queue collection jobs) ini sama kaya gambar diatas bangetTerakhir, run script ini di terminal lain untuk memproses jobs yang masih ada di antrian [2019-09-10 07:01:19][5d774a3e0d274b35b0321ca2] Processing: App\Jobs\SendEmailJob Setelah itu buka mailtrap inbox maka akan tampil email baru di inbox (hasil eksekusi dari jobs) — jika sukses, maka jobs di MongoDB akan diclear inbox mailtrap setelah mendapat email dari Laravel Queue |