|
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