zelenin/string

字符串转换器集合

0.0.1 2015-12-23 00:06 UTC

This package is not auto-updated.

Last update: 2024-09-14 17:59:01 UTC


README

字符串转换器集合。

该库使用转换器概念。您可以编写实现 \Zelenin\Ddd\String\Domain\Service\Transformer 接口的新转换器。内置转换器

  • RawTransformer 直接使用字符串
  • IntlNormalizeTransformer 标准化字符串(使用php-intl)
  • IntlTransliterator 转写字符串(使用php-intl)
  • UrlifyTransformer 清理字符串以创建友好的URL(缩写生成器)
  • TemplateTransformer 根据模板转换字符串

安装

Composer

通过Composer安装此扩展是首选方式。

运行以下命令之一:

php composer.phar require zelenin/string "~0.0.0"

或添加以下内容到您的 composer.json 文件中的 require 部分:

"zelenin/string": "~0.0.0"

用法

$string = 'Jeanne Françoise Julie Adélaïde Récamier';
$transformers = [
	new IntlNormalizeTransformer(),
	new IntlTransliterateTransformer(),
	new UrlifyTransformer(),
	new TemplateTransformer('{id}-{slug}', ['{id}' => $model->id])
];
$transformer = new Transformer(new TransformerCollection($transformers));
$slug = $transformer->transform($string); // '12-jeanne-francoise-julie-adelaide-recamier'

您可以设置一些选项

$string = 'Jeanne Françoise Julie Adélaïde Récamier';
$transformers = [
	new IntlNormalizeTransformer(Normalizer::FORM_C),
	new IntlTransliterateTransformer('Russian-Latin/BGN; Any-Latin; Latin-ASCII; NFD; [:Nonspacing Mark:] Remove; NFKC;'),
	new UrlifyTransformer('_', false),
	new TemplateTransformer('{id}-{slug}', ['{id}' => $model->id])
];
$transformer = new Transformer(new TransformerCollection($transformers));
$slug = $transformer->transform($string);

作者

Aleksandr Zelenin,电子邮件: aleksandr@zelenin.me