Skip to content

Commit 8698dc0

Browse files
committed
!!! TASK: Deprecate additional site kickstart generators and show helpful output for default afx case
``` neos-manufacture-90 git:(9.0) ✗ flow kickstart:site Vendor.Site Created .../Document.Page.yaml Created .../Document.Homepage.yaml Create a new site based on the new package "Vendor.Site" by running the site create command ./flow site:create vendor-site Vendor.Site Vendor.Site:Document.Homepage ```
1 parent ec698da commit 8698dc0

7 files changed

Lines changed: 45 additions & 15 deletions

Neos.SiteKickstarter/Classes/Command/KickstartCommandController.php

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
use Neos\Flow\Annotations as Flow;
1616
use Neos\Flow\Cli\CommandController;
1717
use Neos\Flow\Package\PackageManager;
18+
use Neos\SiteKickstarter\Generator\AfxTemplateGenerator;
1819
use Neos\SiteKickstarter\Service\SiteGeneratorCollectingService;
1920
use Neos\SiteKickstarter\Service\SitePackageGeneratorNameService;
2021

@@ -62,27 +63,40 @@ public function siteCommand($packageKey): void
6263

6364
$generatorClasses = $this->siteGeneratorCollectingService->getAllGenerators();
6465

65-
$selection = [];
66-
$nameToClassMap = [];
67-
foreach ($generatorClasses as $generatorClass) {
68-
$name = $this->sitePackageGeneratorNameService->getNameOfSitePackageGenerator($generatorClass);
66+
if (count($generatorClasses) > 1) {
67+
// legacy custom additional generators installed, so we need to show the select box
68+
$selection = [];
69+
$nameToClassMap = [];
70+
foreach ($generatorClasses as $generatorClass) {
71+
$name = $this->sitePackageGeneratorNameService->getNameOfSitePackageGenerator($generatorClass);
6972

70-
$selection[] = $name;
71-
$nameToClassMap[$name] = $generatorClass;
72-
}
73-
74-
/** @var string $generatorName */
75-
$generatorName = $this->output->select(
76-
sprintf('What generator do you want to use? (<info>%s</info>): ', array_key_first($selection)),
77-
$selection,
78-
array_key_first($selection)
79-
);
73+
$selection[] = $name;
74+
$nameToClassMap[$name] = $generatorClass;
75+
}
8076

81-
$generatorClass = $nameToClassMap[$generatorName];
77+
/** @var string $generatorName */
78+
$generatorName = $this->output->select(
79+
sprintf('What generator do you want to use? (<info>%s</info>): ', array_key_first($selection)),
80+
$selection,
81+
array_key_first($selection)
82+
);
83+
$generatorClass = $nameToClassMap[$generatorName];
84+
} else {
85+
// default happy case, only one generator which MUST be the afx default
86+
$generatorClass = AfxTemplateGenerator::class;
87+
}
8288

8389
$generatorService = $this->objectManager->get($generatorClass);
8490

8591
$generatedFiles = $generatorService->generateSitePackage($packageKey);
8692
$this->outputLine(implode(PHP_EOL, $generatedFiles));
93+
94+
$this->outputLine();
95+
$this->outputLine(sprintf('Create a new site based on the new package "%s" by running the site create command', $packageKey));
96+
97+
if ($generatorClass === AfxTemplateGenerator::class) {
98+
$guessedSiteName = strtolower(str_replace('.', '-', $packageKey));
99+
$this->outputLine(sprintf('./flow site:create %1$s %2$s %2$s:Document.Homepage', $guessedSiteName, $packageKey));
100+
}
87101
}
88102
}

Neos.SiteKickstarter/Classes/Generator/AfxTemplateGenerator.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
/**
2525
* Service to generate site packages
2626
*
27+
* @internal
2728
*/
2829
class AfxTemplateGenerator extends GeneratorService implements SitePackageGeneratorInterface
2930
{

Neos.SiteKickstarter/Classes/Generator/SitePackageGeneratorInterface.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
* source code.
1414
*/
1515

16+
/**
17+
* @deprecated with Neos 9. Custom generators for "kickstart:site" are discouraged.
18+
*/
1619
interface SitePackageGeneratorInterface
1720
{
1821
/**

Neos.SiteKickstarter/Classes/Service/FusionRecursiveDirectoryRenderer.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@
1515

1616
use Neos\Flow\Annotations as Flow;
1717

18+
/**
19+
* @internal
20+
*/
1821
class FusionRecursiveDirectoryRenderer
1922
{
2023
/**

Neos.SiteKickstarter/Classes/Service/SimpleTemplateRenderer.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
* source code.
1414
*/
1515

16+
/**
17+
* @internal
18+
*/
1619
class SimpleTemplateRenderer
1720
{
1821
/**

Neos.SiteKickstarter/Classes/Service/SiteGeneratorCollectingService.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@
1717
use Neos\Flow\Annotations as Flow;
1818
use Neos\SiteKickstarter\Generator\SitePackageGeneratorInterface;
1919

20+
/**
21+
* @internal
22+
*/
2023
class SiteGeneratorCollectingService
2124
{
2225
/**

Neos.SiteKickstarter/Classes/Service/SitePackageGeneratorNameService.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@
1717
use Neos\Flow\Annotations as Flow;
1818
use Neos\SiteKickstarter\Generator\SitePackageGeneratorInterface;
1919

20+
/**
21+
* @internal
22+
*/
2023
class SitePackageGeneratorNameService
2124
{
2225
/**

0 commit comments

Comments
 (0)