diff --git a/Neos.SiteKickstarter/Classes/Command/KickstartCommandController.php b/Neos.SiteKickstarter/Classes/Command/KickstartCommandController.php
index 9f31d1f4ab7..8dd2936f5bf 100755
--- a/Neos.SiteKickstarter/Classes/Command/KickstartCommandController.php
+++ b/Neos.SiteKickstarter/Classes/Command/KickstartCommandController.php
@@ -15,6 +15,7 @@
use Neos\Flow\Annotations as Flow;
use Neos\Flow\Cli\CommandController;
use Neos\Flow\Package\PackageManager;
+use Neos\SiteKickstarter\Generator\AfxTemplateGenerator;
use Neos\SiteKickstarter\Service\SiteGeneratorCollectingService;
use Neos\SiteKickstarter\Service\SitePackageGeneratorNameService;
@@ -62,27 +63,40 @@ public function siteCommand($packageKey): void
$generatorClasses = $this->siteGeneratorCollectingService->getAllGenerators();
- $selection = [];
- $nameToClassMap = [];
- foreach ($generatorClasses as $generatorClass) {
- $name = $this->sitePackageGeneratorNameService->getNameOfSitePackageGenerator($generatorClass);
+ if (count($generatorClasses) > 1) {
+ // legacy custom additional generators installed, so we need to show the select box
+ $selection = [];
+ $nameToClassMap = [];
+ foreach ($generatorClasses as $generatorClass) {
+ $name = $this->sitePackageGeneratorNameService->getNameOfSitePackageGenerator($generatorClass);
- $selection[] = $name;
- $nameToClassMap[$name] = $generatorClass;
- }
-
- /** @var string $generatorName */
- $generatorName = $this->output->select(
- sprintf('What generator do you want to use? (%s): ', array_key_first($selection)),
- $selection,
- array_key_first($selection)
- );
+ $selection[] = $name;
+ $nameToClassMap[$name] = $generatorClass;
+ }
- $generatorClass = $nameToClassMap[$generatorName];
+ /** @var string $generatorName */
+ $generatorName = $this->output->select(
+ sprintf('What generator do you want to use? (%s): ', array_key_first($selection)),
+ $selection,
+ array_key_first($selection)
+ );
+ $generatorClass = $nameToClassMap[$generatorName];
+ } else {
+ // default happy case, only one generator which MUST be the afx default
+ $generatorClass = AfxTemplateGenerator::class;
+ }
$generatorService = $this->objectManager->get($generatorClass);
$generatedFiles = $generatorService->generateSitePackage($packageKey);
$this->outputLine(implode(PHP_EOL, $generatedFiles));
+
+ $this->outputLine();
+ $this->outputLine(sprintf('Create a new site based on the new package "%s" by running the site create command', $packageKey));
+
+ if ($generatorClass === AfxTemplateGenerator::class) {
+ $guessedSiteName = strtolower(str_replace('.', '-', $packageKey));
+ $this->outputLine(sprintf('./flow site:create %1$s %2$s %2$s:Document.Homepage', $guessedSiteName, $packageKey));
+ }
}
}
diff --git a/Neos.SiteKickstarter/Classes/Generator/AfxTemplateGenerator.php b/Neos.SiteKickstarter/Classes/Generator/AfxTemplateGenerator.php
index 0efc8448ad3..2978a8436e5 100755
--- a/Neos.SiteKickstarter/Classes/Generator/AfxTemplateGenerator.php
+++ b/Neos.SiteKickstarter/Classes/Generator/AfxTemplateGenerator.php
@@ -24,6 +24,7 @@
/**
* Service to generate site packages
*
+ * @internal
*/
class AfxTemplateGenerator extends GeneratorService implements SitePackageGeneratorInterface
{
diff --git a/Neos.SiteKickstarter/Classes/Generator/SitePackageGeneratorInterface.php b/Neos.SiteKickstarter/Classes/Generator/SitePackageGeneratorInterface.php
index 4beb32acc81..d88aeef4033 100755
--- a/Neos.SiteKickstarter/Classes/Generator/SitePackageGeneratorInterface.php
+++ b/Neos.SiteKickstarter/Classes/Generator/SitePackageGeneratorInterface.php
@@ -13,6 +13,9 @@
* source code.
*/
+/**
+ * @deprecated with Neos 9. Custom generators for "kickstart:site" are discouraged.
+ */
interface SitePackageGeneratorInterface
{
/**
diff --git a/Neos.SiteKickstarter/Classes/Service/FusionRecursiveDirectoryRenderer.php b/Neos.SiteKickstarter/Classes/Service/FusionRecursiveDirectoryRenderer.php
index 01a1e59a025..4ced143c1ac 100755
--- a/Neos.SiteKickstarter/Classes/Service/FusionRecursiveDirectoryRenderer.php
+++ b/Neos.SiteKickstarter/Classes/Service/FusionRecursiveDirectoryRenderer.php
@@ -15,6 +15,9 @@
use Neos\Flow\Annotations as Flow;
+/**
+ * @internal
+ */
class FusionRecursiveDirectoryRenderer
{
/**
diff --git a/Neos.SiteKickstarter/Classes/Service/SimpleTemplateRenderer.php b/Neos.SiteKickstarter/Classes/Service/SimpleTemplateRenderer.php
index 089f7b9a4cc..19137c17ca6 100755
--- a/Neos.SiteKickstarter/Classes/Service/SimpleTemplateRenderer.php
+++ b/Neos.SiteKickstarter/Classes/Service/SimpleTemplateRenderer.php
@@ -13,6 +13,9 @@
* source code.
*/
+/**
+ * @internal
+ */
class SimpleTemplateRenderer
{
/**
diff --git a/Neos.SiteKickstarter/Classes/Service/SiteGeneratorCollectingService.php b/Neos.SiteKickstarter/Classes/Service/SiteGeneratorCollectingService.php
index 96c95af8718..b54d0e722e4 100644
--- a/Neos.SiteKickstarter/Classes/Service/SiteGeneratorCollectingService.php
+++ b/Neos.SiteKickstarter/Classes/Service/SiteGeneratorCollectingService.php
@@ -17,6 +17,9 @@
use Neos\Flow\Annotations as Flow;
use Neos\SiteKickstarter\Generator\SitePackageGeneratorInterface;
+/**
+ * @internal
+ */
class SiteGeneratorCollectingService
{
/**
diff --git a/Neos.SiteKickstarter/Classes/Service/SitePackageGeneratorNameService.php b/Neos.SiteKickstarter/Classes/Service/SitePackageGeneratorNameService.php
index 33f95cdfa36..6ec0d71a7c5 100755
--- a/Neos.SiteKickstarter/Classes/Service/SitePackageGeneratorNameService.php
+++ b/Neos.SiteKickstarter/Classes/Service/SitePackageGeneratorNameService.php
@@ -17,6 +17,9 @@
use Neos\Flow\Annotations as Flow;
use Neos\SiteKickstarter\Generator\SitePackageGeneratorInterface;
+/**
+ * @internal
+ */
class SitePackageGeneratorNameService
{
/**