1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
tablettemplate.php
См. документацию.
1<?php
2
3namespace Bitrix\Main\Cli\Command\Make\Templates;
4
5use Bitrix\Main\Cli\Command\Make\Templates\Tablet\FieldTemplate;
6use Bitrix\Main\Cli\Helper\Renderer\Template;
7use Bitrix\Main\ORM\Data\DataManager;
8
9final class TabletTemplate implements Template
10{
11 private string $usedClassesCode;
12 private string $fieldsCode;
13
20 public function __construct(
21 private readonly string $tableName,
22 private readonly string $className,
23 private readonly string $namespace,
24 private readonly array $fieldsTemplates,
25 )
26 {
27 $this->processFields();
28 }
29
30 public function getContent(): string
31 {
32 return <<<PHP
33<?php
34
35namespace {$this->namespace};
36
37{$this->usedClassesCode}
38
39final class {$this->className} extends DataManager
40{
41 public static function getTableName()
42 {
43 return '{$this->tableName}';
44 }
45
46 public static function getMap()
47 {
48 return [\n{$this->fieldsCode}\t\t];
49 }
50}
51PHP;
52 }
53
54 private function processFields(): void
55 {
56 $usedClasses = [
57 DataManager::class,
58 ];
59 $fieldsCodes = [];
60
61 foreach ($this->fieldsTemplates as $fieldTemplate)
62 {
63 $fieldsCodes[] = $fieldTemplate->getContent();
64 array_push($usedClasses, ... $fieldTemplate->getUsedClasses());
65 }
66
67 $usedClasses = array_unique($usedClasses);
68 sort($usedClasses);
69
70 $this->usedClassesCode = join(
71 "\n",
72 array_map(
73 static fn($line) => "use {$line};",
74 $usedClasses,
75 ),
76 );
77
78 $this->fieldsCode = join('', $fieldsCodes);
79 }
80}
__construct(private readonly string $tableName, private readonly string $className, private readonly string $namespace, private readonly array $fieldsTemplates,)
Определения tablettemplate.php:20
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804