NaifyViewExtension\Dialect\Smarty\Migration\SmartyVariableInventory クラス
SmartyVariableInventory — テンプレート内の変数参照と代入を棚卸しする
どの変数が、どの書き方で使われているかを集計する。移行前の確認用で、テンプレートは書き換えない。
使用例
use NaifyView\NaifyView;
use NaifyViewExtension\NaifyViewExtension;
use NaifyViewExtension\Dialect\Smarty\Migration\SmartyVariableInventory;
NaifyView::boot();
NaifyViewExtension::boot();
$report = SmartyVariableInventory::scanPaths(__DIR__ . '/views', [
'extensions' => ['tpl'],
]);
echo SmartyVariableInventory::formatTextReport($report);
メソッド
| メソッド | 説明 |
|---|---|
public
static
scanPaths(array|string $paths, array $options = '...'): array
|
指定したディレクトリを走査し、調査結果をまとめる
標準ではtplとhtmlを対象にする。独自の区切り文字はoptionsで指定する。 |
public
static
formatTextReport(array $report): string
|
棚卸し結果を、ターミナルで読めるテキストに整える |
private
static
scanTemplate(string $template, string $filePath, string $openDelimiter, string $closeDelimiter): array
|
|
private
static
scanTagBody(string $body, string $template, int $bodyOffset, string $filePath): array
|
|
private
static
addInventoryEntry(array $inventory, array $classificationCounts, array $entry, string $keyName, string $classificationName): void
|
|
private
static
classifyAssignmentTarget(string $target): string
|
|
private
static
classifyVariableAccess(string $expression): string
|
|
private
static
normalizeRoots(array|string $paths): array
|
|
private
static
normalizeDelimiters(array $delimiters): array
|
|
private
static
normalizeExtensions(array $extensions): array
|
|
private
static
iterateTemplateFiles(string $root, array $extensions): Generator
|
|
private
static
readFileContentsIfAvailable(string $path): ?string
|
|
private
static
readTagBody(string $template, int $offset, string $openDelimiter, string $closeDelimiter): array
|
|
private
static
consumeLiteralBlock(string $template, int $offset, string $openDelimiter, string $closeDelimiter): int
|
|
private
static
getTagName(string $body): string
|
|
private
static
trimSnippet(string $snippet): string
|
|
private
static
offsetToLine(string $source, int $offset): int
|
|
private
static
isEscaped(string $source, int $offset): bool
|
|
private
static
sortInventory(array $inventory): void
|