Tutorial/PHP وLaravel

أسعار الصرف في PHP وLaravel

اجلب الأسعار وخزنها باستخدام عميل HTTP في Laravel وbearer auth والمهلة وحقول الحداثة.

MMexchangerate.dev·Jul 17, 2026·قراءة 6 دقائق

ترفض خدمة Laravel الأخطاء وتخزن رصدا كاملا لمدة 60 ثانية. ضع المفتاح في الإعدادات وأعد source وmarket_session وdata_updated_at مع السعر.

Key points
استخدم bearer auth والمهلة وthrow().
خزّن الاستجابة الناجحة 60 ثانية.
اقرأ المفتاح من EXCHANGERATE_API_KEY.
استخدم مكتبة عشرية للحساب الدقيق.

أنشئ خدمة FX مخزنة

تبني الخدمة مفتاحا ثابتا من العملة والرموز المرتبة. ينفذ throw() قبل الكتابة إلى cache.

php · app/Services/ExchangeRateService.phpcopy
<?php

namespace App\Services;

use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Http;

final class ExchangeRateService
{
    public function latest(string $base, array $symbols): array
    {
        sort($symbols);
        $symbolList = implode(',', $symbols);
        $cacheKey = "fx:latest:{$base}:{$symbolList}";

        return Cache::remember($cacheKey, now()->addSeconds(60), function () use (
            $base,
            $symbolList,
        ): array {
            return Http::acceptJson()
                ->withToken(config('services.exchangerate.key'))
                ->timeout(5)
                ->get(
                    "https://api.exchangerate.dev/v1/latest/{$base}",
                    ['symbols' => $symbolList],
                )
                ->throw()
                ->json();
        });
    }
}

اضبط المفتاح خارج الشفرة

php · config/services.php and .envcopy
// config/services.php
'exchangerate' => [
    'key' => env('EXCHANGERATE_API_KEY'),
],

// .env (never commit the real value)
EXCHANGERATE_API_KEY=exr_live_...

اقرأ السعر وحقول الرصد

بعد $service->latest("USD", ["EUR", "GBP"]) اقرأ $result["rates"]["EUR"] واحتفظ بحقول المصدر والوقت.

لا تخزن الأخطاء كأسعار
يعني 401 خطأ المفتاح، و429 تجاوز الحد. احتفظ بالرصد السابق فقط مع وقته الأصلي.
  • رتب الرموز.
  • ضع مهلة.
  • نفذ throw قبل التخزين.
  • قرّب المبلغ النهائي فقط.
MM
exchangerate.dev
أدلة تكامل للمطورين العاملين مع بيانات العملات.

Keep reading

Guideسلسلة أسعار تاريخية في طلب واحدRead Referenceقراءة source وmarket_sessionRead Guideالسعر الاسترشادي والتنفيذيRead