1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
renderer.php
См. документацию.
1<?php
2
3namespace Bitrix\Main\Cli\Helper;
4
5use Bitrix\Main\Cli\Helper\Renderer\Template;
6use Bitrix\Main\IO\File;
7
8final class Renderer
9{
10 public function renderToFile(string $filePath, Template $template): void
11 {
12 $file = new File($filePath);
13 $file->putContents($template->getContent());
14 }
15
16 public function replaceFileContent(string $filePath, Template $template, string $startTag, string $endTag): void
17 {
18 $file = new File($filePath);
19
20 if (!$file->isExists())
21 {
22 $this->renderToFile($filePath, $template);
23 return;
24 }
25
26 $fileContent = $file->getContents();
27 $templateContent = $template->getContent();
28
29 $startPos = mb_strpos($fileContent, $startTag);
30 $endPos = mb_strpos($fileContent, $endTag);
31
32 if ($startPos !== false && $endPos !== false && $endPos > $startPos)
33 {
34 $beforeStart = mb_substr($fileContent, 0, $startPos + mb_strlen($startTag));
35 $afterEnd = mb_substr($fileContent, $endPos);
36
37 $newContent = $beforeStart . PHP_EOL . $templateContent . PHP_EOL . $afterEnd;
38 }
39 else
40 {
41 $lastBrace = mb_strrpos($fileContent, '}');
42
43 if ($lastBrace !== false)
44 {
45 $beforeBrace = mb_substr($fileContent, 0, $lastBrace);
46 $afterBrace = mb_substr($fileContent, $lastBrace);
47
48 $newContent = $beforeBrace . PHP_EOL . $templateContent . PHP_EOL . $afterBrace;
49 }
50 else
51 {
52 $newContent = $fileContent . PHP_EOL . $templateContent;
53 }
54 }
55
56 $file->putContents($newContent);
57 }
58}
renderToFile(string $filePath, Template $template)
Определения renderer.php:10
replaceFileContent(string $filePath, Template $template, string $startTag, string $endTag)
Определения renderer.php:16
$template
Определения file_edit.php:49
$fileContent
Определения file_property.php:47
Определения Image.php:9