src/Parser/AST/Builder.php
<?php declare(strict_types=1); namespace Helmich\TypoScriptParser\Parser\AST; /** * Helper class for quickly building AST nodes * * @package Helmich\TypoScriptParser * @subpackage Parser\AST */The class Builder has 11 public methods. Consider refactoring Builder to keep number of public methods under 10.class Builder{ private Operator\Builder $operatorBuilder; /** * Builder constructor. */ public function __construct() { $this->operatorBuilder = new Operator\Builder(); } /** * @param Statement[] $if * @param Statement[] $else */Method `condition` has 5 arguments (exceeds 4 allowed). Consider refactoring. public function condition(string $condition, array $if, array $else, int $line, ConditionalStatementTerminator $terminator = ConditionalStatementTerminator::Global): ConditionalStatement { return new ConditionalStatement($condition, $if, $else, $line, $terminator); } public function comment(string $comment, int $line): Comment { return new Comment($comment, $line); } public function multilineComment(string $comment, int $line): MultilineComment { return new MultilineComment($comment, $line); } public function nop(int $line): NopStatement { return new NopStatement($line); } public function includeDirectory(string $directory, ?string $extensions, ?string $condition, int $line): DirectoryIncludeStatement { return new DirectoryIncludeStatement($directory, $extensions, $condition, $line); } public function includeFile(string $file, bool $newSyntax, ?string $condition, int $line): FileIncludeStatement { return new FileIncludeStatement($file, $newSyntax, $condition, $line); } /** * @param Statement[] $statements */ public function nested(ObjectPath $path, array $statements, int $line): NestedAssignment { return new NestedAssignment($path, $statements, $line); } public function scalar(string $value): Scalar { return new Scalar($value); } public function path(string $absolute, string $relative): ObjectPath { return new ObjectPath($absolute, $relative); } public function op(): Operator\Builder { return $this->operatorBuilder; }}