| Package Data | |
|---|---|
| Maintainer Username: | ElForastero |
| Maintainer Contact: | elforastero@ya.ru (Eugene Dzhumak) |
| Package Create Date: | 2016-04-30 |
| Package Last Update: | 2025-11-12 |
| Home Page: | |
| Language: | PHP |
| License: | MIT |
| Last Refreshed: | 2025-12-13 03:03:37 |
| Package Statistics | |
|---|---|
| Total Downloads: | 120,434 |
| Monthly Downloads: | 2,325 |
| Daily Downloads: | 78 |
| Total Stars: | 56 |
| Total Watchers: | 1 |
| Total Forks: | 23 |
| Total Open Issues: | 2 |
Небольшой пакет для транслитерации кириллицы с возможностью создания своих собственных карт транслитерации.

> composer require elforastero/transliterate
Laravel начиная с версии 5.5 не нуждается в дополнительной конфигурации благодаря механизму Package Discovery.
Если вы не используте Package Discovery, необходимо зарегистрировать Service Provider, добавив его в массив providers, конфигурационного файла app.php.
ElForastero\Transliterate\ServiceProvider::class,
Если вы хотите использовать алиас, добавьте его в массив facades в app.php.
Рекомендую в качестве алиаса использовать Transliterate, чтобы избежать конфликтов с Transliterator классом из расширения Intl.
'Transliterate' => ElForastero\Transliterate\Facade::class,
Для копирования конфига transliterate.php в директорию configs выполните
> php artisan vendor:publish --provider="ElForastero\Transliterate\ServiceProvider"
Вы можете использовать фасад для транслитерации строк.
use Transliterate;
Transliterate::make('Двадцать тысяч льё под водой');
// "Dvadcat tisyach lyo pod vodoy"
Альтернативная карта транслитерации может быть передана вторым параметром.
use ElForastero\Transliterate\Transliterator;
$transliterator = new Transliterator(Map::LANG_RU, Map::GOST_7_79_2000);
$transliterator->make('Двадцать тысяч льё под водой');
// "Dvadcat` ty'syach l`yo pod vodoj"
Метод slugify генерирует URL, убирая из строки все знаки препинания и заменяя пробелы на "-".
Transliterate::slugify('Съешь еще этих мягких французских булок, да выпей чаю!');
// sesh-eshhe-etih-myagkih-francuzskih-bulok-da-vipey-chayu
Каждая карта представляет собой ассоциативный массив с символами подлежащими замене в качестве ключей, и значениями на которые они будут заменены.
Карта создается в виде отдельного файла с возвращаемым массивом:
// /resources/maps/uk/ukraine.php
return [
'ї' => 'i',
'і' => 'i',
'є' => 'ie',
];
Добавьте путь к созданной карте в массив maps, конфига transliterate.php:
'uk' => [
'ukraine' => dirname(__DIR__) . '/resources/maps/uk/ukraine.php',
]
После этого карту можно использовать.
$transliterator = new Transliterator('uk', 'ukraine');
$transliterator->make('Ваша транслітерація');
Трансформеры - функции которые будут автоматически применены к результату транслитерации. Полезно если вам необходимо каждый раз производить одни и те же действия с транслитерируемой строкой. Регистрируется трансформер в массиве transformers.
Например, можно автоматечески убирать конечные пробелы.
ElForastero\Transliterate\Transformer::register(\Closure::fromCallable('trim')),
Или дополнительно приводить строки к нижнему регистру.
ElForastero\Transliterate\Transformer::register(\Closure::fromCallable('trim')),
ElForastero\Transliterate\Transformer::register(\Closure::fromCallable('strtolower')),
Будьте внимательны, поскольку трансформеры применяются при каждом вызове
Transliterator::make.