Форматування валюти з використанням розширеного числового хелпера Laravel

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 29 січня, 2025
Захоплюючі новини для розробників на Laravel! Новий функціонал допоміжного класу Number дозволяє налаштовувати валюту за замовчуванням, спрощуючи роботу з форматуванням цін для міжнародних клієнтів. Чи готові ви дізнатися, як це може полегшити ваші проекти? Читайте далі

Хелпер Number у Laravel тепер підтримує налаштовувані валюти за замовчуванням, що спрощує форматування цін для різних регіонів та сценаріїв використання. Це покращення є особливо корисним для додатків, які обслуговують міжнародних клієнтів або проводять транзакції в кількох валютах. Тепер, замість ручного управління символами валют і їх форматуванням, можна скористатися вбудованими можливостями форматування Laravel з налаштуваннями за замовчуванням.

use Illuminate\Support\Number;
// Встановити загальне значення за замовчуванням
Number::useCurrency('EUR');
// Форматувати з використанням за замовчуванням
$price = Number::currency(1000); // €1,000.00
// Тимчасова перевага
$usdPrice = Number::currency(1000, 'USD'); // $1,000.00

Ось приклад реалізації системи оформлення замовлень для кількох регіонів:

<?php

namespace App\Services;

use App\Models\Order;
use Illuminate\Support\Number;

class PricingService
{
    public function formatOrderPrices(Order $order, string $displayCurrency)
    {
        return Number::withCurrency($displayCurrency, function() use ($order) {
            return [
                'subtotal' => Number::currency($order->subtotal),
                'tax' => Number::currency($order->tax),
                'shipping' => Number::currency($order->shipping_cost),
                'total' => Number::currency($order->total),
                'savings' => $this->calculateDiscounts($order)
            ];
        });
    }

    private function calculateDiscounts(Order $order): array
    {
        return [
            'bulk_discount' => Number::currency($order->bulk_discount),
            'loyalty_savings' => Number::currency($order->loyalty_discount),
            'total_saved' => Number::currency(
                $order->bulk_discount + $order->loyalty_discount
            )
        ];
    }
}

Покращені можливості форматування валют у хелпері Number спрощують підтримку кількох валют у додатках Laravel. Це забезпечує гнучкість як для загальних налаштувань за замовчуванням, так і для специфічного форматування валют, що спрощує обробку міжнародних цінових вимог