下面由Laravel框架教程栏目给大家介绍Laravel 事件&异步处理,希望对需要的朋友有所帮助!
生成事件
php aritsan make:event Test
事件和监听 listen 是一对多的管理,一个事件对应多个响应事件
定一个$data
属性,赋值触发事件时传递的数据。
public $data; /** * Create a new event instance. * * @return void */ public function __construct($data) { $this->data = $data; }
如何在业务中触发?
public function test(){ Test::dispatch('你好事件'); }
添加监听者
php artisan make:listener TestLisenter
namespace App\Lisenter;use App\Events\Test;class TestLisenter { public function handle(Test $test) { var_dump($test->data); //打印:你好事件 }}
如何接受 “你好事件?”
这个时候我们要创建, listen 对象来处理业务逻辑
laravel 有提供两种方案:
方案一:
在EventServiceProvider
添加$listen 数组信息比如:
/** * 应用程序的事件监听器映射 * * @var array */protected $listen = [ 'App\Events\Test' => [ 'App\Listeners\TestListenter', ],];
方案二:
让系统自动处理,遍历指定目录
需要在EventServiceProvider
添加:
/** * 确定是否应自动发现事件和侦听器 * * @return bool */public function shouldDiscoverEvents(){ return true;}
/** * 获取应该用于发现事件的监听器的目录 * * @return array */ protected function discoverEventsWithin() { return [ $this->app->path('Lisenter'),//事件关联的监听器目录APP/Lisenters $this->app->path('Lisenter/test'),//事件关联的监听器目录APP/Lisenters/test ]; }
系统会自动的匹配Listen
此时, 已经完成了事件的流程。如果没有成功或者想知道更多事件的处理,比如,延时队列,判断是否要加入事件,处理失败之后的处理等等:参考文档
事件的队列处理
如果没有接触laravel 的队列的小伙伴,先参考: Laravel Jobs
只需要在 TestLisenter 实现 ShouldQueue 的接口即可
长这样:
namespace App\Lisenter;use App\Events\Test;use Illuminate\Contracts\Queue\ShouldQueue;class TestLisenter implements ShouldQueue{ public function handle(Test $test) { var_dump($test->data); //打印:你好事件 }}
Atas ialah kandungan terperinci 关于 Laravel 事件&异步处理. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Projek Pembangunan Laravel telah dipilih kerana fleksibiliti dan kuasa untuk memenuhi keperluan saiz dan kerumitan yang berbeza. Laravel menyediakan sistem penghalaan, eloquentorm, baris perintah artisan dan fungsi lain, menyokong pembangunan dari blog mudah ke sistem peringkat perusahaan yang kompleks.

Perbandingan antara Laravel dan Python dalam persekitaran pembangunan dan ekosistem adalah seperti berikut: 1. Persekitaran pembangunan Laravel adalah mudah, hanya PHP dan komposer diperlukan. Ia menyediakan pelbagai pakej lanjutan seperti Laravelforge, tetapi penyelenggaraan pakej lanjutan mungkin tidak tepat pada masanya. 2. Persekitaran pembangunan Python juga mudah, hanya Python dan PIP diperlukan. Ekosistem adalah besar dan meliputi pelbagai bidang, tetapi pengurusan versi dan pergantungan mungkin kompleks.

Bagaimanakah Laravel memainkan peranan dalam logik backend? Ia memudahkan dan meningkatkan pembangunan backend melalui sistem penghalaan, eloquentorm, pengesahan dan kebenaran, acara dan pendengar, dan pengoptimuman prestasi. 1. Sistem penghalaan membolehkan definisi struktur URL dan logik pemprosesan permintaan. 2.eloquentorm memudahkan interaksi pangkalan data. 3. Sistem pengesahan dan kebenaran adalah mudah untuk pengurusan pengguna. 4. Acara dan pendengar melaksanakan struktur kod yang ditambah dengan longgar. 5. Pengoptimuman prestasi meningkatkan kecekapan aplikasi melalui caching dan beratur.

Populariti Laravel termasuk proses pembangunan mudahnya, menyediakan persekitaran pembangunan yang menyenangkan, dan ciri -ciri yang kaya. 1) Ia menyerap falsafah reka bentuk Rubyonrails, menggabungkan fleksibiliti PHP. 2) Menyediakan alat seperti eloquentorm, enjin templat bilah, dan lain -lain untuk meningkatkan kecekapan pembangunan. 3) Mekanisme suntikan seni bina dan ketergantungan MVC menjadikan kod lebih modular dan boleh diuji. 4) Menyediakan alat debugging yang kuat dan kaedah pengoptimuman prestasi seperti sistem caching dan amalan terbaik.

Kedua-dua Django dan Laravel adalah kerangka kerja penuh. Django sesuai untuk pemaju python dan logik perniagaan yang kompleks, manakala Laravel sesuai untuk pemaju PHP dan sintaks elegan. 1.Django didasarkan pada python dan mengikuti falsafah "lengkap bateri", sesuai untuk perkembangan pesat dan kesesuaian yang tinggi. 2. Laravel didasarkan pada PHP, menekankan pengalaman pemaju, dan sesuai untuk projek kecil dan sederhana.

PHP dan Laravel tidak dapat dibandingkan secara langsung, kerana Laravel adalah rangka kerja berasaskan PHP. 1.Php sesuai untuk projek kecil atau prototaip cepat kerana ia mudah dan langsung. 2. Laravel sesuai untuk projek besar atau pembangunan yang cekap kerana ia menyediakan fungsi dan alat yang kaya, tetapi mempunyai lengkung pembelajaran yang curam dan mungkin tidak sebaik php tulen.

LaravelisabackendFramWorkBuiltonPHP, Direka ForweBapplicationDevelopment.itfocusesonServer-Sidelogic, DatabaseManagement, andApplications Structure, andCanbeIntegratedWithFrontendTechnologiesLikeVue.jsorreactorfull-stackdevelopment.

Artikel ini membincangkan membuat dan menggunakan arahan pisau tersuai di Laravel untuk meningkatkan templat. Ia meliputi arahan yang menentukan, menggunakannya dalam templat, dan menguruskannya dalam projek besar, menonjolkan manfaat seperti kebolehgunaan semula kod yang lebih baik dan r yang lebih baik dan r


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver Mac版
Alat pembangunan web visual

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),