3 способа сделать транслитерацию с помощью SlugBehavior в Yii2 по ГОСТ

Для генерации slug в Yii2 используется поведение SlugBehavior, но без дополнительных настроек у него есть довольно неприятная особенность в сочетании с русским языком, он неверно преобразует некоторые буквы, к примеру: букву ш он переводит в s, а хотелось бы видеть sh. Давайте разберемся как этого избежать.

Для решения проблемы со стандартным поведение у меня есть 3 варианта:

1. Использовать вместо стандартного готовое поведение Yii2 slug behavior от zelenin

2. В конфигурации приложения на некоторые события переопределять статическую переменную $transliterator

'on beforeRequest' => function ($event) {
    \yii\helpers\BaseInflector::$transliterator = 'Russian-Latin/BGN; Any-Latin; Latin-ASCII; NFD; [:Nonspacing Mark:] Remove; NFC;';
},

3. Сделать то же самое, но переопределив весь хелпер yii\helpers\Inflector в соответствии с документацией к фраймворку. Для этого создаем файл Inflector с содержанием

<?php

namespace yii\helpers;

class Inflector extends BaseInflector
{
    public static $transliterator = 'Russian-Latin/BGN; Any-Latin; Latin-ASCII; NFD; [:Nonspacing Mark:] Remove; NFC;';
}

в папке common/ext/ и в файле common/config/bootstrap.php заменяем, использующийся по-умолчанию, нашим:

Yii::$classMap['yii\helpers\Inflector'] = '@common/ext/Inflector.php';
comments powered by HyperComments
memes78669
2019-05-11 06:23:22
Магазин качественных статьей для вашего сайта от 20 рублей за статью. Регулярно публикуя стати на свой сайт вы увеличите его посещаемость. Увеличить посещаемость - http://shoptxt.ru/content.php Отписаться от рассылки - http://shoptxt.ru/dell.php?dell=PLAY-STOP.RU
memes11216
2019-05-14 23:51:25
Магазин качественных статьей для вашего сайта от 20 рублей за статью. Регулярно публикуя стати на свой сайт вы увеличите его посещаемость. Увеличить посещаемость - http://shoptxt.ru/content.php Отписаться от рассылки - http://shoptxt.ru/dell.php?dell=PLAY-STOP.RU
memes20408
2019-05-18 20:41:52
Магазин качественных статьей для вашего сайта от 20 рублей за статью. Регулярно публикуя стати на свой сайт вы увеличите его посещаемость. Увеличить посещаемость - http://shoptxt.ru/content.php Отписаться от рассылки - http://shoptxt.ru/dell.php?dell=PLAY-STOP.RU
memes43000
2019-05-06 21:14:00
Магазин качественных статьей для вашего сайта от 20 рублей за статью. Регулярно публикуя стати на свой сайт вы увеличите его посещаемость. Увеличить посещаемость - http://shoptxt.ru/content.php Отписаться от рассылки - http://shoptxt.ru/dell.php?dell=PLAY-STOP.RU
При копировании материалов обратная ссылка на play-stop.ru желательна обязательна!