Prasyarat
Sebelum memulai tutorial ini, selesaikan dulu tugas-tugas berikut:
- Buat proyek Laravel baru
- Siapkan koneksi database
- Jalankan perintah migrasi buat tabel pengguna
- Siapkan konfigurasi untuk mengirim email (SMTP digunakan di sini untuk mengirim email.)
Terapkan Otentikasi Default
Pertama, terapkan sistem otentikasi pengguna default Laravel untuk menyelesaikan tugas penjadwalan yang ditunjukkan dalam tutorial ini. Jalankan perintah berikut dari terminal untuk mengimplementasikan otentikasi Laravel default menggunakan Vue.
$ komposer membutuhkan laravel/ui$ php artisan ui vue -auth
Jalankan perintah berikut untuk mengkompilasi perancah baru untuk mendapatkan konten yang diperbarui.
$npm install && npm run devJalankan perintah berikut untuk menghapus cache rute.
$ php artisan route: clearJalankan perintah berikut untuk memulai server pengembangan Laravel dan periksa apakah sistem otentikasi pengguna default berfungsi.
$ php artisan serve
Buka browser apa saja dan jalankan URL berikut di browser. jika Gabung dan daftar link muncul dan berfungsi dengan baik, maka implementasi otentikasi default telah selesai dengan baik.
http://localhost:8000
Buat Kelas Mailable dan Perintah Artisan
Banyak pengguna baru akan membuat akun setiap hari dan akan melakukan banyak tugas terkait dengan pengguna terdaftar saat proyek online. Terkadang, aplikasi perlu mengetahui berapa banyak pengguna yang membuat akun setiap hari. Jika informasi ini diperlukan secara teratur, maka lebih baik untuk mengeksekusi kueri tertentu setelah interval reguler. Perintah Laravel digunakan di sini untuk mendapatkan informasi dari pengguna yang saat ini terdaftar dan kelas yang dapat dikirim digunakan untuk mengirim informasi itu melalui email ke admin atau orang tertentu.
Jalankan perintah berikut untuk membuat kelas mailable untuk mengirim email. Ini akan membuat file bernama Kirim Daftar Pengguna.php di lokasi aplikasi/Mail.
$ php artisan make:mail SendUsersListBuka file dan ubah kontennya, seperti pada kode berikut.
aplikasi namespace\Mail;gunakan Illuminate\Bus\Queueable;
gunakan Illuminate\Contracts\Queue\ShouldQueue;
gunakan Illuminate\Mail\Mailable;
gunakan Illuminate\Queue\SerializesModels;
kelas SendUsersList memperluas Mailable
gunakan Queueable, SerializesModels;
/* Mendeklarasikan variabel array */
publik $userList= array();
/**
* Buat contoh pesan baru.
*
* @kembali batal
*/
fungsi publik __construct($userList)
/* Inisialisasi variabel array dengan variabel yang dilewatkan oleh
pembuatan objek kelas. */
$this->userList = $userList;
/**
* Bangun pesannya.
*
* @kembalikan $ini
*/
membangun fungsi publik ()
/* Diaplay file view dengan nilai-nilai variabel array */
return $this->view('registeredList')->with('userList',$this->userList);
Jalankan perintah berikut untuk membuat perintah Laravel khusus bernama Daftar Daftar Pengguna, yang akan menjalankan kueri untuk mendapatkan daftar informasi pengguna terdaftar di setiap hari. Perintah akan membuat file bernama Daftar Daftar Pengguna.php di lokasi aplikasi/Perintah.
$ php artisan make:command RegisterUsersList --command=registered:usersBuka file dan ubah konten dengan kode berikut untuk mengirim daftar pengguna terdaftar saat ini dari sistem saat ini ke alamat email tertentu.
namespace App\Console\Commands;gunakan Illuminate\Console\Command;
/* Impor paket yang diperlukan */
menggunakan Surat;
gunakan App\Mail\SendUsersList;
menggunakan DB;
gunakan Karbon\Karbon;
gunakan App\Console\Commands\DateTime;
class RegisterUsersList memperluas Command
/**
* Nama dan tanda tangan dari perintah konsol.
*
* @var string
*/
/* Tambahkan nilai tanda tangan */
protected $signature = 'terdaftar:pengguna';
/**
* Deskripsi perintah konsol.
*
* @var string
*/
protected $description = 'Daftar pengguna terdaftar';
/**
* Buat contoh perintah baru.
*
* @kembali batal
*/
fungsi publik __construct()
induk::__construct();
/**
* Jalankan perintah konsol.
*
* @kembali ke
*/
pegangan fungsi publik()
/* Membaca tanggal sistem saat ini */
$hari ini =Karbon::sekarang()->toDateString();
/* Dapatkan daftar informasi pengguna yang terdaftar
pada tanggal sistem saat ini */
$current_registered_users =
DB::table('users')->whereDate('created_at', $today)->get()->toArray();
/* Buat objek dari kelas mailable dengan variabel array
yang berisi daftar pengguna yang terdaftar saat ini */
$email = new SendUsersList($current_registered_users);
/* Mengirim email menggunakan kelas Mail */
Mail::to('alamat email penerima')->send($email);
Atur Jadwal untuk Menjalankan Perintah
Buka Inti.php file dari lokasi aplikasi/Konsol dan ubah konten dengan kode berikut following. Anda dapat mengatur berbagai jenis opsi frekuensi jadwal. Anda bisa mendapatkan daftarnya dari tautan ini. Di sini, jadwal per jam digunakan.
namespace App\Console;gunakan Illuminate\Console\Scheduling\Schedule;
gunakan Illuminate\Foundation\Console\Kernel sebagai ConsoleKernel;
kelas Kernel memperluas ConsoleKernel
/**
* Perintah Artisan disediakan oleh aplikasi Anda.
*
* @var array
*/
/* Inisialisasi variabel $commands */
dilindungi $perintah = [
'App\Console\Commands\RegisterUsersList',
];
/**
* Tentukan jadwal perintah aplikasi.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @kembali batal
*/
jadwal fungsi yang dilindungi(Jadwal $jadwal)
/* Mengatur jadwal setiap jam */
$schedule->command('registered:users')->hourly();
/**
* Daftarkan perintah untuk aplikasi.
*
* @kembali batal
*/
perintah fungsi yang dilindungi ()
$this->load(__DIR__.'/Perintah');
memerlukan base_path('rute/konsol.php');
Buat Tampilan
Buat terdaftarDaftar.Pedang.php lihat file dengan kode berikut.
@if (hitung($userList) > 0)
Daftar pengguna yang terdaftar hari ini diberikan di bawah ini:
@foreach($userList sebagai $user)
$pengguna->nama
@endforeach
@lain
Belum ada pengguna yang terdaftar hari ini.
@berakhir jika
Jalankan perintah:
Jalankan perintah berikut untuk menghapus cache.
$ php artisan cache: bersihkan$ php artisan config: cache
Jalankan perintah artisan berikut dari terminal untuk menjalankan perintah khusus yang dibuat sebelumnya dan periksa hasilnya.
$ php artisan terdaftar: penggunaPeriksa alamat email penerima untuk mengetahui hasilnya. Output berikut akan muncul jika tidak ada pengguna yang dibuat.
Buat akun pengguna baru dan periksa email lagi.
Kesimpulan
Penjadwal Laravel membuat tugas berulang lebih mudah dilakukan untuk aplikasi. Setelah membaca tutorial ini, pembaca sekarang harus memiliki pemahaman yang jelas tentang konsep membuat perintah khusus dan mengimplementasikan tugas otomatis menggunakan Laravel Scheduler.