Skip to content

Commit

Permalink
[TASK] Rename TreeBuilder to SysTemplateTreeBuilder
Browse files Browse the repository at this point in the history
We will soon have additional TypoScript TreeBuilder
classes, for instance one related to TsConfig.
Rename the Frontend TypoScript related TreeBuilder
to SysTemplateTreeBuilder to improve namings.

Resolves: #99096
Related: #97816
Releases: main
Change-Id: I32dbd8aae87614d0a2a7d6aaa21e0f71059242a2
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/76611
Tested-by: core-ci <typo3@b13.com>
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Tested-by: Oliver Klee <typo3-coding@oliverklee.de>
Tested-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Jochen <rothjochen@gmail.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
  • Loading branch information
lolli42 committed Nov 15, 2022
1 parent 6ef9536 commit 85c6927
Show file tree
Hide file tree
Showing 12 changed files with 48 additions and 50 deletions.
Expand Up @@ -23,7 +23,7 @@
/**
* General interface of IncludeTree tree nodes.
*
* The TreeBuilder returns a tree of these nodes, with the root node being
* The TreeBuilder classes return a tree of these nodes, with the root node being
* a RootInclude. Each "include type" is represented by an own class: There
* is for instance "SysTemplateInclude" for a node that represents a sys_template
* row, and DefaultTypoScriptInclude for the default TypoScript string included from
Expand Down
Expand Up @@ -31,7 +31,7 @@
/**
* Fetch relevant sys_template records from database by given page rootline.
*
* The result sys_template rows are fed to the TreeBuilder for processing.
* The result sys_template rows are fed to the SysTemplateTreeBuilder for processing.
*
* @internal: Internal structure. There is optimization potential and especially getSysTemplateRowsByRootline() will probably vanish later.
*/
Expand Down
Expand Up @@ -68,7 +68,7 @@
*
* @internal: Internal tree structure.
*/
final class TreeBuilder
final class SysTemplateTreeBuilder
{
/**
* Used in 'basedOn' includes to prevent endless loop: Each sys_template row can
Expand All @@ -78,9 +78,7 @@ final class TreeBuilder
*/
private array $includedSysTemplateUids = [];

/**
* @param 'constants'|'setup' $type
*/
/** @var 'constants'|'setup' */
private string $type;

private TokenizerInterface $tokenizer;
Expand All @@ -104,7 +102,7 @@ public function getTreeBySysTemplateRowsAndSite(
?SiteInterface $site = null,
PhpFrontend $cache = null
): RootInclude {
if (!in_array($type, ['constants', 'setup'])) {
if (!in_array($type, ['constants', 'setup'], true)) {
throw new \RuntimeException('type must be either constants or setup', 1653737656);
}
$this->tokenizer = $tokenizer;
Expand Down
Expand Up @@ -1230,7 +1230,7 @@ public static function addTypoScript(string $key, string $type, string $content,
if ($afterStaticUid) {
// If 'defaultContentRendering' is targeted (formerly static uid 43),
// the content is added after TypoScript of type contentRendering, e.g. fluid_styled_content, see
// EXT:core/Classes/TypoScript/IncludeTree/TreeBuilder.php for more information on how the code is parsed.
// EXT:core/Classes/TypoScript/IncludeTree/SysTemplateTreeBuilder.php for more information on how the code is parsed.
if ($afterStaticUid === 'defaultContentRendering' || $afterStaticUid == 43) {
$GLOBALS['TYPO3_CONF_VARS']['FE']['defaultTypoScript_' . $type . '.']['defaultContentRendering'] ??= '';
$GLOBALS['TYPO3_CONF_VARS']['FE']['defaultTypoScript_' . $type . '.']['defaultContentRendering'] .= $content;
Expand Down
2 changes: 1 addition & 1 deletion typo3/sysext/core/Configuration/Services.yaml
Expand Up @@ -312,7 +312,7 @@ services:
TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateRepository:
public: true

TYPO3\CMS\Core\TypoScript\IncludeTree\TreeBuilder:
TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateTreeBuilder:
public: true

TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeAstBuilderVisitor:
Expand Down
Expand Up @@ -23,13 +23,13 @@
use TYPO3\CMS\Core\TypoScript\AST\Node\RootNode;
use TYPO3\CMS\Core\TypoScript\IncludeTree\IncludeNode\RootInclude;
use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateRepository;
use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateTreeBuilder;
use TYPO3\CMS\Core\TypoScript\IncludeTree\Traverser\IncludeTreeTraverser;
use TYPO3\CMS\Core\TypoScript\IncludeTree\TreeBuilder;
use TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeAstBuilderVisitor;
use TYPO3\CMS\Core\TypoScript\Tokenizer\LossyTokenizer;
use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;

class TreeBuilderTest extends FunctionalTestCase
class SysTemplateTreeBuilderTest extends FunctionalTestCase
{
use SiteBasedTestTrait;

Expand Down Expand Up @@ -81,9 +81,9 @@ public function singleRootTemplate(): void
];
/** @var SysTemplateRepository $sysTemplateRepository */
$sysTemplateRepository = $this->get(SysTemplateRepository::class);
/** @var TreeBuilder $treeBuilder */
$treeBuilder = $this->get(TreeBuilder::class);
$includeTree = $treeBuilder->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
/** @var SysTemplateTreeBuilder $subject */
$subject = $this->get(SysTemplateTreeBuilder::class);
$includeTree = $subject->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
self::assertEquals($includeTree, unserialize(serialize($includeTree)));
$ast = $this->getAst($includeTree);
self::assertSame('fooValue', $ast->getChildByName('foo')->getValue());
Expand All @@ -105,9 +105,9 @@ public function singleRootTemplateLoadsFromGlobals(): void
];
/** @var SysTemplateRepository $sysTemplateRepository */
$sysTemplateRepository = $this->get(SysTemplateRepository::class);
/** @var TreeBuilder $treeBuilder */
$treeBuilder = $this->get(TreeBuilder::class);
$includeTree = $treeBuilder->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
/** @var SysTemplateTreeBuilder $subject */
$subject = $this->get(SysTemplateTreeBuilder::class);
$includeTree = $subject->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
self::assertEquals($includeTree, unserialize(serialize($includeTree)));
$ast = $this->getAst($includeTree);
self::assertSame('fooValue', $ast->getChildByName('foo')->getValue());
Expand All @@ -131,9 +131,9 @@ public function singleRootTemplateLoadConstantFromSite(): void
$sysTemplateRepository = $this->get(SysTemplateRepository::class);
/** @var SiteFinder $siteFinder */
$siteFinder = $this->get(SiteFinder::class);
/** @var TreeBuilder $treeBuilder */
$treeBuilder = $this->get(TreeBuilder::class);
$includeTree = $treeBuilder->getTreeBySysTemplateRowsAndSite(
/** @var SysTemplateTreeBuilder $subject */
$subject = $this->get(SysTemplateTreeBuilder::class);
$includeTree = $subject->getTreeBySysTemplateRowsAndSite(
'constants',
$sysTemplateRepository->getSysTemplateRowsByRootline($rootline),
new LossyTokenizer(),
Expand Down Expand Up @@ -164,9 +164,9 @@ public function twoPagesTwoTemplates(): void
];
/** @var SysTemplateRepository $sysTemplateRepository */
$sysTemplateRepository = $this->get(SysTemplateRepository::class);
/** @var TreeBuilder $treeBuilder */
$treeBuilder = $this->get(TreeBuilder::class);
$includeTree = $treeBuilder->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
/** @var SysTemplateTreeBuilder $subject */
$subject = $this->get(SysTemplateTreeBuilder::class);
$includeTree = $subject->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
self::assertEquals($includeTree, unserialize(serialize($includeTree)));
$ast = $this->getAst($includeTree);
self::assertSame('fooValue', $ast->getChildByName('foo')->getValue());
Expand All @@ -193,9 +193,9 @@ public function twoPagesTwoTemplatesBothClear(): void
];
/** @var SysTemplateRepository $sysTemplateRepository */
$sysTemplateRepository = $this->get(SysTemplateRepository::class);
/** @var TreeBuilder $treeBuilder */
$treeBuilder = $this->get(TreeBuilder::class);
$includeTree = $treeBuilder->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
/** @var SysTemplateTreeBuilder $subject */
$subject = $this->get(SysTemplateTreeBuilder::class);
$includeTree = $subject->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
self::assertEquals($includeTree, unserialize(serialize($includeTree)));
$ast = $this->getAst($includeTree);
self::assertNull($ast->getChildByName('foo'));
Expand All @@ -217,9 +217,9 @@ public function twoTemplatesOnPagePrefersTheOneWithLowerSorting(): void
];
/** @var SysTemplateRepository $sysTemplateRepository */
$sysTemplateRepository = $this->get(SysTemplateRepository::class);
/** @var TreeBuilder $treeBuilder */
$treeBuilder = $this->get(TreeBuilder::class);
$includeTree = $treeBuilder->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
/** @var SysTemplateTreeBuilder $subject */
$subject = $this->get(SysTemplateTreeBuilder::class);
$includeTree = $subject->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
self::assertEquals($includeTree, unserialize(serialize($includeTree)));
$ast = $this->getAst($includeTree);
self::assertSame('fooValue', $ast->getChildByName('foo')->getValue());
Expand All @@ -241,9 +241,9 @@ public function basedOnSimple(): void
];
/** @var SysTemplateRepository $sysTemplateRepository */
$sysTemplateRepository = $this->get(SysTemplateRepository::class);
/** @var TreeBuilder $treeBuilder */
$treeBuilder = $this->get(TreeBuilder::class);
$includeTree = $treeBuilder->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
/** @var SysTemplateTreeBuilder $subject */
$subject = $this->get(SysTemplateTreeBuilder::class);
$includeTree = $subject->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
self::assertEquals($includeTree, unserialize(serialize($includeTree)));
$ast = $this->getAst($includeTree);
self::assertSame('fooValue', $ast->getChildByName('foo')->getValue());
Expand All @@ -265,9 +265,9 @@ public function basedOnAfterIncludeStatic(): void
];
/** @var SysTemplateRepository $sysTemplateRepository */
$sysTemplateRepository = $this->get(SysTemplateRepository::class);
/** @var TreeBuilder $treeBuilder */
$treeBuilder = $this->get(TreeBuilder::class);
$includeTree = $treeBuilder->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
/** @var SysTemplateTreeBuilder $subject */
$subject = $this->get(SysTemplateTreeBuilder::class);
$includeTree = $subject->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
self::assertEquals($includeTree, unserialize(serialize($includeTree)));
$ast = $this->getAst($includeTree);
self::assertSame('fooValue', $ast->getChildByName('foo')->getValue());
Expand All @@ -289,9 +289,9 @@ public function basedOnBeforeIncludeStatic(): void
];
/** @var SysTemplateRepository $sysTemplateRepository */
$sysTemplateRepository = $this->get(SysTemplateRepository::class);
/** @var TreeBuilder $treeBuilder */
$treeBuilder = $this->get(TreeBuilder::class);
$includeTree = $treeBuilder->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
/** @var SysTemplateTreeBuilder $subject */
$subject = $this->get(SysTemplateTreeBuilder::class);
$includeTree = $subject->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
self::assertEquals($includeTree, unserialize(serialize($includeTree)));
$ast = $this->getAst($includeTree);
self::assertSame('fooValue', $ast->getChildByName('foo')->getValue());
Expand Down
Expand Up @@ -30,8 +30,8 @@
use TYPO3\CMS\Core\SingletonInterface;
use TYPO3\CMS\Core\Type\Bitmask\Permission;
use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateRepository;
use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateTreeBuilder;
use TYPO3\CMS\Core\TypoScript\IncludeTree\Traverser\ConditionVerdictAwareIncludeTreeTraverser;
use TYPO3\CMS\Core\TypoScript\IncludeTree\TreeBuilder;
use TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeAstBuilderVisitor;
use TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeConditionMatcherVisitor;
use TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeSetupConditionConstantSubstitutionVisitor;
Expand Down Expand Up @@ -97,7 +97,7 @@ public function __construct(
private readonly PhpFrontend $typoScriptCache,
private readonly FrontendInterface $runtimeCache,
private readonly SysTemplateRepository $sysTemplateRepository,
private readonly TreeBuilder $treeBuilder,
private readonly SysTemplateTreeBuilder $treeBuilder,
private readonly LossyTokenizer $lossyTokenizer,
private readonly ConditionVerdictAwareIncludeTreeTraverser $includeTreeTraverserConditionVerdictAware,
private readonly Context $context,
Expand Down
Expand Up @@ -60,9 +60,9 @@
use TYPO3\CMS\Core\TypoScript\AST\Node\RootNode;
use TYPO3\CMS\Core\TypoScript\FrontendTypoScript;
use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateRepository;
use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateTreeBuilder;
use TYPO3\CMS\Core\TypoScript\IncludeTree\Traverser\ConditionVerdictAwareIncludeTreeTraverser;
use TYPO3\CMS\Core\TypoScript\IncludeTree\Traverser\IncludeTreeTraverser;
use TYPO3\CMS\Core\TypoScript\IncludeTree\TreeBuilder;
use TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeAstBuilderVisitor;
use TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeConditionIncludeListAccumulatorVisitor;
use TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeConditionMatcherVisitor;
Expand Down Expand Up @@ -1191,7 +1191,7 @@ public function getFromCache(ServerRequestInterface $request): ServerRequestInte
$this->tmpl->rootLine = $localRootline;

$tokenizer = new LossyTokenizer();
$treeBuilder = GeneralUtility::makeInstance(TreeBuilder::class);
$treeBuilder = GeneralUtility::makeInstance(SysTemplateTreeBuilder::class);
$includeTreeTraverser = new IncludeTreeTraverser();
$includeTreeTraverserConditionVerdictAware = new ConditionVerdictAwareIncludeTreeTraverser();
$frontendConditionMatcher = GeneralUtility::makeInstance(FrontendConditionMatcher::class, $this->context, $this->id, $this->rootLine);
Expand Down
Expand Up @@ -24,8 +24,8 @@
use TYPO3\CMS\Core\Localization\LanguageService;
use TYPO3\CMS\Core\Site\Entity\SiteInterface;
use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateRepository;
use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateTreeBuilder;
use TYPO3\CMS\Core\TypoScript\IncludeTree\Traverser\IncludeTreeTraverser;
use TYPO3\CMS\Core\TypoScript\IncludeTree\TreeBuilder;
use TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeAstBuilderVisitor;
use TYPO3\CMS\Core\TypoScript\Tokenizer\LossyTokenizer;
use TYPO3\CMS\Core\Utility\GeneralUtility;
Expand All @@ -40,7 +40,7 @@ class CodeCompletionController
{
public function __construct(
private readonly SysTemplateRepository $sysTemplateRepository,
private readonly TreeBuilder $treeBuilder,
private readonly SysTemplateTreeBuilder $treeBuilder,
private readonly LossyTokenizer $lossyTokenizer,
private readonly IncludeTreeTraverser $treeTraverser,
) {
Expand Down
Expand Up @@ -31,8 +31,8 @@
use TYPO3\CMS\Core\TypoScript\AST\Traverser\AstTraverser;
use TYPO3\CMS\Core\TypoScript\AST\Visitor\AstConstantCommentVisitor;
use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateRepository;
use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateTreeBuilder;
use TYPO3\CMS\Core\TypoScript\IncludeTree\Traverser\IncludeTreeTraverser;
use TYPO3\CMS\Core\TypoScript\IncludeTree\TreeBuilder;
use TYPO3\CMS\Core\TypoScript\Tokenizer\LosslessTokenizer;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Core\Utility\MathUtility;
Expand All @@ -48,7 +48,7 @@ class ConstantEditorController extends AbstractTemplateModuleController
public function __construct(
protected readonly ModuleTemplateFactory $moduleTemplateFactory,
private readonly SysTemplateRepository $sysTemplateRepository,
private readonly TreeBuilder $treeBuilder,
private readonly SysTemplateTreeBuilder $treeBuilder,
private readonly IncludeTreeTraverser $treeTraverser,
private readonly AstTraverser $astTraverser,
private readonly AstBuilderInterface $astBuilder,
Expand Down
Expand Up @@ -35,9 +35,9 @@
use TYPO3\CMS\Core\TypoScript\AST\Visitor\AstSortChildrenVisitor;
use TYPO3\CMS\Core\TypoScript\IncludeTree\IncludeNode\RootInclude;
use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateRepository;
use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateTreeBuilder;
use TYPO3\CMS\Core\TypoScript\IncludeTree\Traverser\ConditionVerdictAwareIncludeTreeTraverser;
use TYPO3\CMS\Core\TypoScript\IncludeTree\Traverser\IncludeTreeTraverser;
use TYPO3\CMS\Core\TypoScript\IncludeTree\TreeBuilder;
use TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeAstBuilderVisitor;
use TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeSetupConditionConstantSubstitutionVisitor;
use TYPO3\CMS\Core\TypoScript\Tokenizer\LosslessTokenizer;
Expand All @@ -62,7 +62,7 @@ public function __construct(
private readonly SysTemplateRepository $sysTemplateRepository,
private readonly IncludeTreeTraverser $treeTraverser,
private readonly ConditionVerdictAwareIncludeTreeTraverser $treeTraverserConditionVerdictAware,
private readonly TreeBuilder $treeBuilder,
private readonly SysTemplateTreeBuilder $treeBuilder,
private readonly AstTraverser $astTraverser,
private readonly LosslessTokenizer $losslessTokenizer,
) {
Expand Down
Expand Up @@ -28,9 +28,9 @@
use TYPO3\CMS\Core\Site\Entity\SiteInterface;
use TYPO3\CMS\Core\TypoScript\IncludeTree\IncludeNode\RootInclude;
use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateRepository;
use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateTreeBuilder;
use TYPO3\CMS\Core\TypoScript\IncludeTree\Traverser\ConditionVerdictAwareIncludeTreeTraverser;
use TYPO3\CMS\Core\TypoScript\IncludeTree\Traverser\IncludeTreeTraverser;
use TYPO3\CMS\Core\TypoScript\IncludeTree\TreeBuilder;
use TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeAstBuilderVisitor;
use TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeSetupConditionConstantSubstitutionVisitor;
use TYPO3\CMS\Core\TypoScript\Tokenizer\LosslessTokenizer;
Expand All @@ -55,7 +55,7 @@ public function __construct(
private readonly SysTemplateRepository $sysTemplateRepository,
private readonly IncludeTreeTraverser $treeTraverser,
private readonly ConditionVerdictAwareIncludeTreeTraverser $treeTraverserConditionVerdictAware,
private readonly TreeBuilder $treeBuilder,
private readonly SysTemplateTreeBuilder $treeBuilder,
private readonly LosslessTokenizer $losslessTokenizer,
) {
}
Expand Down

0 comments on commit 85c6927

Please sign in to comment.