Хелпер 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. Це забезпечує гнучкість як для загальних налаштувань за замовчуванням, так і для специфічного форматування валют, що спрощує обробку міжнародних цінових вимог