|
16 | 16 | use Symfony\Bundle\MakerBundle\Generator; |
17 | 17 | use Symfony\Bundle\MakerBundle\InputConfiguration; |
18 | 18 | use Symfony\Bundle\MakerBundle\Str; |
| 19 | +use Symfony\Bundle\MakerBundle\Util\ClassSource\Model\ClassData; |
19 | 20 | use Symfony\Component\Console\Command\Command; |
20 | 21 | use Symfony\Component\Console\Input\InputArgument; |
21 | 22 | use Symfony\Component\Console\Input\InputInterface; |
| 23 | +use Symfony\Component\Validator\Constraint; |
| 24 | +use Symfony\Component\Validator\ConstraintValidator; |
22 | 25 | use Symfony\Component\Validator\Validation; |
23 | 26 |
|
24 | 27 | /** |
@@ -49,26 +52,31 @@ public function configureCommand(Command $command, InputConfiguration $inputConf |
49 | 52 | /** @return void */ |
50 | 53 | public function generate(InputInterface $input, ConsoleStyle $io, Generator $generator) |
51 | 54 | { |
52 | | - $validatorClassNameDetails = $generator->createClassNameDetails( |
53 | | - $input->getArgument('name'), |
54 | | - 'Validator\\', |
55 | | - 'Validator' |
| 55 | + $validatorClassData = ClassData::create( |
| 56 | + class: \sprintf('Validator\\%s', $input->getArgument('name')), |
| 57 | + suffix: 'Validator', |
| 58 | + extendsClass: ConstraintValidator::class, |
| 59 | + useStatements: [ |
| 60 | + Constraint::class, |
| 61 | + ], |
56 | 62 | ); |
57 | 63 |
|
58 | | - $constraintFullClassName = Str::removeSuffix($validatorClassNameDetails->getFullName(), 'Validator'); |
| 64 | + $constraintDataClass = ClassData::create( |
| 65 | + class: \sprintf('Validator\\%s', Str::removeSuffix($validatorClassData->getClassName(), 'Validator')), |
| 66 | + extendsClass: Constraint::class, |
| 67 | + ); |
59 | 68 |
|
60 | | - $generator->generateClass( |
61 | | - $validatorClassNameDetails->getFullName(), |
| 69 | + $generator->generateClassFromClassData( |
| 70 | + $validatorClassData, |
62 | 71 | 'validator/Validator.tpl.php', |
63 | 72 | [ |
64 | | - 'constraint_class_name' => Str::getShortClassName($constraintFullClassName), |
| 73 | + 'constraint_class_name' => $constraintDataClass->getClassName(), |
65 | 74 | ] |
66 | 75 | ); |
67 | 76 |
|
68 | | - $generator->generateClass( |
69 | | - $constraintFullClassName, |
| 77 | + $generator->generateClassFromClassData( |
| 78 | + $constraintDataClass, |
70 | 79 | 'validator/Constraint.tpl.php', |
71 | | - [] |
72 | 80 | ); |
73 | 81 |
|
74 | 82 | $generator->writeChanges(); |
|
0 commit comments