{"id":24944,"date":"2021-05-21T16:29:00","date_gmt":"2021-05-21T13:29:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24944"},"modified":"2021-10-17T18:58:38","modified_gmt":"2021-10-17T15:58:38","slug":"kuidas-laraveli-sundmusi-ja-kuulajaid-oma-rakenduses-kasutada","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/et\/kuidas-laraveli-sundmusi-ja-kuulajaid-oma-rakenduses-kasutada\/","title":{"rendered":"Kuidas Laraveli s\u00fcndmusi ja kuulajaid oma rakenduses kasutada"},"content":{"rendered":"<p>Laraveli tuumaks on mitu lahedat funktsiooni. M\u00f5ned neist on ringh\u00e4\u00e4ling, failide salvestamine, teatised, s\u00fcndmused jne. K\u00f5ik need sisseehitatud funktsioonid aitavad arendajatel lihtsustada tavalisi ja keerulisi \u00fclesandeid.<\/p>\n<p>Selles artiklis k\u00e4sitleme Laraveli s\u00fcndmusi, mis v\u00f5imaldavad meil kuulaja registreerida rakenduses esinevate konkreetsete s\u00fcndmuste jaoks. Teisis\u00f5nu v\u00f5in \u00f6elda, et kasutaja on registreerunud, tellimus tehtud, toode lisatud, k\u00f5ik need on s\u00fcndmused. Ja kui peate p\u00e4rast neid s\u00fcndmusi m\u00f5ne toimingu k\u00e4ivitama, saate kuulajad registreerida. Laravel helistab konkreetsetele \u00fcritustele registreerunud kuulajatele automaatselt.<\/p>\n<p>Meie artikli jaoks rakendan kasutaja registreerimise \u00fcrituse. Kui kasutaja on rakendusse registreerunud, peaks s\u00fcsteem saatma talle tervitusmeili. Siin on kasutajate registreerimine s\u00fcndmus ja tervitusmeili saatmine on kuulaja.<\/p>\n<p>Seda \u00f6eldes vaatame, kuidas kasutada s\u00fcndmusi ja kuulajaid oma Laraveli rakenduses.<\/p>\n<h3>S\u00fcndmuste ja kuulajate registreerimine Laravelis<\/h3>\n<p>Laravel pakub <code>EventServiceProvider<\/code>faili, kuhu peate oma s\u00fcndmused ja kuulajad registreerima. Meie puhul peame kasutajate registreerimiseks lisama s\u00fcndmuse ja kuulaja. Niisiis, avage fail <code>EventServiceProvider.php<\/code>ja lisage sinna <code>UserRegistered<\/code>s\u00fcndmus.<\/p>\n<p><strong>app \/ Providers \/ EventServiceProvider.php<\/strong><\/p>\n<pre><code>...\n...\nclass EventServiceProvider extends ServiceProvider\n{\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* The event listener mappings for the application.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @var array\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0protected $listen = [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'AppEventsUserRegistered' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'AppListenersSendWelcomeEmail',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0];<\/code><\/pre>\n<p>Kasutaja saab sellele massiivile lisada nii palju s\u00fcndmusi kui vaja. J\u00e4rgmisena genereerige Laraveli s\u00fcndmused k\u00e4su k\u00e4ivitamisega:<\/p>\n<pre><code>php artisan event:generate<\/code><\/pre>\n<p>See k\u00e4sk loob kataloogi \u201eS\u00fcndmused&quot; ja \u201eKuulajad&#8221; kausta \u201erakendus&#8221;. Kaustas &#8216;rakendus \/ s\u00fcndmused&#8217; leiate faili <code>UserRegistered.php<\/code>. Samamoodi on <code>SendWelcomeEmail.php<\/code>fail kataloogis \u201erakendus \/ kuulajad&#8221;.<\/p>\n<h3>S\u00fcndmuste ja kuulajate m\u00e4\u00e4ratlemine<\/h3>\n<p>Olete n\u00fc\u00fcd valmis oma kasutaja registreeritud s\u00fcndmuse katlakiviga. Meie eesm\u00e4rk on saata kasutajale p\u00e4rast registreerumist tervitusmeil. E-kirja saatmiseks vajame kasutajainfot sisaldavat kasutajaobjekti. Juhul kui <code>UserRegistered<\/code>edastasin kasutaja objekti selle konstruktorile. See objekt edastatakse seej\u00e4rel kuulajale.<\/p>\n<p><strong>app \/ Events \/ UserRegistered.php<\/strong><\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppEvents;\n\u00a0\n....\nuse AppUser;\n\u00a0\nclass UserRegistered\n{\n\u00a0\u00a0\u00a0\u00a0use Dispatchable, InteractsWithSockets, SerializesModels;\n\u00a0\n\u00a0\u00a0\u00a0\u00a0public $user;\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Create a new event instance.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return void\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function __construct(User $user)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;user = $user;\u00a0\u00a0 \n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Kood, mis saadab kasutajale meilis\u00f5numi, l\u00e4heb kuulajafaili. Avage kuulaja <code>SendWelcomeEmail<\/code>ja kirjutage kood j\u00e4rgmiselt.<\/p>\n<p><strong>rakendus \/ Kuulajad \/ SendWelcomeEmail.php<\/strong><\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppListeners;\n\u00a0\n....\nuse Mail;\n\u00a0\nclass SendWelcomeEmail\n{\n\u00a0\u00a0\u00a0\u00a0....\n\u00a0\u00a0\u00a0\u00a0....\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Handle the event.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 UserRegistered\u00a0 $event\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return void\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function handle(UserRegistered $event)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$data = array('name' =&gt; $event-&gt;user-&gt;name, 'email' =&gt; $event-&gt;user-&gt;email, 'body' =&gt; 'Welcome to our website. Hope you will enjoy our articles');\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Mail::send('emails.mail', $data, function($message) use ($data) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$message-&gt;to($data['email'])\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-&gt;subject('Welcome to our Website');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$message-&gt;from('noreply@artisansweb.net');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>\u00dclalolevas failis kirjutasin meilis\u00f5numite saatmise koodi <code>handle<\/code>kuulaja klassi meetodisse. Seda seet\u00f5ttu, et <code>handle<\/code>meetod saab k\u00f5ne p\u00e4rast kasutaja registreerimiss\u00fcndmuse toimumist.<\/p>\n<p>Esimest parameetrit kasutasin ka e-posti meetodis &#8216;emails.mail&#8217;. See t\u00e4hendab, et peaksite looma <code>resources\/views\/emails\/mail.blade.php<\/code>faili.<\/p>\n<p><strong>mail.blade.php<\/strong><\/p>\n<pre><code>Hi &lt;strong&gt;{{ $name }}&lt;\/strong&gt;,\n\u00a0\n&lt;p&gt;{{ $body }}&lt;\/p&gt;<\/code><\/pre>\n<h3>L\u00f5puks helistage s\u00fcndmusele<\/h3>\n<p>Selles etapis olete k\u00f5ik koos oma s\u00fcndmuse ja kuulajaga seadnud. Viimane samm on s\u00fcndmuse helistamine sobivast kohast. Oletame, et kasutate kasutaja registreerimiseks &#8216;UserControllerit&#8217;. Nii <code>UserController<\/code>saate s\u00fcndmusest helistada j\u00e4rgmiselt.<\/p>\n<p><strong>app \/ Http \/ Controllers \/ UserController.php<\/strong><\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllers;\n\u00a0\n....\nuse AppEventsUserRegistered;\nuse AppUser;\n\u00a0\nclass UserController extends Controller\n{\n\u00a0\u00a0\u00a0\u00a0.....\n\u00a0\u00a0\u00a0\u00a0.....\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Store a newly created resource in storage.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 IlluminateHttpRequest\u00a0 $request\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return IlluminateHttpResponse\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function store(Request $request)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$user = User::create([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'name' =&gt; $request-&gt;input('name'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'email' =&gt; $request-&gt;input('email'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'password' =&gt; bcrypt($request-&gt;input('password')),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ call our event here\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0event(new UserRegistered($user));\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return $user;\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>N\u00fc\u00fcd, kui kasutaja on registreerunud, kutsub \u00fclaltoodud kood k\u00f5ne \u201eUserRegistered&#8221; s\u00fcndmusele, mis l\u00f5puks kuulaja kutsub. Seej\u00e4rel saadab kuulaja kasutajale tervitusmeili.<\/p>\n<p>Loodan, et saate aru, kuidas kasutada s\u00fcndmusi ja kuulajaid oma Laraveli rakenduses. Palun jagage oma m\u00f5tteid ja ettepanekuid allpool olevas kommentaaride jaotises.<\/p>\n<h4>seotud artiklid<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/laraveli-passi-kasutamine-rest-api-autentimiseks\/\" title=\"Laraveli passi kasutamine REST API autentimiseks\" >Laraveli passi kasutamine REST API autentimiseks<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/e-kirjade-saatmine-gmaili-smtp-serveri-kaudu-laravelis\/\" title=\"E-kirjade saatmine Gmaili SMTP-serveri kaudu Laravelis\" >E-kirjade saatmine Gmaili SMTP-serveri kaudu Laravelis<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/kasutajate-registreerimine-ja-sisselogimissusteem-laravelis\/\" title=\"Kasutajate registreerimine ja sisselogimiss\u00fcsteem Laravelis\" >Kasutajate registreerimine ja sisselogimiss\u00fcsteem Laravelis<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kas otsite Laraveli s\u00fcndmuste ja kuulajate rakendamist? Selles artiklis k\u00e4sitleme, kuidas registreerida, m\u00e4\u00e4ratleda ja kasutada Laraveli s\u00fcndmusi ja kuulajaid.<\/p>\n","protected":false},"author":1,"featured_media":22025,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[498],"tags":[842],"class_list":["post-24944","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel2-5","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/24944","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/comments?post=24944"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/24944\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media\/22025"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media?parent=24944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/categories?post=24944"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/tags?post=24944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}