2013-06-23 1 views

답변

3

사용이있는 경우

은 알려주세요 중 하나 l3ppard의 sluggable extension (GitHub의 repository) ...

... 또는 KnpLabs sluggable behavior (GitHub의 repository).

+0

덕분에 많은 nifr. 나는 그들을 시도 할 것이다. 나는 또한 [stof] (https://github.com/stof/StofDoctrineExtensionsBundle/blob/master/Resources/doc/index.rst)를 보았다. 마녀는 최선의 선택이라고 생각하십니까 – gastonnina

+0

StofDoctrineExtensions는 symfony2에서 쉽게 통합 (서비스 등록, 리스너 설정)을 제공하지만 확장 자체는 제공하지 않습니다. – nifr

+0

게임에 늦지 만 고유하지 않은 슬러그는 대부분의 유스 케이스에서 쓸모가 없습니다. – RichieHH

2

나는 슬러지를 위해 util.php을 사용했다. Symfony는 필요하지 않지만 잘 작동합니다.

util::slugify('This is a random --string with an Ãccent'); 
=> Returns 'this-is-a-random-string-with-an-accent' 
4

당신이 PHP-국제 공항이있는 경우 : 그렇지 않으면

/** 
* Transform (e.g. "Hello World") into a slug (e.g. "hello-world"). 
* 
* @param string $string 
* 
* @return string 
*/ 
public function slugify($string) 
{ 
    $rule = 'NFD; [:Nonspacing Mark:] Remove; NFC'; 
    $transliterator = \Transliterator::create($rule); 
    $string = $transliterator->transliterate($string); 

    return preg_replace(
     '/[^a-z0-9]/', 
     '-', 
     strtolower(trim(strip_tags($string))) 
    ); 
} 

를 가장 인기 slugify 패키지의 the doctrine extensions

+0

이 답변은 매우 간단하며 Transliterator가 활성화되어있는 한 큰 효과가있는 것으로 보입니다. 고맙습니다. – mr1031011

+2

ascii로 비 ASCII 입력 (예 : 악센트 또는 ae 등으로 변환해야하는 æ)을 변환하는 것이 유니 코드로 표준 방식으로 오랫동안 해결되는 문제임을 알고 있습니다. –

+0

Doctrine 확장은 [Behat Transliterator] (https://github.com/Behat/Transliterator) –

0

하나의 모습이 현재 packagistcocur/slugify ~ 5.5M 다운로드입니다.

잘 테스트되었고 매우 양호하게 유지되었습니다.