Пакет php-humanizer від Норберта Орzechовіца спрощує роботу з читабельними значеннями, такими як числа, рядки, дати тощо. У проектах на Laravel вже є такі інструменти, як порядкові числові значення, допоміжні методи для рядків та Carbon для роботи з датами, але цей пакет пропонує ще безліч корисних функцій, якщо ви працюєте над самостійним PHP-проектом або будь-яким PHP-додатком:
use Coduo\PHPHumanizer\NumberHumanizer;
use Coduo\PHPHumanizer\CollectionHumanizer;
use Coduo\PHPHumanizer\StringHumanizer;
// Перетворення в читабельний формат
StringHumanizer::humanize('field_name'); // "Field Name"
StringHumanizer::humanize('user_id'); // "User"
StringHumanizer::humanize('field_name', false); // "field name"
// Бінарні суфікси
NumberHumanizer::binarySuffix(1024); // "1 kB"
NumberHumanizer::binarySuffix(1536); // "1.5 kB"
NumberHumanizer::binarySuffix(1048576 * 5); // "5 MB"
NumberHumanizer::binarySuffix(1073741824 * 2); // "2 GB"
// Метричні суфікси
NumberHumanizer::metricSuffix(101); // "101"
NumberHumanizer::metricSuffix(1000); // "1k"
NumberHumanizer::metricSuffix(1240); // "1.2k"
NumberHumanizer::metricSuffix(1240000); // "1.24M"
NumberHumanizer::metricSuffix(3500000); // "3.5M"
// Оксфордський стиль
CollectionHumanizer::oxford(['Michal', 'Norbert', 'Lukasz', 'Pawel'], 2); // "Michal, Norbert, and 2 others"
CollectionHumanizer::oxford(['Michal', 'Norbert', 'Lukasz'], 2); // "Michal, Norbert, and 1 other"
CollectionHumanizer::oxford(['Michal', 'Norbert']); // "Michal and Norbert"
# Основні можливості
- Форматування чисел
- Перетворення чисел у порядкові значення (1-й, 2-й, 3-й)
- Форматування чисел з метричними суфіксами (1K, 1M, 1B)
- Перетворення чисел на римські цифри
- Маніпуляція текстом
- Перетворення рядків у camelCase, snake_case тощо
- Вирізання тексту з дотриманням розумних меж слів
- Додавання правильних переносів рядків для обгортання тексту
- Людське представлення часу/дати
- Перетворення міток часу на відносний час (2 години тому, через 3 дні)
- Натуральні різниці між датами (1 місяць, 2 роки)
- Підтримка кількох мов/локалей
- Форматування розміру файлів
- Перетворення байтів у зрозумілі розміри (1KB, 2MB, 3GB)
- Підтримка бінарних і десяткових одиниць
- Налаштовувана точність
- Форматування списків в оксфордському стилі
- Перетворення масивів на списки природною мовою
- Підтримка різних стилів об’єднання (A, B and C vs A, B, and C)
- Обробка різних локалей та роздільників
- Операції з колекціями
- Натуральне форматування колекцій
- Підтримка кастомних форматерів і правил
- Правильна обробка порожніх колекцій
Документація проекту включає більше прикладів і перелік усіх підтримуваних мов. Додаткову інформацію про пакет, повні інструкції з установки та код джерела можна знайти на GitHub.