این یک پکیج لاراول برای ارسال پیامک با پراوایدر های پیامک معروف است. این پکیج از Laravel 8+
پشتیبانی میکند و تمامی تستها برای لاراول 8، 9، 10 و 11 پاس شدهاند!
مزایای این پکیج:
- درایورهای متعدد
- پشتیبانی از ایجاد درایورهای سفارشی
- دارای درایور fake داخلی که میتواند پیامک یا تماس صوتی موفق یا ناموفق ارسال کند. (میتواند در حالتهای توسعه و تست استفاده شود)
- ذخیره گزارشهای پیامک در دیتابیس
- نمایش لیست پیامک های ارسال شده فقط در حالت توسعه http://localhost/sms/get-sms-list (توسعهدهنده فرانتاند میتواند از آن برای دسترسی به آخرین پیامکهای ارسال شده با درایور fake استفاده کند، به عنوان مثال نیاز به کدهای OTP دارد، وقتی که او بخشهایی مثل فراموشی رمز عبور را توسعه میدهد)
- درایور پیامک fake ✔️ :بخشی از تستهای توسعه.
- Kavenegar ✔️
- Mediana ✔️
- Sms.ir ✔️
- Farazsms ✔️
- Meli Payamak ✔️
برای نصب، میتوانید از Composer استفاده کنید:
composer require hooman-mirghasemi/laravel-iran-sms
یا میتوانید این خط را به فایل composer.json
خود اضافه کنید:
"require": {
"hooman-mirghasemi/laravel-iran-sms": "1.*"
}
و سپس دستور زیر را اجرا کنید:
composer update
این پکیج از پیکربندیها در فایل .env
پشتیبانی میکند. نمونه تنظیمات فایل .env
به این شکل است:
SMS_DRIVER=kavenegar
SMS_API_KEY=کلید API شما
میتوانید از Facades برای ارسال پیامک استفاده کنید:
use IranSms;
IranSms::send('متن پیام', 'شماره گیرنده');
میتوانید از کلاسهای notification لاراول برای ارسال پیامک استفاده کنید. برای این کار، کافیست کانال sms
را به متد via
در کلاس notification خود اضافه کنید:
public function via($notifiable)
{
return ['sms'];
}
و سپس متد toSms
را به کلاس اطلاعرسانی خود اضافه کنید:
public function toSms($notifiable)
{
return 'متن پیام';
}
میتوانید درایورهای سفارشی خود را ایجاد کنید. برای این کار، باید یک کلاس جدید بسازید که از IranSms\Drivers\Driver
ارثبری کند و متد send
را پیادهسازی کند.
namespace App\SmsDrivers;
use IranSms\Drivers\Driver;
class MyCustomDriver extends Driver
{
public function send($message, $numbers, $options = [])
{
// کد ارسال پیامک
}
}
سپس میتوانید درایور خود را به SmsManager
اضافه کنید:
use IranSms\SmsManager;
$smsManager = new SmsManager(app());
$smsManager->extend('myCustomDriver', function ($app) {
return new MyCustomDriver();
});
میتوانید به این رویداد گوش دهید:
- SmsSentEvent: هنگامی که پیامک ارسال میشود. (این پکیج از این رویداد برای جمعآوری گزارشها در دیتابیس استفاده میکند)
لطفاً برای جزئیات بیشتر CONTRIBUTING و CONDUCT را ببینید.
مجوز MIT (MIT License). لطفاً برای اطلاعات بیشتر فایل مجوز را ببینید.