Число прописью в Laravel 5

    Иногда необходимо вывести число прописью при формировании какой-либо формы и нам приходит на помощь модуль DigitText, разработанный специально для фреймворка Laravel.

    Он позволяет обрабатывать любое число на любом языке

    image


    Установка


    Установить модуль очень просто:

    1. Последовательно выполните команды:

    composer require andrey-helldar/digittext
    composer update
    

    2. После обновления композера, добавьте сервис провадер в файл `config/app.php`:

    Helldar\DigitText\DigitServiceProvider::class,
    

    3. Далее, в том же файле, в раздел `aliases` добавьте фасад:

    'DigitText' => Helldar\DigitText\DigitText::class,
    

    Готово!

    Использование


    Для перевода числа в текст используйте конструкцию:
    DigitText::text($number = 0, $lang = 'ru', $currency = false);
    


    Пример:
    DigitText::text();
    DigitText::text(64.42);
    DigitText::text(2866);
    
    DigitText::text(0, 'ru', true);
    DigitText::text(64.42, 'ru', true);
    DigitText::text(2866, 'ru', true);
    
    /*
     * Результат:
     *     ноль
     *     шестьдесят четыре
     *     две тысячи восемьсот шестьдесят шесть
     *
     *     ноль руб
     *     шестьдесят четыре руб 42 коп
     *     две тысячи восемьсот шестьдесят шесть руб
     */
    


    Языковые формы


    На момент написания статьи модуль поддерживает работу с такими языковыми формами, как: «русский», «английский» и «немецкий».

    Любой желающий может помочь развитию модуля DigitText.

    Модуль предоставлен по лицензии MIT.

    От автора


    Это мой первый модуль под Laravel. Знаю, что код далек от идеала и прошу сильно не пинать :)

    К минусующим


    Если Вы не разделяете взгляд автора, будьте добры конструктивно описать свою точку зрения в комментариях.
    • –1
    • 3,2k
    • 3
    Поделиться публикацией

    Похожие публикации

    Комментарии 3

      +4
      Уберите nbproject. Разделите на 2 проекта: фреймворконезависимая библиотека и драйвер к ларавелу.
        +5
        Если установлено расширение php_intl, можно вот так сделать:

        $result = (new \MessageFormatter('ru-RU', '{n, spellout}'))->format(['n' => 321]);
        echo $result;
        // триста двадцать один
        
        $result = (new \MessageFormatter('ru-RU', '{n, spellout,%spellout-cardinal-feminine}'))->format(['n' => 321]);
        echo $result;
        // триста двадцать одна
          +2
          Поле для улучшений непаханное: статические функции; невозможно кастомизировать переводы под проект; абсолютно ничем не обоснованная сильняя связанность с Laravel; fraction, а не fractal, в конце концов.

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

          Самое читаемое