Symfony 手动生成指令段塞

Symfony 手动生成指令段塞,symfony,doctrine-orm,slug,stofdoctrineextensions,Symfony,Doctrine Orm,Slug,Stofdoctrineextensions,我在我的Symfony2项目中使用了sluggable行为,但现在我想根据不同的文本(当前标题、旧标题、表单输入中的用户文本)为一个页面创建多个slugh,并将其保存在另一个表中。我的问题是-如何手动为任何文本使用条令扩展?我到处都找不到。完美是这样的: /* careful - it's not a real, working code! */ $sluggable = new DoctrineSluggable(); $slug = $sluggable->generate('My o

我在我的Symfony2项目中使用了sluggable行为,但现在我想根据不同的文本(当前标题、旧标题、表单输入中的用户文本)为一个页面创建多个slugh,并将其保存在另一个表中。我的问题是-如何手动为任何文本使用条令扩展?我到处都找不到。完美是这样的:

/* careful - it's not a real, working code! */
$sluggable = new DoctrineSluggable();
$slug = $sluggable->generate('My own text!');
echo $slug; // my-own-text

在此处找到生成slug的原则代码:。使用该类可以随心所欲,但您可能需要创建自己的服务来实现所需的简单使用。有关服务的更多详细信息,请参阅文档部分。

我意外地找到了解决方案。 代码:


slaggable\Urlizer::urlize
似乎将
'
替换为
-

我不得不使用
slaggable\Urlizer::translitate
来更接近SlaggableListener的行为。

谢谢您的回答。好的,最初的sluggable代码非常复杂,可以很好地处理刷新实体,但对我来说,单独使用它来简单地从文本生成slug太难了。但我在中发现了很好的代码——我将简单地用preg_replace复制两行代码,这对我来说足够好了。
use Gedmo\Sluggable\Util as Sluggable;    

$string = 'My own text!';
$slug = Sluggable\Urlizer::urlize($string, '-');
    if(empty($slug)) // if $string is like '=))' or 'トライアングル・サービス' an empty slug will be returned, that causes troubles and throws no exception
        echo 'error, empty slug!!!';
    else
        echo $slug;