symfony-cmf/slugifier-api

提供基本的slugifier接口,用于将文本转换为适合URL的字符串

2.1.0 2021-01-22 09:05 UTC

This package is auto-updated.

Last update: 2024-09-22 16:46:25 UTC


README

Build Status Latest Stable Version Total Downloads

此包是Symfony内容管理系统(CMF)的一部分,并使用MIT许可

"slugifier"是一种函数,它将字符串例如这个转换为URL友好的字符串例如这个。slugifier也被称为"urlizer"。

此包不包含slugifier实现,它提供标准接口(SlugifierInterface)供第三方slugifier使用,并提供一个能够将大多数非实现第三方slugifier包装到SlugifierInterfaceCallbackSlugifier

需求

文档

也许用演示来记录这个简单的组件是最好的方法。您有一个事件订阅者,它将博客文章的标题进行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实现。

另请参阅

FIG提案

我们向FIG提出了这个提案,但不幸的是,该提案没有得到足够的关注。如果有机会,我们仍然愿意为此做出贡献,并废弃此包以支持PSR。

贡献

欢迎pull请求。请参阅我们的CONTRIBUTING指南。

此包存在单元测试和/或功能测试。请参阅测试文档以了解运行测试的指南。

感谢所有已经做出贡献的人