diff --git a/src/Annotation/Slug.php b/src/Annotation/Slug.php index e2ebb71..4c81115 100644 --- a/src/Annotation/Slug.php +++ b/src/Annotation/Slug.php @@ -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; @@ -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); }