{"id":24581,"date":"2021-05-21T16:39:00","date_gmt":"2021-05-21T13:39:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24581"},"modified":"2021-10-17T20:46:29","modified_gmt":"2021-10-17T17:46:29","slug":"kuinka-kayttaa-laravel-tapahtumia-ja-kuuntelijoita-sovelluksessasi","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fi\/kuinka-kayttaa-laravel-tapahtumia-ja-kuuntelijoita-sovelluksessasi\/","title":{"rendered":"Kuinka k\u00e4ytt\u00e4\u00e4 Laravel-tapahtumia ja kuuntelijoita sovelluksessasi"},"content":{"rendered":"<p>Laravelin ytimess\u00e4 on useita hienoja ominaisuuksia. Jotkut niist\u00e4 ovat l\u00e4hetys, tiedostotallennus, ilmoitukset, tapahtumat jne. Jokainen n\u00e4ist\u00e4 sis\u00e4\u00e4nrakennetuista ominaisuuksista auttaa kehitt\u00e4ji\u00e4 yksinkertaistamaan yleisi\u00e4 ja monimutkaisia \u200b\u200bteht\u00e4vi\u00e4.<\/p>\n<p>T\u00e4ss\u00e4 artikkelissa keskustelemme Laravel-tapahtumista, joiden avulla voimme rekister\u00f6id\u00e4 kuuntelijan tiettyihin sovelluksessa esiintyviin tapahtumiin. Toisin sanoen voin sanoa, ett\u00e4 k\u00e4ytt\u00e4j\u00e4 on rekister\u00f6ity, tilaus tehty, tuote lis\u00e4tty, kaikki n\u00e4m\u00e4 ovat tapahtumia. Ja jos joudut k\u00e4ynnist\u00e4m\u00e4\u00e4n jonkin tapahtuman n\u00e4iden tapahtumien j\u00e4lkeen, voit rekister\u00f6id\u00e4 kuuntelijat. Laravel soittaa automaattisesti tiettyihin tapahtumiin rekister\u00f6ityneille kuulijoille.<\/p>\n<p>Artikkeliamme varten toteutan tapahtuman k\u00e4ytt\u00e4jien rekister\u00f6imiseksi. Kun k\u00e4ytt\u00e4j\u00e4 on rekister\u00f6itynyt sovellukseen, j\u00e4rjestelm\u00e4n tulisi l\u00e4hett\u00e4\u00e4 heille tervetuloviesti. T\u00e4ss\u00e4 k\u00e4ytt\u00e4j\u00e4n rekister\u00f6inti on tapahtuma ja tervetuloviestin l\u00e4hett\u00e4minen on kuuntelija.<\/p>\n<p>T\u00e4m\u00e4n j\u00e4lkeen katsotaanpa, miten tapahtumia ja kuuntelijoita voidaan k\u00e4ytt\u00e4\u00e4 Laravel-sovellukseen.<\/p>\n<h3>Tapahtumien ja kuuntelijoiden rekister\u00f6inti Laraveliin<\/h3>\n<p>Laravel tarjoaa <code>EventServiceProvider<\/code>tiedoston, johon sinun on rekister\u00f6it\u00e4v\u00e4 tapahtumat ja kuuntelijat. Meid\u00e4n tapauksessamme meid\u00e4n on lis\u00e4tt\u00e4v\u00e4 tapahtuma ja kuuntelija k\u00e4ytt\u00e4jien rekister\u00f6inti\u00e4 varten. Joten avaa tiedosto <code>EventServiceProvider.php<\/code>ja lis\u00e4\u00e4 siihen <code>UserRegistered<\/code>tapahtuma.<\/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>K\u00e4ytt\u00e4j\u00e4 voi lis\u00e4t\u00e4 t\u00e4h\u00e4n ryhm\u00e4\u00e4n niin monta tapahtumaa vaatimuksista riippuen. Luo seuraavaksi Laravel-tapahtumat suorittamalla komento:<\/p>\n<pre><code>php artisan event:generate<\/code><\/pre>\n<p>T\u00e4m\u00e4 komento luo Tapahtumat- ja Kuunteluhakemistot &#8217;App&#8217; -kansioon. Sovellus \/ Tapahtumat-hakemistosta l\u00f6yd\u00e4t tiedoston <code>UserRegistered.php<\/code>. Vastaavasti <code>SendWelcomeEmail.php<\/code>tiedosto on hakemistossa &#8217;Sovellukset \/ Kuuntelijat&#8217;.<\/p>\n<h3>Tapahtumien ja kuuntelijoiden m\u00e4\u00e4rittely<\/h3>\n<p>Olet nyt valmis kattilalevyll\u00e4 k\u00e4ytt\u00e4j\u00e4n rekister\u00f6im\u00e4\u00e4n tapahtumaan. Tavoitteenamme on l\u00e4hett\u00e4\u00e4 tervetuloviesti k\u00e4ytt\u00e4j\u00e4lle rekister\u00f6innin j\u00e4lkeen. S\u00e4hk\u00f6postin l\u00e4hett\u00e4miseen tarvitaan k\u00e4ytt\u00e4j\u00e4objekti, joka sis\u00e4lt\u00e4\u00e4 k\u00e4ytt\u00e4j\u00e4n tiedot. Jos <code>UserRegistered<\/code>v\u00e4litin k\u00e4ytt\u00e4j\u00e4objektin sen rakentajalle. T\u00e4m\u00e4 objekti siirtyy sitten kuuntelijalle.<\/p>\n<p><strong>app \/ Tapahtumat \/ 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>Koodi, joka l\u00e4hett\u00e4\u00e4 s\u00e4hk\u00f6postin k\u00e4ytt\u00e4j\u00e4lle, menee kuuntelijatiedostoon. Avaa kuuntelija <code>SendWelcomeEmail<\/code>ja kirjoita koodi seuraavasti.<\/p>\n<p><strong>sovellus \/ Kuuntelijat \/ 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>Kirjoitin yll\u00e4 olevaan tiedostoon s\u00e4hk\u00f6postin l\u00e4hett\u00e4misen koodin <code>handle<\/code>kuuntelijaluokan menetelm\u00e4\u00e4n. T\u00e4m\u00e4 johtuu siit\u00e4, ett\u00e4 <code>handle<\/code>menetelm\u00e4 saa puhelun k\u00e4ytt\u00e4j\u00e4n rekister\u00f6intitapahtuman esiintymisen j\u00e4lkeen.<\/p>\n<p>K\u00e4ytin ensimm\u00e4ist\u00e4 parametria my\u00f6s nimell\u00e4 &quot;emails.mail&quot; Mail-menetelm\u00e4ss\u00e4. Se tarkoittaa, ett\u00e4 sinun pit\u00e4isi luoda <code>resources\/views\/emails\/mail.blade.php<\/code>tiedosto.<\/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>Lopuksi soita tapahtumaan<\/h3>\n<p>T\u00e4ss\u00e4 vaiheessa asetat kaikki tapahtuman ja kuuntelijan kanssa. Viimeinen vaihe on kutsua tapahtuma sopivasta paikasta. Oletetaan, ett\u00e4 rekister\u00f6it k\u00e4ytt\u00e4j\u00e4n &#8217;UserControllerilla&#8217;. Joten alkaen <code>UserController<\/code>, voit soittaa tapahtumaan seuraavasti.<\/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>Nyt kun k\u00e4ytt\u00e4j\u00e4 on rekister\u00f6itynyt, yll\u00e4 oleva koodi antaa kutsun &#8217;UserRegistered&#8217; -tapahtumaan, joka lopulta kutsuu kuuntelijan. Kuuntelija l\u00e4hett\u00e4\u00e4 sitten tervetuloviestin k\u00e4ytt\u00e4j\u00e4lle.<\/p>\n<p>Toivon, ett\u00e4 ymm\u00e4rr\u00e4t kuinka k\u00e4ytt\u00e4\u00e4 tapahtumia ja kuuntelijoita Laravel-sovelluksessasi. Jaa ajatuksesi ja ehdotuksesi alla olevassa kommenttiosassa.<\/p>\n<h4>Aiheeseen liittyv\u00e4t artikkelit<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kuinka-kayttaa-laravel-passportia-rest-api-todennukseen\/\" title=\"Kuinka k\u00e4ytt\u00e4\u00e4 Laravel Passportia REST API -todennukseen\" >Kuinka k\u00e4ytt\u00e4\u00e4 Laravel Passportia REST API -todennukseen<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/sahkopostin-lahettaminen-gmail-smtp-palvelimen-kautta-laravelissa\/\" title=\"S\u00e4hk\u00f6postin l\u00e4hett\u00e4minen Gmail SMTP -palvelimen kautta Laravelissa\" >S\u00e4hk\u00f6postin l\u00e4hett\u00e4minen Gmail SMTP -palvelimen kautta Laravelissa<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kayttajarekisterointi-ja-kirjautumisjarjestelma-laravelissa\/\" title=\"K\u00e4ytt\u00e4j\u00e4rekister\u00f6inti- ja kirjautumisj\u00e4rjestelm\u00e4 Laravelissa\" >K\u00e4ytt\u00e4j\u00e4rekister\u00f6inti- ja kirjautumisj\u00e4rjestelm\u00e4 Laravelissa<\/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>Etsitk\u00f6 Laravel-tapahtumia ja kuuntelijoita? T\u00e4ss\u00e4 artikkelissa keskustellaan kuinka rekister\u00f6id\u00e4, selvitt\u00e4\u00e4 ja k\u00e4ytt\u00e4\u00e4 Laravel-tapahtumia ja kuuntelijoita.<\/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":[499],"tags":[843],"class_list":["post-24581","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/24581","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/comments?post=24581"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/24581\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media\/22025"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media?parent=24581"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/categories?post=24581"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/tags?post=24581"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}