Skip to content

Commit

Permalink
Added aliases for all available strategies, finders, uniquers and tra…
Browse files Browse the repository at this point in the history
…nsliterators in annotation `Slug`
  • Loading branch information
tg666 committed Oct 9, 2019
1 parent be7bcef commit 568bf32
Showing 1 changed file with 24 additions and 1 deletion.
25 changes: 24 additions & 1 deletion src/Annotation/Slug.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,28 @@
*/
final class Slug
{
private const ALIASES = [
'strategy' => [
'generate-always' => SixtyEightPublishers\DoctrineSluggable\Strategy\GenerateAlwaysStrategy::class,
'generate-on-insert' => SixtyEightPublishers\DoctrineSluggable\Strategy\GenerateOnInsertStrategy::class,
'check-only' => SixtyEightPublishers\DoctrineSluggable\Strategy\CheckOnlyStrategy::class,
],
'finder' => [
'default' => SixtyEightPublishers\DoctrineSluggable\Finder\DefaultSimilarSlugFinder::class,
'field-based' => SixtyEightPublishers\DoctrineSluggable\Finder\FieldBasedSimilarSlugFinder::class,
],
'uniquer' => [
'' => SixtyEightPublishers\DoctrineSluggable\Uniquer\NullUniquer::class,
'null' => SixtyEightPublishers\DoctrineSluggable\Uniquer\NullUniquer::class,
'check' => SixtyEightPublishers\DoctrineSluggable\Uniquer\CheckUniquer::class,
'sequence' => SixtyEightPublishers\DoctrineSluggable\Uniquer\SequenceUniquer::class,
],
'transliterator' => [
'default' => SixtyEightPublishers\DoctrineSluggable\Transliterator\DefaultTransliterator::class,
'camel-case' => SixtyEightPublishers\DoctrineSluggable\Transliterator\CamelCaseTransliterator::class,
],
];

/** @var array */
private $values;

Expand Down Expand Up @@ -83,8 +105,9 @@ private function createInstance(array $values, string $name, string $parentClass
{
$class = $defaultClass;

if (isset($values[$name])) {
if (array_key_exists($name, $values)) {
$class = $values[$name];
$class = self::ALIASES[$name][$class] ?? $class;

$this->assertSubclass($class, $parentClass);
}
Expand Down

0 comments on commit 568bf32

Please sign in to comment.