Парсинг локалізованих чисел за допомогою класу 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

Intervention Image: потужний інструмент для роботи з зображеннями у Laravel

Досліджуйте потужний пакет Intervention Image для PHP, який виводить редагування зображень на новий рівень з оновленою версією 3. Чи готові ви дізнатися, які нові можливості та функції чекають на вас у цьому інструменті

Logomark Logotype

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

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