Skip to content

Commit 82e87ce

Browse files
committed
feature #1321 Changing make:stimulus-controller to require StimulusBundle (weaverryan)
This PR was squashed before being merged into the 1.0-dev branch. Discussion ---------- Changing make:stimulus-controller to require StimulusBundle If you're building a Stimulus controller, you should now use the new StimulusBundle. Commits ------- 5efa6e1 Changing make:stimulus-controller to require StimulusBundle
2 parents 4bd4868 + 5efa6e1 commit 82e87ce

12 files changed

+72
-46
lines changed

src/Maker/MakeStimulusController.php

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
use Symfony\Component\Console\Input\InputArgument;
2121
use Symfony\Component\Console\Input\InputInterface;
2222
use Symfony\Component\Console\Question\Question;
23+
use Symfony\UX\StimulusBundle\StimulusBundle;
2324
use Symfony\WebpackEncoreBundle\WebpackEncoreBundle;
2425

2526
/**
@@ -227,9 +228,20 @@ private function getValuesTypes(): array
227228

228229
public function configureDependencies(DependencyBuilder $dependencies): void
229230
{
231+
// lower than 8.1, allow WebpackEncoreBundle
232+
if (\PHP_VERSION_ID < 80100) {
233+
$dependencies->addClassDependency(
234+
WebpackEncoreBundle::class,
235+
'symfony/webpack-encore-bundle'
236+
);
237+
238+
return;
239+
}
240+
241+
// else: encourage StimulusBundle by requiring it
230242
$dependencies->addClassDependency(
231-
WebpackEncoreBundle::class,
232-
'webpack-encore-bundle'
243+
StimulusBundle::class,
244+
'symfony/stimulus-bundle'
233245
);
234246
}
235247
}

src/Maker/MakeTwigComponent.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,17 +64,15 @@ public function generate(InputInterface $input, ConsoleStyle $io, Generator $gen
6464
$factory = $generator->createClassNameDetails(
6565
$name,
6666
'Twig\\Components',
67-
'Component'
6867
);
6968

70-
$shortName = Str::asSnakeCase(Str::removeSuffix($factory->getShortName(), 'Component'));
69+
$shortName = Str::getShortClassName($factory->getShortName());
7170

7271
$generator->generateClass(
7372
$factory->getFullName(),
7473
sprintf('%s/../Resources/skeleton/twig/%s', __DIR__, $live ? 'LiveComponent.tpl.php' : 'Component.tpl.php'),
7574
[
7675
'live' => $live,
77-
'short_name' => $shortName,
7876
]
7977
);
8078
$generator->generateTemplate(

src/Resources/skeleton/twig/Component.tpl.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
use Symfony\UX\TwigComponent\Attribute\AsTwigComponent;
66

7-
#[AsTwigComponent('<?= $short_name; ?>')]
7+
#[AsTwigComponent()]
88
final class <?= $class_name."\n" ?>
99
{
1010
}

src/Resources/skeleton/twig/LiveComponent.tpl.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
use Symfony\UX\LiveComponent\Attribute\AsLiveComponent;
66
use Symfony\UX\LiveComponent\DefaultActionTrait;
77

8-
#[AsLiveComponent('<?= $short_name; ?>')]
8+
#[AsLiveComponent()]
99
final class <?= $class_name."\n" ?>
1010
{
1111
use DefaultActionTrait;

src/Test/MakerTestCase.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ protected function executeMakerCommand(MakerTestDetails $testDetails)
5454
$this->markTestSkipped();
5555
}
5656

57+
if ($testDetails->skipOnWindows() && '\\' === \DIRECTORY_SEPARATOR) {
58+
$this->markTestSkipped('This test is not supported on Windows');
59+
}
60+
5761
$testEnv = MakerTestEnvironment::create($testDetails);
5862

5963
// prepare environment to test

src/Test/MakerTestDetails.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ final class MakerTestDetails
2424
private array $requiredPackageVersions = [];
2525
private int $blockedPhpVersionUpper = 0;
2626
private int $blockedPhpVersionLower = 0;
27+
private bool $skipOnWindows = false;
2728

2829
public function __construct(
2930
private MakerInterface $maker,
@@ -175,4 +176,11 @@ public function getPreRunCallbacks(): array
175176
{
176177
return $this->preRunCallbacks;
177178
}
179+
180+
public function skipOnWindows(): self
181+
{
182+
$this->skipOnWindows = true;
183+
184+
return $this;
185+
}
178186
}

tests/Maker/MakeControllerTest.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,8 @@ public function getTestDetails(): \Generator
7575

7676
// make sure the template was not configured
7777
$this->assertContainsCount('created: ', $output, 1);
78-
$this->assertStringContainsString('created: src/Controller/FooNoTemplateController.php', $output);
79-
$this->assertStringNotContainsString('created: templates/foo_no_template/index.html.twig', $output);
78+
$this->assertStringContainsString('src/Controller/FooNoTemplateController.php', $output);
79+
$this->assertStringNotContainsString('templates/foo_no_template/index.html.twig', $output);
8080
}),
8181
];
8282

@@ -88,7 +88,7 @@ public function getTestDetails(): \Generator
8888
]);
8989

9090
$this->assertFileExists($runner->getPath('src/Controller/Admin/FooBarController.php'));
91-
$this->assertStringContainsString('created: src/Controller/Admin/FooBarController.php', $output);
91+
$this->assertStringContainsString('src/Controller/Admin/FooBarController.php', $output);
9292
}),
9393
];
9494

@@ -112,8 +112,8 @@ public function getTestDetails(): \Generator
112112
'\App\Foo\Bar\CoolController',
113113
]);
114114

115-
$this->assertStringContainsString('created: src/Foo/Bar/CoolController.php', $output);
116-
$this->assertStringContainsString('created: templates/foo/bar/cool/index.html.twig', $output);
115+
$this->assertStringContainsString('src/Foo/Bar/CoolController.php', $output);
116+
$this->assertStringContainsString('templates/foo/bar/cool/index.html.twig', $output);
117117
}),
118118
];
119119
}

tests/Maker/MakeCrudTest.php

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ public function getTestDetails(): \Generator
3838
'n', // Generate Tests
3939
]);
4040

41-
$this->assertStringContainsString('created: src/Controller/SweetFoodController.php', $output);
42-
$this->assertStringContainsString('created: src/Form/SweetFoodType.php', $output);
41+
$this->assertStringContainsString('src/Controller/SweetFoodController.php', $output);
42+
$this->assertStringContainsString('src/Form/SweetFoodType.php', $output);
4343

4444
$this->runCrudTest($runner, 'it_generates_basic_crud.php');
4545
}),
@@ -58,8 +58,8 @@ public function getTestDetails(): \Generator
5858
'y', // Generate Tests
5959
]);
6060

61-
$this->assertStringContainsString('created: src/Controller/SweetFoodAdminController.php', $output);
62-
$this->assertStringContainsString('created: src/Form/SweetFoodType.php', $output);
61+
$this->assertStringContainsString('src/Controller/SweetFoodAdminController.php', $output);
62+
$this->assertStringContainsString('src/Form/SweetFoodType.php', $output);
6363

6464
$this->runCrudTest($runner, 'it_generates_crud_with_custom_controller.php');
6565
}),
@@ -79,9 +79,9 @@ public function getTestDetails(): \Generator
7979
'y', // Generate Tests
8080
]);
8181

82-
$this->assertStringContainsString('created: src/Controller/SweetFoodController.php', $output);
83-
$this->assertStringContainsString('created: src/Form/SweetFoodType.php', $output);
84-
$this->assertStringContainsString('created: tests/Controller/SweetFoodControllerTest.php', $output);
82+
$this->assertStringContainsString('src/Controller/SweetFoodController.php', $output);
83+
$this->assertStringContainsString('src/Form/SweetFoodType.php', $output);
84+
$this->assertStringContainsString('tests/Controller/SweetFoodControllerTest.php', $output);
8585

8686
$this->runCrudTest($runner, 'it_generates_basic_crud.php');
8787
}),
@@ -106,9 +106,9 @@ public function getTestDetails(): \Generator
106106
'y', // Generate Tests
107107
]);
108108

109-
$this->assertStringContainsString('created: src/Controller/SweetFoodController.php', $output);
110-
$this->assertStringContainsString('created: src/Form/SweetFoodType.php', $output);
111-
$this->assertStringContainsString('created: tests/Controller/SweetFoodControllerTest.php', $output);
109+
$this->assertStringContainsString('src/Controller/SweetFoodController.php', $output);
110+
$this->assertStringContainsString('src/Form/SweetFoodType.php', $output);
111+
$this->assertStringContainsString('tests/Controller/SweetFoodControllerTest.php', $output);
112112

113113
$this->runCrudTest($runner, 'it_generates_basic_crud.php');
114114
}),
@@ -147,8 +147,8 @@ public function getTestDetails(): \Generator
147147
'n', // Generate Tests
148148
]);
149149

150-
$this->assertStringContainsString('created: src/Controller/SweetFoodController.php', $output);
151-
$this->assertStringContainsString('created: src/Form/SweetFoodType.php', $output);
150+
$this->assertStringContainsString('src/Controller/SweetFoodController.php', $output);
151+
$this->assertStringContainsString('src/Form/SweetFoodType.php', $output);
152152

153153
$this->runCrudTest($runner, 'it_generates_crud_with_custom_root_namespace.php');
154154
}),
@@ -171,8 +171,8 @@ public function getTestDetails(): \Generator
171171
'n', // Generate Tests
172172
]);
173173

174-
$this->assertStringContainsString('created: src/Controller/SweetFoodController.php', $output);
175-
$this->assertStringContainsString('created: src/Form/SweetFoodType.php', $output);
174+
$this->assertStringContainsString('src/Controller/SweetFoodController.php', $output);
175+
$this->assertStringContainsString('src/Form/SweetFoodType.php', $output);
176176

177177
$this->runCrudTest($runner, 'it_generates_basic_crud.php');
178178

@@ -198,8 +198,8 @@ public function getTestDetails(): \Generator
198198
'n', // Generate Tests
199199
]);
200200

201-
$this->assertStringContainsString('created: src/Controller/SweetFoodController.php', $output);
202-
$this->assertStringContainsString('created: src/Form/SweetFoodType.php', $output);
201+
$this->assertStringContainsString('src/Controller/SweetFoodController.php', $output);
202+
$this->assertStringContainsString('src/Form/SweetFoodType.php', $output);
203203

204204
$this->runCrudTest($runner, 'it_generates_basic_crud.php');
205205
}),

tests/Maker/MakeEntityTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ public function getTestDetails(): \Generator
331331
'',
332332
]);
333333

334-
$this->assertStringContainsString('updated: src/Entity/User.php', $output);
334+
$this->assertStringContainsString('src/Entity/User.php', $output);
335335
$this->assertStringNotContainsString('updated: vendor/', $output);
336336

337337
// sanity checks on the generated code

tests/Maker/MakeFixturesTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public function getTestDetails()
3030
'FooFixtures',
3131
]);
3232

33-
$this->assertStringContainsString('created: src/DataFixtures/FooFixtures.php', $output);
33+
$this->assertStringContainsString('src/DataFixtures/FooFixtures.php', $output);
3434
}),
3535
];
3636
}

0 commit comments

Comments
 (0)