-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
90e101b
commit 0365845
Showing
1 changed file
with
171 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,171 @@ | ||
|
||
<p align="center"><img src="src/Resources/images/sms.jpg?raw=true" width="150px"></p> | ||
|
||
# لاراول ایران اساماس | ||
|
||
[![مجوز نرمافزار][ico-license]](LICENSE.md) | ||
[![آخرین نسخه در پکیجایست][ico-version]][link-packagist] | ||
[![تعداد کل دانلودها در پکیجایست][ico-download]][link-packagist] | ||
[![StyleCI](https://github.styleci.io/repos/684210225/shield?branch=master)](https://github.styleci.io/repos/684210225) | ||
[![نگهداری][ico-maintainability]](https://codeclimate.com/github/hooman-mirghasemi/Laravel-iran-sms/maintainability) | ||
[![کیفیت کد][ico-code-quality]][link-code-quality] | ||
|
||
این یک پکیج لاراول برای یکپارچهسازی ارسال پیامک است. این پکیج از `Laravel 8+` پشتیبانی میکند و تمامی تستها برای لاراول 8، 9، 10 و 11 پاس شدهاند! | ||
|
||
> مزایای این پکیج: | ||
> - درایورهای متعدد | ||
> - پشتیبانی از ایجاد درایورهای سفارشی | ||
> - دارای درایور ساختگی داخلی که میتواند پیامک یا تماس صوتی موفق یا ناموفق ارسال کند. (میتواند در حالتهای توسعه و تست استفاده شود) | ||
> - ذخیره گزارشهای پیامک در دیتابیس | ||
> - ابزارهایی در حالت توسعه فقط در http://localhost/sms/get-sms-list (توسعهدهنده فرانتاند میتواند از آن برای دسترسی به آخرین پیامکهای ارسال شده با درایور ساختگی استفاده کند، به عنوان مثال نیاز به کدهای OTP دارد، وقتی که او/او بخشهایی مثل فراموشی رمز عبور را توسعه میدهد) | ||
- [مستندات انگلیسی][link-en] | ||
|
||
# فهرست محتویات | ||
|
||
- [لاراول ایران اساماس](#laravel-iran-sms) | ||
- [فهرست محتویات](#list-of-contents) | ||
- [لیست درایورهای موجود](#list-of-available-drivers) | ||
- [نصب](#install) | ||
- [فایل .env](#env-file) | ||
- [نحوه استفاده](#how-to-use) | ||
- [کار با Facades](#working-with-Facades) | ||
- [کار با Channels (استفاده از کلاسهای اطلاعرسانی لاراول)](#working-with-channels-(use-laravel-notification-classes)) | ||
- [ایجاد درایورهای سفارشی](#create-custom-drivers) | ||
- [رویدادها](#events) | ||
- [مشارکت](#contributing) | ||
- [اعتبارات](#credits) | ||
- [مجوز](#license) | ||
|
||
# لیست درایورهای موجود | ||
|
||
- [درایور پیامک ساختگی](#fake-sms) :heavy_check_mark: :بخشی از تستهای توسعه. | ||
- [Kavenegar](#kavenegar) :heavy_check_mark: | ||
- [Mediana](#mediana) :heavy_check_mark: | ||
- [Sms.ir](#smsir) :heavy_check_mark: | ||
- [Farazsms](#farazsms) :heavy_check_mark: | ||
- [Meli Payamak](#meli-payamak) :heavy_check_mark: | ||
|
||
# نصب | ||
|
||
برای نصب، میتوانید از Composer استفاده کنید: | ||
|
||
```bash | ||
composer require hooman-mirghasemi/laravel-iran-sms | ||
``` | ||
|
||
یا میتوانید این خط را به فایل `composer.json` خود اضافه کنید: | ||
|
||
```json | ||
"require": { | ||
"hooman-mirghasemi/laravel-iran-sms": "1.*" | ||
} | ||
``` | ||
|
||
و سپس دستور زیر را اجرا کنید: | ||
|
||
```bash | ||
composer update | ||
``` | ||
|
||
# فایل .env | ||
|
||
این پکیج از پیکربندیها در فایل `.env` پشتیبانی میکند. نمونه فایل `.env` به این شکل است: | ||
|
||
``` | ||
SMS_DRIVER=kavenegar | ||
SMS_API_KEY=کلید API شما | ||
``` | ||
|
||
# نحوه استفاده | ||
|
||
### کار با Facades | ||
|
||
میتوانید از Facades برای ارسال پیامک استفاده کنید: | ||
|
||
```php | ||
use IranSms; | ||
|
||
IranSms::send('متن پیام', 'شماره گیرنده'); | ||
``` | ||
|
||
### کار با Channels (استفاده از کلاسهای اطلاعرسانی لاراول) | ||
|
||
میتوانید از کلاسهای اطلاعرسانی لاراول برای ارسال پیامک استفاده کنید. برای این کار، کافیست کانال `sms` را به متد `via` در کلاس اطلاعرسانی خود اضافه کنید: | ||
|
||
```php | ||
public function via($notifiable) | ||
{ | ||
return ['sms']; | ||
} | ||
``` | ||
|
||
و سپس متد `toSms` را به کلاس اطلاعرسانی خود اضافه کنید: | ||
|
||
```php | ||
public function toSms($notifiable) | ||
{ | ||
return 'متن پیام'; | ||
} | ||
``` | ||
|
||
### ایجاد درایورهای سفارشی | ||
|
||
میتوانید درایورهای سفارشی خود را ایجاد کنید. برای این کار، باید یک کلاس جدید بسازید که از `IranSms\Drivers\Driver` ارثبری کند و متد `send` را پیادهسازی کند. | ||
|
||
```php | ||
namespace App\SmsDrivers; | ||
|
||
use IranSms\Drivers\Driver; | ||
|
||
class MyCustomDriver extends Driver | ||
{ | ||
public function send($message, $numbers, $options = []) | ||
{ | ||
// کد ارسال پیامک | ||
} | ||
} | ||
``` | ||
|
||
سپس میتوانید درایور خود را به `sms` اضافه کنید: | ||
|
||
```php | ||
use IranSms\SmsManager; | ||
|
||
$smsManager = new SmsManager(app()); | ||
|
||
$smsManager->extend('myCustomDriver', function ($app) { | ||
return new MyCustomDriver(); | ||
}); | ||
``` | ||
|
||
### رویدادها | ||
|
||
میتوانید به این رویداد گوش دهید: | ||
|
||
- **SmsSentEvent**: هنگامی که پیامک ارسال میشود. (این پکیج از این رویداد برای جمعآوری گزارشها در دیتابیس استفاده میکند) | ||
|
||
## مشارکت | ||
|
||
لطفاً برای جزئیات بیشتر [CONTRIBUTING](CONTRIBUTING.md) و [CONDUCT](CONDUCT.md) را ببینید. | ||
|
||
## اعتبارات | ||
|
||
- [Hooman Mirghasemi][link-author] | ||
- [تمامی مشارکتکنندگان][link-contributors] | ||
|
||
## مجوز | ||
|
||
مجوز MIT (MIT License). لطفاً برای اطلاعات بیشتر [فایل مجوز](LICENSE.md) را ببینید. | ||
|
||
[ico-version]: https://img.shields.io/packagist/v/hooman-mirghasemi/laravel-iran-sms.svg?style=flat-square | ||
[ico-download]: https://img.shields.io/packagist/dt/hooman-mirghasemi/laravel-iran-sms.svg?color=%23F18&style=flat-square | ||
[ico-license]: https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square | ||
[ico-code-quality]: https://img.shields.io/scrutinizer/quality/g/hooman-mirghasemi/laravel-iran-sms.svg?label=Code%20Quality&style=flat-square | ||
|
||
[link-fa]: README-FA.md | ||
[link-en]: README.md | ||
[link-packagist]: https://packagist.org/packages/hooman-mirghasemi/laravel-iran-sms | ||
[link-code-quality]: https://scrutinizer-ci.com/g/hooman-mirghasemi/laravel-iran-sms | ||
[link-author]: https://github.com/hooman-mirghasemi | ||
[link-contributors]: ../../contributors |