بایگانی دسته: لاراول 5.3

ساختن توابع Helper در لاراول

نوشته‌شده در توسط .

هلپر در لاراول به توابعی گفته میشن که همه جای پروژه بهشون دسترسی داریم بدون اینکه هر بار لودشون کنیم.

لاراول کلی هلپر خوب بصورت آماده داره که خیلی از کارهارو براتون آسون میکنه، مثل کار با آرایه ها، فایل ها، رشته ها، روت ها و یکی از پر کاربرترینشون هم همین dd  خودمون :). شما میتونید هلپر های خودتون رو بصورت دستی هم تعریف کنید و با کمپوزر بصورت خودکار لودشون کنید.

نحوه ساختن فایل Helper در لاراول

همونطور که گفتم هلپر ها تابع هستند پس باید داخل یه فایل نوشته بشن. لاراول هیچ دایرکتوری خاصی برای helper ها در نظر نگرفته و شما میتونید بصورت دلخواه براش جا در نظر بگیرید. من مثلا داخل app/Http/Helpers  رو برای این کار در نظر میگیرم و داخلش فایل main.php  رو قرار میدم.

لود خودکار فایل ها در لاراول با کمپوزر

یکی از کاربردهای باحال کمپوزر جدا از مدیریت نیازمندی ها، همین autoload هست که به شما این امکان رو میده که در ران تایم فایل های دلخواهتون رو توی کدتون لود کنید بدون اینکه اون بالا بنویسید require_once any.php . در پروژه لاراولتون یه فایل دارید به اسم composer.json ، توی این فایل یه key به اسم autoload وجود داره و داخلش میتونید مشخص کنید که چه فایل هایی به autoload اضافه بشن. یه مثال واستون میزنم که کاملا بدونید چی به چیه :

به کمپوزر گفتم که فایل main.php  رو بذار توی autoload. حالا باید به کامپوزر بگیم که فایل های autoload رو از اول بسازه، برای این کار توی روت پروژه این کامند رو اجرا کنید :

حالا main.php  و فانکشن هایی که داخلش تعریف میکنید همیشه در دسترس خواهند بود.

تعریف توابع helper در لاراول

توابع هلپر مثل بقیه توابع هستند فقط باید حواسمون باشه که تابع دیگه ای رو رونوشت نکنیم :

هلپر ها خیلی(خیلی خیلی) جاها به دردتون میخورن ولی حواستون باشه که هر چی که لازم بود رو نذارید توی هلپر و فقط توابعی که خیلی ازشون استفاده میکنید رو بذارید داخلش و لذت ببرید.

 

موفق باشید 🙂

ساخت custom notification channel در لاراول

نوشته‌شده در توسط .

لاراول برای ارسال نوتیفیکیشن درایور های متنوعی داره که برای کاراتون میتونید ازش استفاده کنید… ولی بعضی وقتا پیش میاد که نیاز دارید چنل خودتون رو داشته باشید، برای این کار باید کانال ارسال خودتون رو بنویسید که خیلی راحته

مثلا در مسیر app  یک فولدر با عنوان channels  بسازید و توش یه کلاس php با اسم دلخواهتون ایجاد کنید. من اسمشو میذارم SmsChannel .

در قسمت do your action عملیاتی که برای ارسال نوتیفیکیشنتون(!) رو که میتونه متنوع باشه رو انجام بدید… مثلا اگه میخواید با استفاده از یه سرویس دهنده خاص اس ام اس ارسال کنید میتونید کلاسهای اون رو ایمپورت کنید و اس ام اس رو ارسال کنید.

مثلا برای ارسال پیامک بصورت زیر عمل کنید :

که آرایه message  از متد های کلاس های نوتیفیکیشن ها ارسال میشه…

برای ارسال نوتیفیکیشن در متد via  در کلاس نوتیفیکیشن  \App\Channels\SmsChannel::class  رو برگردونید… یه چیزی مثل این :

که میتونید از $notifiable  استفاده کنید و ببینید که اس ام اس واسه کاربر ارسال بشه یا نه… مثلا اعتبار کاربریش اجازه ارسال رو میده یا نه.

و متد زیر رو برای ارسال پیام در کلاس مربوط به نوتیفیکیشن بنویسید :

 

نوتیفیکیشن های لاراول ۵٫۳

نوشته‌شده در توسط .

جدیدا توی چیتاسافت مجبور شدم از لاراول ۵ دل بکنم و سوییچ کنم روی لاراول ۵٫۳.  یکی از امکانات جالبی که تو این ورژن به لاراول اضافه شده notification ها هستند و میخوام یکم در موردشون حرف بزنم. لاراول قبلا ارسال ایمیل رو با سویفت میلر ممکن کرده بود و با درایورهای مختلف میتونستیم ایمیل ارسال کنیم.

تو نوتیفیکیشن ها اوضاع بهتر هم میشه و میتونیم نوتیفیکیشن رو علاوه بر ایمیل بصورت SMS  و حتی بصورت نوتیفیکیشن slack و تلگرام و… هم بفرستیم که لیستشو میتونید تو سایت  laravel-notification-channels ببینید. برای شروع از کامند آشنای make استفاده میکنیم :

یه کلاس Pay توی Notificatios ساخنه میشه که از کلاس Notification مشتق شده… یه متد به نام via توش وجود داره بصورت پیشفرض که کانال های ارسال اعلان(نوتیفیکیشن) رو توش مشخص میکنیم. و یک سری متد دیگه که اعلان شما رو پردازش میکنن تا با کانال مورد نظر بتونن نوتیف رو ارسال کنن… مثل توابع toMail و…

با دو روش میتونید ارسال کنید نوتیف رو :

  1. استفاده از Notifiable Trait
  2. استفاده از فساد Notification

 

استفاده از Notifiable Trait

این trait بصورت پیشفرض توی مدل User وجود داره و معمولا برای ارسال نوتیفیکیشن به یک یوزر استفاده میشه… یک متد notify داره که یک ورودی از نوع Notification میگیره. به این صورت مثلا :

استفاده از فساد Notification

پیشنهاد میشه از این روش استفاده کنید. چون میتونید به چند کاربر و مثلا به یک کالکشن هم اعلان بفرستید خیلی شیک :

میتونید در هر ارسال به پراپرتی notifiable دسترسی داشته باشید و مثلا مشخص کنید که اس ام اس برای این یوزر فعال هست و شماره موبایلش تایید شده و بعد اقدام به ارسال اس ام اس به این یوزر کنید.