Точне форматування чисел за допомогою вдосконаленого методу Number::spell у Laravel

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 01 травня, 2025
Оздоблення вашого коду стало ще простішим завдяки новим параметрам 'until' та 'after' у методі Number::spell Laravel! Досліджуйте, як ці удосконалення дозволяють вам легко інтегрувати типографські принципи у ваші додатки, підвищуючи їхню якість і читабельність

Метод Number::spell в Laravel тепер має параметри 'until' та 'after', які надають розробникам більше контролю над тим, коли числа повинні з’являтися у вигляді слів або цифр в додатках. Це вдосконалення підтримує складні типографічні конвенції з мінімальними зусиллями.

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

use Illuminate\Support\Number;

// Використовуйте параметр 'until', щоб писати числа нижче порогу словами
Number::spell(7, until: 10); // "сім"
Number::spell(10, until: 10); // "10"
Number::spell(15, until: 10); // "15"

// Використовуйте параметр 'after', щоб писати числа вище порогу словами
Number::spell(8, after: 10); // "8"
Number::spell(11, after: 10); // "одиннадцять"
Number::spell(14, after: 10); // "чотирнадцять"

Ця функція особливо корисна під час створення контенту, що відповідає стандартам публікацій, або для покращення читабельності в звітах та сповіщеннях:

class OrderSummaryService
{
    public function generateEmailSummary($orderData)
    {
        // Пишемо малі числа словами, використовуємо цифри для більших
        return "Ваше замовлення містить " . Number::spell($orderData['item_count'], until: 10) .
               " товарів від " . Number::spell($orderData['vendor_count'], until: 10) .
               " різних продавців. Очікувана дата доставки — " . Number::spell($orderData['delivery_days'], until: 10) .
               " днів. Ваш рахунок лояльності був поповнений на " . Number::spell($orderData['reward_points']) .
               " балів за цю покупку.";
    }
}

Результат буде: "Ваше замовлення містить шість товарів від трьох різних продавців. Очікувана дата доставки — п'ять днів. Ваш рахунок лояльності був поповнений на 250 балів за цю покупку."

Метод легко інтегрується в системи сповіщень або генератори контенту:

class NotificationFormatter
{
    public function formatInventoryAlert($product)
    {
        return "СПОВІЩЕННЯ ПРО СТВОРЕННЯ: Лише " . Number::spell($product['stock_remaining'], until: 5) .
               " одиниць " . $product['name'] . " залишилось на складі. Мінімальний поріг — " .
               Number::spell($product['min_threshold'], until: 5) . " одиниць.";
    }
}

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