Renamed Sluggifier to UniqueSluggifier

Этот коммит содержится в:
Casey McLaughlin
2015-01-22 15:07:26 -05:00
родитель 965c254b5c
Коммит b118de1e28

67
src/UniqueSluggifier.php Обычный файл
Просмотреть файл

@@ -0,0 +1,67 @@
<?php
/**
* Created by PhpStorm.
* User: casey
* Date: 12/30/14
* Time: 12:48 PM
*/
namespace TOC;
use Cocur\Slugify\Slugify;
/**
* UniqueSluggifier creates slugs text without repeating the same string twice per instance
*
* @author Casey McLaughlin <caseyamcl@gmail.com>
*/
class UniqueSluggifier
{
/**
* @var \Cocur\Slugify\Slugify
*/
private $slugify;
/**
* @var array
*/
private $used;
// ---------------------------------------------------------------
/**
* Constructor
*
* @param \Cocur\Slugify\Slugify $slugify
*/
public function __construct(Slugify $slugify = null)
{
$this->used = array();
$this->slugify = $slugify ?: new Slugify();
}
// ---------------------------------------------------------------
/**
* Slugify
*
* @param string $text
* @return string
*/
public function slugify($text)
{
$slugged = $this->slugify->slugify($text);
$ct = 1;
$orig = $slugged;
while (in_array($slugged, $this->used)) {
$slugged = $orig . '-' . $ct;
$ct++;
}
$this->used[] = $slugged;
return $slugged;
}
}
/* EOF: UniqueSluggifier.php */