laravel

Tutorial Penjadual Laravel

Tutorial Penjadual Laravel
Beberapa tugas harus dilakukan secara berkala dalam aplikasi apa pun, dan akan lebih efisien jika tugas tersebut dapat dilakukan secara otomatis. Kerangka Laravel menjadikan tugas-tugas jenis ini lebih mudah dengan menggunakan Laravel Scheduler. Menghantar e-mel pukal yang berkaitan dengan tawaran, mengoptimumkan data, menghasilkan laporan, menyimpan sandaran aplikasi, dan membuang pengguna yang tidak aktif adalah beberapa contoh umum tugas berulang yang dapat dilakukan dengan Laravel Scheduler. Laravel dapat melaksanakan tugas-tugas tertentu secara berkala dengan menggunakan pengurus tugas terbina dalam bernama Jagung pekerjaan. Fail konfigurasi dinamakan Tabung jagung digunakan oleh Jagung untuk menguruskan tugas penjadualan. Tutorial ini menunjukkan cara mengurus tugas berulang dengan membuat Jagung pekerjaan dan melaksanakan penjadualan tugas.

Prasyarat

Sebelum memulakan tutorial ini, pertama, selesaikan tugas berikut:

  1. Buat projek Laravel baru
  2. Siapkan sambungan pangkalan data
  3. Jalankan arahan migrate buat jadual pengguna
  4. 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 dev

Jalankan arahan berikut untuk membersihkan cache laluan.

laluan artisan $ php: jelas

Jalankan 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 mel

Buka 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: pengguna

Buka 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: pengguna

Periksa 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.

Distro Linux Terbaik untuk Permainan pada tahun 2021
Sistem operasi Linux telah jauh dari tampilan asal, ringkas dan berasaskan pelayan. OS ini telah berkembang pesat dalam beberapa tahun kebelakangan in...
Cara menangkap dan streaming sesi permainan anda di Linux
Pada masa lalu, bermain permainan hanya dianggap sebagai hobi, tetapi seiring dengan berjalannya waktu, industri permainan menyaksikan pertumbuhan yan...
Permainan Terbaik untuk Dimainkan dengan Penjejakan Tangan
Oculus Quest baru-baru ini memperkenalkan idea hebat penjejakan tangan tanpa pengawal. Dengan jumlah permainan dan aktiviti yang semakin meningkat yan...