From 568bf3214a9ff15165db6c2d5ee68134a382630b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Glawaty?= Date: Wed, 9 Oct 2019 02:27:51 +0200 Subject: [PATCH] Added aliases for all available strategies, finders, uniquers and transliterators in annotation `Slug` --- src/Annotation/Slug.php | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) 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); }