Метод 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) . " одиниць.";
}
}
Завдяки цим параметрам порогу розробники можуть ефективно впроваджувати тонкі правила форматування чисел, створюючи більш професійний та читабельний контент у своїх додатках