11 private string $usedClassesCode;
12 private string $fieldsCode;
21 private readonly
string $tableName,
22 private readonly
string $className,
23 private readonly
string $namespace,
24 private readonly
array $fieldsTemplates,
27 $this->processFields();
35namespace {$this->
namespace};
37{$this->usedClassesCode}
41 public static function getTableName()
43 return '{$this->tableName}';
46 public static function getMap()
48 return [\n{$this->fieldsCode}\t\t];
54 private function processFields(): void
61 foreach ($this->fieldsTemplates as $fieldTemplate)
63 $fieldsCodes[] = $fieldTemplate->getContent();
64 array_push($usedClasses, ... $fieldTemplate->getUsedClasses());
67 $usedClasses = array_unique($usedClasses);
70 $this->usedClassesCode = join(
73 static fn($line) =>
"use {$line};",
78 $this->fieldsCode = join(
'', $fieldsCodes);
__construct(private readonly string $tableName, private readonly string $className, private readonly string $namespace, private readonly array $fieldsTemplates,)