3namespace Bitrix\Main\Cli\Command\Make\Service;
5use Bitrix\Main\Cli\Command\Make\Service\Component\GenerateDto;
6use Bitrix\Main\Cli\Command\Make\Templates\Component\ClassTemplate;
7use Bitrix\Main\Cli\Command\Make\Templates\Component\LangTemplate;
8use Bitrix\Main\Cli\Command\Make\Templates\Component\TemplateTemplate;
9use Bitrix\Main\Cli\Helper\Renderer;
10use Bitrix\Main\Engine\Response\Converter;
42 $this->renderer->renderToFile($filePath, $fileTemplate);
51 $this->renderer->renderToFile($filePath, $fileTemplate);
58 $filePath = $this->
getPathToComponent($dto) .
'/templates/.default/lang/ru/template.php';
60 $this->renderer->renderToFile($filePath, $fileTemplate);
65 $root = $dto->root ?? (string)
$_SERVER[
'DOCUMENT_ROOT'];
67 $bitrixFolder = ($dto->namespace !==
'bitrix' || $dto->local) ?
'local' :
'bitrix';
68 $componentsFolder = $dto->noModule ?
'components' :
"modules/$dto->module/install/components";
70 return "$root/$bitrixFolder/$componentsFolder/$dto->namespace/$dto->name";
79 className: $className,
85 $converter =
new Converter(Converter::TO_CAMEL);
89 return $converter->process(
$name) .
'Component';
96 containerId: $this->generateContainerId($dto->name),
97 extensionName: $dto->name,
98 extensionClass: $this->generateExtensionClass($dto->name),
106 componentTitle: $this->generateTitle($dto->name),
112 $converter =
new Converter(Converter::TO_UPPER);
116 return $converter->process(
$name) .
'_TITLE';
121 $converter =
new Converter(Converter::TO_CAMEL);
125 return trim(array_reduce(explode(
'.',
$name), fn ($acc, $it) =>
"$acc " . $converter->process($it)));
130 return preg_replace(
'/[._]/',
'-',
$name);
135 $converter =
new Converter(Converter::TO_CAMEL);
139 return 'BX' . array_reduce(explode(
'.',
$name), fn ($acc, $it) =>
"$acc." . $converter->process($it));
getPathToComponent(GenerateDto $dto)
generateTemplateFile(GenerateDto $dto)
createLangTemplate(GenerateDto $dto)
createClassTemplate(GenerateDto $dto)
generateLangContent(GenerateDto $dto)
generateExtensionClass(string $name)
createTemplateTemplate(GenerateDto $dto)
generateTemplateContent(GenerateDto $dto)
generateTitle(string $name)
generateClassContent(GenerateDto $dto)
generateContainerId(string $name)
generateLangFile(GenerateDto $dto)
generateClassName(string $name)
generateClassFile(GenerateDto $dto)
generateTitlePhrase(string $name)
$_SERVER["DOCUMENT_ROOT"]