Парсинг локалізованих чисел за допомогою класу Number у Laravel

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

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

Автоматичне опрацювання різних форматів локалей:

use Illuminate\Support\Number;
 
Number::parse($string);
Number::parseInt($string);
Number::parseFloat($string);
 
// З конкретною локаллю
Number::parseFloat(string: $string, locale: 'fr');
 
// З нестандартним типом
Number::parse(
    string: $string,
    type: NumberFormatter::TYPE_INT64,
    locale: 'fr',
);

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

class FinancialDataProcessor
{
    public function processReportData(array $reportData, string $locale)
    {
        return [
            'revenue' => Number::parseFloat($reportData['revenue'], locale: $locale),
            'expenses' => Number::parseFloat($reportData['expenses'], locale: $locale),
            'transactions' => Number::parseInt($reportData['transactions'], locale: $locale),
            'margin' => Number::parse(
                string: $reportData['margin'],
                type: NumberFormatter::TYPE_DOUBLE,
                locale: $locale
            )
        ];
    }
 
    public function importFinancialData(string $filePath, string $locale)
    {
        $records = [];
 
        foreach ($this->readSpreadsheet($filePath) as $row) {
            $records[] = [
                'amount' => Number::parseFloat($row['amount'], locale: $locale),
                'commission' => Number::parseFloat($row['commission'], locale: $locale),
                'units' => Number::parseInt($row['units'], locale: $locale)
            ];
        }
 
        return $records;
    }
}
 
$processor = new FinancialDataProcessor();
 
// Формат італійською: "1.234,56" перетворюється на 1234.56
$italianData = $processor->processReportData([
    'revenue' => '1.234,56',
    'expenses' => '456,78',
    'transactions' => '25'
], 'it');
 
// Формат іспанською: "1.234,56" перетворюється на 1234.56
$spanishData = $processor->processReportData([
    'revenue' => '1.234,56',
    'expenses' => '456,78',
    'transactions' => '25'
], 'es');

Ці методи парсингу автоматично обробляють різноманітність форматів чисел, роблячи ваші міжнародні застосунки більш надійними та зручними для користувачів

Популярні

Logomark Logotype

Laravel Boost — ваш стартовий набір для програмування з використанням штучного інтелекту

Вперше у світі Laravel з'являється можливість, яка значно спростить ваше повсякденне програмування завдяки новому пакету Laravel Boost. Читайте статтю, щоб дізнатися, як посилена інтеграція штучного інтелекту може підвищити ефективність вашої роботи та оптимізувати створення проектів у Laravel

Logomark Logotype

Використання повнотекстового пошуку в Laravel

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

Logomark Logotype

Що нового в PHP 8.5

PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення