دریافت لحظه ای نرخ ارز در لاراول

گردآوری و تالیف : امیررضا سیستانه ای
تاریخ انتشار : 14 بهمن 1396
دسته بندی ها : لاراول

کتابخانه ی swap که برای لاراول و lumen کاربرد داره به شما اجازه میده نرخ فعلی ارز رو از سرویس های رایگانی مثل Fixer و یاهو دریافت کنید و تبدیلات نرخ رو انجام بدید. مستندات کامل کتابخانه

نصب پکیج

برای نصب پکیج از دستور زیر استفاده کنید :

composer require florianv/laravel-swap php-http/message php-http/guzzle6-adapter

پیکربندی در لاراول

برای پیکربندی پکیج در لاراول نیاز دارید که provider و alias رو به فایل config/app.php اضافه کنید :

// /config/app.php
'providers' => [
    Swap\Laravel\SwapServiceProvider::class
],

'aliases' => [
    'Swap' => Swap\Laravel\Facades\Swap::class
]

و درنهایت پکیج رو منتشر کنید :

php artisan vendor:publish --provider="Swap\Laravel\SwapServiceProvider"

پیکربندی در Lumen

بصورت زیر provider و alias رو وارد کنید :

// /boostrap/app.php

// Register the facade
$app->withFacades(true, [
    Swap\Laravel\Facades\Swap::class => 'Swap'
]);

// Load the configuration
$app->configure('swap');

// Register the service provider
$app->register(Swap\Laravel\SwapServiceProvider::class);

تنظیمات

بصورت پیشفرض Swap از سرویس Fixer استفاده میکنه اما شما میتونید سرویس های مختلفی رو بهش اضافه کنید. (برای دریافت نرخ ریال ایران بهتون پیشنهاد میدم حتما از یاهو استفاده کنید). برای اینکار بصورت زیر عمل کنید :

// app/config/swap.php
'services' => [
    'fixer' => true,
    'yahoo' => true,
]

با اینکار Swap اول fixer رو چک میکنه و اگر به خطا خورد سراغ یاهو میره.

نحوه استفاده

برای اینکه نرخ ارز رو دریافت کنید باید از متدهای ()latest یا ()historical استفاده کنید :

// Get the latest EUR/USD rate
$rate = Swap::latest('EUR/USD');

// 1.129
$rate->getValue();

// 2016-08-26
$rate->getDate()->format('Y-m-d');

// Get the EUR/USD rate yesterday
$rate = Swap::historical('EUR/USD', Carbon\Carbon::yesterday());

مثلا برای دریافت نرخ دلار/ریال (ایران) بصورت زیر کد می زنیم :

$rate = Swap::latest('USD/IRR');

نکته : اگر در حین اجرای کد در local به اروری شبیه cURL error 60 برخوردید از راه حل زیر استفاده کنید :

  1. این فایل رو دانلود کرده و در مسیر xampp/php بریزید.
  2. به فایل php.ini موجود در فولدر xampp/php برید و کد زیر رو به آخرش اضافه کنید (آدرس فایل رو بهش بدید) :
curl.cainfo = "C:\xampp\php\cacert.pem"
  1. حالا xampp رو ریست کنید.

سرویس های پشتیبانی شده

این لیست کاملی از تمام سرویس های پشتیبانی شده و پیکربندی های موجود آنهاست, اما شما میتونید سرویس دلخواه خودتون رو هم بسازید و بهش اضافه کنید : 

// app/config/swap.php
'services' => [
    'central_bank_of_czech_republic' => true,
    'central_bank_of_republic_turkey' => true,
    'currency_layer' => ['access_key' => 'secret', 'enterprise' => false],
    'european_central_bank' => true,
    'fixer' => true,
    'google' => true,
    'national_bank_of_romania' => true,
    'open_exchange_rates' => ['app_id' => 'secret', 'enterprise' => false],
    'array' => [
        [
            'EUR/USD' => new ExchangeRate('1.1'),
            'EUR/GBP' => 1.5
        ],
        [
            '2017-01-01' => [
                'EUR/USD' => new ExchangeRate('1.5')
            ],
            '2017-01-03' => [
                'EUR/GBP' => 1.3
            ],
        ]
    ],
    'webservicex' => true,
    'xignite' => ['token' => 'token'],
    'yahoo' => true,
    'russian_central_bank' => true
]

مقالات پیشنهادی

5 ویرایشگر کد محبوب برای استفاده در لاراول

یکی از بهترین ویرایشگرهای متنی که برای کدنویسی استفاده میشه Sublime Text هست. Sublime قابلیت‌های زیادی داره که کدنویسی رو جذاب می کنه, و توسط پلاگین ه...

چگونه از لاراول ایمیل ارسال کنیم، و چرا باید از سرویس خارجی استفاده کنیم ؟

ارسال ایمیل برای بسیار از پروژه‌های وب، یک عملکرد رایج است: اعلانات، یادآور رمز عبور، فاکتورها و... با کمک ایمیل انجام می‌شوند. اما در سال‌های اخیر، ب...

بهترین CMS های بر پایه لاراول

وقتی درمورد CMS ها و فریمورک ها صحبت می کنیم, معمولا اون ها رو جداگانه با همدیگه مقایسه می کنیم. اما تعداد زیادی CMS وجود دارند که توسط فریمورک ها ساخ...

کمکی های جدید لاراول در نسخه 5.4 و 5.5

کمکی های جدید String دارند راهشون رو به سمت لاراول از طریق ریلیز بزرگ 5.5 پیدا می کنند. که قراره در حین Laracon EU 2017 منتشر بشه.