symfony-cmf / slugifier-api
提供基本的slugifier接口,用于将文本转换为适合URL的字符串
2.1.0
2021-01-22 09:05 UTC
Requires
- php: ^5.6|^7.0|^8.0
Requires (Dev)
- symfony/phpunit-bridge: ^5.2
README
此包是Symfony内容管理系统(CMF)的一部分,并使用MIT许可。
"slugifier"是一种函数,它将字符串例如这个
转换为URL友好的字符串例如这个
。slugifier也被称为"urlizer"。
此包不包含slugifier实现,它提供标准接口(SlugifierInterface
)供第三方slugifier使用,并提供一个能够将大多数非实现第三方slugifier包装到SlugifierInterface
的CallbackSlugifier
。
需求
- 请参阅composer.json的
require
部分
文档
也许用演示来记录这个简单的组件是最好的方法。您有一个事件订阅者,它将博客文章的标题进行slugify
<?php use Symfony\Cmf\Api\Slugifier\SlugifierInterface; class FooSubscriber { private $slugifier; public function __construct(SlugifierInterface $slugifier) { $this->slugifier = $slugifier; } public function onEntitySave(\Some\Event $event) { $entity = $event->getEntity(); $entity->setSlug($this->slugifier->slugify($entity->getTitle()); } }
然后,您可以注入已实现CMF SlugifierInterface
的slugifier,或者使用CallbackSlugifier
来使用非实现库。使用非实现库非常简单,假设您想使用aferrandini/urlizer
包(该包也被RoutingAutoBundle使用),您可以配置CallbackSlugifier
对象以调用Ferrandini\Urlizer::urlize()
方法
$slugifier = new CallbackSlugifier('Ferrandini\Urlizer::urlize'); $fooSubscriber = new FooSubscriber($slugifier);
通过使用Slugifier包,您可以解耦您的应用程序与slugifier实现。
另请参阅
- 所有Symfony CMF文档 - 完整的Symfony CMF参考
- Symfony CMF网站 - 简介、实时演示、支持和社区链接
FIG提案
我们向FIG提出了这个提案,但不幸的是,该提案没有得到足够的关注。如果有机会,我们仍然愿意为此做出贡献,并废弃此包以支持PSR。
贡献
欢迎pull请求。请参阅我们的CONTRIBUTING指南。
此包存在单元测试和/或功能测试。请参阅测试文档以了解运行测试的指南。
感谢所有已经做出贡献的人。