22
33namespace Gedmo \Sluggable \Mapping \Driver ;
44
5+ use Doctrine \Persistence \Mapping \ClassMetadata ;
56use Gedmo \Exception \InvalidMappingException ;
67use Gedmo \Mapping \Annotation \Slug ;
78use Gedmo \Mapping \Annotation \SlugHandler ;
@@ -64,7 +65,7 @@ public function readExtendedMetadata($meta, array &$config)
6465 ) {
6566 continue ;
6667 }
67- $ config = $ this ->retrieveSlug ($ meta , $ config , $ property, '' );
68+ $ config = $ this ->retrieveSlug ($ meta , $ config , $ property );
6869 }
6970
7071 // Embedded entity
@@ -81,15 +82,11 @@ public function readExtendedMetadata($meta, array &$config)
8182 }
8283
8384 /**
84- * @param $meta
85- * @param $property
86- * @param $fieldNamePrefix
87- *
88- * @return array
85+ * @return array<string, array<string, mixed>>
8986 */
90- private function retrieveSlug ($ meta , array &$ config , $ property , $ fieldNamePrefix)
87+ private function retrieveSlug (ClassMetadata $ meta , array &$ config , \ ReflectionProperty $ property , ? string $ fieldNamePrefix = null ): array
9188 {
92- $ fieldName = $ fieldNamePrefix ? ($ fieldNamePrefix .'. ' .$ property ->getName ()) : $ property ->getName ();
89+ $ fieldName = null !== $ fieldNamePrefix ? ($ fieldNamePrefix .'. ' .$ property ->getName ()) : $ property ->getName ();
9390 // slug property
9491 if ($ slug = $ this ->reader ->getPropertyAnnotation ($ property , self ::SLUG )) {
9592 if (!$ meta ->hasField ($ fieldName )) {
@@ -127,7 +124,7 @@ private function retrieveSlug($meta, array &$config, $property, $fieldNamePrefix
127124 throw new InvalidMappingException ("Slug must contain at least one field for slug generation in class - {$ meta ->name }" );
128125 }
129126 foreach ($ slug ->fields as $ slugField ) {
130- $ slugFieldWithPrefix = $ fieldNamePrefix ? ($ fieldNamePrefix .'. ' .$ slugField ) : $ slugField ;
127+ $ slugFieldWithPrefix = null !== $ fieldNamePrefix ? ($ fieldNamePrefix .'. ' .$ slugField ) : $ slugField ;
131128 if (!$ meta ->hasField ($ slugFieldWithPrefix )) {
132129 throw new InvalidMappingException ("Unable to find slug [ {$ slugFieldWithPrefix }] as mapped property in entity - {$ meta ->name }" );
133130 }
@@ -152,7 +149,7 @@ private function retrieveSlug($meta, array &$config, $property, $fieldNamePrefix
152149 }
153150 $ sluggableFields = [];
154151 foreach ($ slug ->fields as $ field ) {
155- $ sluggableFields [] = $ fieldNamePrefix ? ($ fieldNamePrefix .'. ' .$ field ) : $ field ;
152+ $ sluggableFields [] = null !== $ fieldNamePrefix ? ($ fieldNamePrefix .'. ' .$ field ) : $ field ;
156153 }
157154
158155 // set all options
0 commit comments