Prasyarat
Sebelum memulakan tutorial ini, pertama, selesaikan tugas berikut:
- Buat projek Laravel baru
- Siapkan sambungan pangkalan data
- Jalankan arahan migrate buat jadual pengguna
- Siapkan konfigurasi untuk menghantar e-mel (SMTP digunakan di sini untuk menghantar e-mel.)
Laksanakan Pengesahan Lalai
Pertama, laksanakan sistem pengesahan pengguna lalai Laravel untuk menyelesaikan tugas penjadualan yang ditunjukkan dalam tutorial ini. Jalankan arahan berikut dari terminal untuk melaksanakan pengesahan Laravel lalai menggunakan Vue.
$ komposer memerlukan laravel / ui$ php artisan ui vue -auth
Jalankan arahan berikut untuk menyusun perancah baru untuk mendapatkan kandungan yang dikemas kini.
$ npm pasang && npm jalankan devJalankan arahan berikut untuk membersihkan cache laluan.
laluan artisan $ php: jelasJalankan arahan berikut untuk memulakan pelayan pengembangan Laravel dan periksa sama ada sistem pengesahan pengguna lalai berfungsi.
$ php artisan berkhidmat
Buka mana-mana penyemak imbas dan jalankan URL berikut di penyemak imbas. Sekiranya log masuk dan daftar pautan muncul dan berfungsi dengan baik, maka pelaksanaan pengesahan lalai telah selesai dengan baik.
http: // localhost: 8000
Buat Kelas yang Dapat Diperolehi dan Perintah Artisan
Banyak pengguna baru akan membuat akaun setiap hari dan akan melakukan banyak tugas yang berkaitan dengan pengguna yang berdaftar ketika projek ini dalam talian. Kadang kala, aplikasi tersebut perlu mengetahui berapa banyak pengguna yang membuat akaun setiap hari. Sekiranya maklumat ini diperlukan secara berkala, maka lebih baik melaksanakan pertanyaan tertentu setelah selang waktu biasa. Perintah Laravel digunakan di sini untuk mendapatkan maklumat pengguna yang sedang didaftarkan dan kelas yang boleh dihantar digunakan untuk menghantar maklumat tersebut melalui e-mel kepada pentadbir atau orang yang ditentukan.
Jalankan arahan berikut untuk membuat kelas yang boleh dihantar untuk menghantar e-mel. Ia akan membuat fail bernama SendUsersList.php di lokasi aplikasi / Mel.
$ php artisan make: mel SendUsersList melBuka fail dan ubah kandungannya, seperti dalam kod berikut.
ruang nama Aplikasi \ Mel;gunakan Illuminate \ Bus \ Queueable;
gunakan Illuminate \ Contracts \ Queue \ ShouldQueue;
gunakan Illuminate \ Mail \ Mailable;
gunakan Illuminate \ Queue \ SerializesModels;
kelas SendUsersList meluaskan Boleh didapati
gunakan Queueable, SerializesModels;
/ * Menyatakan pemboleh ubah array * /
public $ userList = array ();
/ **
* Buat contoh mesej baru.
*
* @kembali tidak sah
* /
fungsi awam __konstruk ($ userList)
/ * Memulakan pemboleh ubah array dengan pemboleh ubah yang dilalui oleh
penciptaan objek kelas. * /
$ this-> userList = $ userList;
/ **
* Bina mesej.
*
* @kembalikan $ ini
* /
pembinaan fungsi awam ()
/ * Diaplay fail pandangan dengan nilai pemboleh ubah array * /
kembalikan $ ini-> paparan ('registerList') -> dengan ('userList', $ this-> userList);
Jalankan arahan berikut untuk membuat arahan Laravel khusus yang dinamakan Daftar Daftar Pengguna, yang akan melaksanakan pertanyaan untuk mendapatkan senarai maklumat pengguna berdaftar dalam setiap hari. Arahan akan membuat fail bernama DaftarPenggunaSenarai.php di lokasi aplikasi / Perintah.
$ php artisan make: command RegisterUsersList --command = berdaftar: penggunaBuka fail dan ubah kandungan dengan kod berikut untuk menghantar senarai pengguna sistem semasa yang berdaftar ke alamat e-mel tertentu.
namespace App \ Console \ Perintah;gunakan arahan Illuminate \ Console \ Command;
/ * Import pakej yang diperlukan * /
gunakan Surat;
gunakan App \ Mail \ SendUsersList;
gunakan DB;
gunakan Carbon \ Carbon;
gunakan App \ Console \ Commands \ DateTime;
kelas RegisterUsersList meluaskan Perintah
/ **
* Nama dan tandatangan arahan konsol.
*
* rentetan @var
* /
/ * Tambah nilai tandatangan * /
$ signature yang dilindungi = 'berdaftar: pengguna';
/ **
* Penerangan arahan konsol.
*
* rentetan @var
* /
dilindungi $ keterangan = 'Senarai pengguna berdaftar';
/ **
* Buat contoh arahan baru.
*
* @kembali tidak sah
* /
fungsi awam __konstruk ()
ibu bapa :: __ konstruk ();
/ **
* Jalankan arahan konsol.
*
* @return int
* /
pemegang fungsi awam ()
/ * Baca tarikh sistem semasa * /
$ hari ini = Carbon :: now () -> toDateString ();
/ * Dapatkan senarai maklumat pengguna yang didaftarkan
pada tarikh sistem semasa * /
$ current_registered_users =
DB :: table ('users') -> whereDate ('create_at', $ hari ini) -> get () -> toArray ();
/ * Buat objek kelas yang boleh dihantar dengan pemboleh ubah array
yang mengandungi senarai pengguna yang sedang didaftarkan * /
$ email = SendUsersList baru ($ current_registered_users);
/ * Hantar e-mel menggunakan kelas Mel * /
Mel :: ke ('alamat e-mel penerima') -> hantar ($ e-mel);
Siapkan Jadual untuk Melaksanakan Perintah
Buka Kernel.php fail dari lokasi aplikasi / Konsol dan ubah kandungan dengan kod berikut. Anda boleh menetapkan pelbagai jenis pilihan kekerapan jadual. Anda boleh mendapatkan senarai dari pautan ini. Di sini, jadual setiap jam digunakan.
namespace App \ Console;gunakan Illuminate \ Console \ Penjadualan \ Jadual;
gunakan Illuminate \ Foundation \ Console \ Kernel sebagai ConsoleKernel;
kelas Kernel meluaskan ConsoleKernel
/ **
* Perintah Artisan yang disediakan oleh aplikasi anda.
*
* array @var
* /
/ * Mengenal pemboleh ubah perintah $ * /
perintah $ dilindungi = [
'App \ Console \ Commands \ RegisterUsersList',
];
/ **
* Tentukan jadual arahan aplikasi.
*
* @param \ Illuminate \ Console \ Penjadualan \ Jadual $ jadual
* @kembali tidak sah
* /
jadual fungsi terlindung (Jadual $ jadual)
/ * Tetapkan jadual setiap jam * /
$ jadual-> perintah ('didaftarkan: pengguna') -> setiap jam ();
/ **
* Daftarkan perintah untuk aplikasi.
*
* @kembali tidak sah
* /
perintah fungsi dilindungi ()
$ ini-> muat (__ DIR__.'/ Perintah');
memerlukan base_path ('laluan / konsol.php ');
Buat Paparan
Buat Daftar berdaftar.bilah.php lihat fail dengan kod berikut.
@if (hitungan ($ userList)> 0)
Senarai pengguna yang didaftarkan hari ini diberikan di bawah:
@foreach ($ userList sebagai $ pengguna)
$ user-> name
@endforeach
@selamat
Belum ada pengguna yang didaftarkan hari ini.
@endif
Jalankan arahan:
Jalankan arahan berikut untuk membersihkan cache.
cache artisan $ php: kosongkan$ php artisan config: cache
Jalankan perintah artisan berikut dari terminal untuk melaksanakan perintah khas yang dibuat sebelumnya dan periksa outputnya.
$ php artisan berdaftar: penggunaPeriksa alamat e-mel penerima untuk mengetahui outputnya. Output berikut akan muncul jika tidak ada pengguna yang dibuat.
Buat akaun pengguna baru dan periksa semula e-melnya.
Kesimpulannya
Penjadual Laravel menjadikan tugas berulang lebih mudah dilakukan untuk aplikasi. Setelah membaca tutorial ini, pembaca sekarang harus mempunyai pemahaman yang jelas tentang konsep membuat perintah khusus dan melaksanakan tugas automatik menggunakan Laravel Scheduler.