diff --git a/CHANGELOG.md b/CHANGELOG.md index 58c5b97..6c899db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - Added configuration file transliterate.php - Added ability to define custom transliteration maps - Added ability to define transformers +- Added optional removing accents using ICU - Added tests ## Removed diff --git a/README.md b/README.md index b245044..945df46 100644 --- a/README.md +++ b/README.md @@ -44,8 +44,10 @@ ElForastero\Transliterate\ServiceProvider::class, Если вы хотите использовать алиас, добавьте его в массив `facades` в `app.php`. +Рекомендую в качестве алиаса использовать `Transliterate`, чтобы избежать конфликтов с Transliterator классом из расширения Intl. + ```php -'Transliterator' => ElForastero\Transliterate\Facade::class, +'Transliterate' => ElForastero\Transliterate\Facade::class, ``` ## Конфигурация @@ -61,15 +63,17 @@ ElForastero\Transliterate\ServiceProvider::class, Вы можете использовать фасад для транслитерации строк. ```php -use Transliterator; +use Transliterate; -(new Transliterator)->make('Двадцать тысяч льё под водой'); +Transliterate::make('Двадцать тысяч льё под водой'); // "Dvadcat tisyach lyo pod vodoy" ``` Альтернативная карта транслитерации может быть передана вторым параметром. ```php +use ElForastero\Transliterate\Transliterator; + $transliterator = new Transliterator(Map::LANG_RU, Map::GOST_7_79_2000); $transliterator->make('Двадцать тысяч льё под водой'); // "Dvadcat` ty'syach l`yo pod vodoj" @@ -80,7 +84,7 @@ $transliterator->make('Двадцать тысяч льё под водой'); Метод `slugify` генерирует URL, убирая из строки все знаки препинания и заменяя пробелы на "-". ```php -(new Transliterator)->slugify('Съешь еще этих мягких французских булок, да выпей чаю!'); +Transliterate::slugify('Съешь еще этих мягких французских булок, да выпей чаю!'); // sesh-eshhe-etih-myagkih-francuzskih-bulok-da-vipey-chayu ``` diff --git a/composer.json b/composer.json index 3a6fc4d..6741f8a 100644 --- a/composer.json +++ b/composer.json @@ -37,7 +37,7 @@ "ElForastero\\Transliterate\\ServiceProvider" ], "aliases": { - "Transliteration": "ElForastero\\Transliterate\\Facade" + "Transliterate": "ElForastero\\Transliterate\\Facade" } }, "hooks": { diff --git a/example.png b/example.png index e19caa3..728cad0 100644 Binary files a/example.png and b/example.png differ diff --git a/src/Facade.php b/src/Facade.php index f8a18ff..59f0d78 100644 --- a/src/Facade.php +++ b/src/Facade.php @@ -16,6 +16,6 @@ class Facade extends BaseFacade */ public static function getFacadeAccessor() { - return 'Transliterator'; + return 'Transliterate'; } } diff --git a/src/ServiceProvider.php b/src/ServiceProvider.php index d5c53f9..3f97b80 100644 --- a/src/ServiceProvider.php +++ b/src/ServiceProvider.php @@ -11,6 +11,8 @@ */ class ServiceProvider extends BaseServiceProvider { + protected $defer = true; + /** * Bootstrap the application services. */ @@ -32,8 +34,16 @@ public function register() $this->mergeConfigFrom($configPath, 'transliterate'); - $this->app->bind('Transliterator', function ($app) { + $this->app->bind('Transliterate', function () { return new Transliterator(); }); } + + /** + * @return array + */ + public function provides() + { + return ['Transliterate']; + } } diff --git a/src/Transliterator.php b/src/Transliterator.php index c2dd178..a77c57f 100644 --- a/src/Transliterator.php +++ b/src/Transliterator.php @@ -4,7 +4,7 @@ namespace ElForastero\Transliterate; -use \Transliterator as IntlTransliterator; +use Transliterator as IntlTransliterator; /** * Feel free to change it. @@ -34,7 +34,7 @@ public function __construct(string $lang = null, string $map = null) /** * Change transliterating text language. * - * @param string $lang One of the Map::LANG_* constants or custom language. + * @param string $lang one of the Map::LANG_* constants or custom language * * @return Transliterator */ @@ -46,9 +46,9 @@ public function from(string $lang): self } /** - * Change transliteration map + * Change transliteration map. * - * @param string $map Name of the transliteration map. + * @param string $map name of the transliteration map * * @return Transliterator */ @@ -114,8 +114,8 @@ private function getMap(): array $lang = $this->lang ?? config('transliterate.default_lang'); $customMaps = config('transliterate.custom_maps'); - $vendorMapsPath = __DIR__ . DIRECTORY_SEPARATOR . 'maps' . DIRECTORY_SEPARATOR; - $path = $customMaps[$lang][$map] ?? $vendorMapsPath . $lang . DIRECTORY_SEPARATOR . $map . '.php'; + $vendorMapsPath = __DIR__.DIRECTORY_SEPARATOR.'maps'.DIRECTORY_SEPARATOR; + $path = $customMaps[$lang][$map] ?? $vendorMapsPath.$lang.DIRECTORY_SEPARATOR.$map.'.php'; if (!file_exists($path)) { throw new \InvalidArgumentException("The transliteration map '${path}' doesn't exist"); diff --git a/src/config/transliterate.php b/src/config/transliterate.php index 7ee0879..e0a66d5 100644 --- a/src/config/transliterate.php +++ b/src/config/transliterate.php @@ -2,7 +2,7 @@ use ElForastero\Transliterate\Map; -/** @noinspection PhpVoidFunctionResultUsedInspection */ +/* @noinspection PhpVoidFunctionResultUsedInspection */ return [ /* |--------------------------------------------------------------------------