NaifyViewExtension\Dialect\Smarty\Migration\SmartySyntaxAudit クラス
SmartySyntaxAudit — Smartyから移行する前に、未対応の構文を調べる
現在の変換処理と中間表現への変換を使い、移行時に確認が必要な箇所を集める。 元のテンプレートは書き換えない。問題が出なかった場合も、実際の描画テストは別途必要。
使用例
use NaifyView\NaifyView;
use NaifyViewExtension\NaifyViewExtension;
use NaifyViewExtension\Dialect\Smarty\Migration\SmartySyntaxAudit;
NaifyView::boot();
NaifyViewExtension::boot();
$report = SmartySyntaxAudit::scanPaths(__DIR__ . '/views', [
'extensions' => ['tpl'],
]);
echo SmartySyntaxAudit::formatTextReport($report);
メソッド
| メソッド | 説明 |
|---|---|
public
static
scanPaths(array|string $paths, array $options = '...'): array
|
指定したディレクトリを走査し、調査結果をまとめる
標準ではtplとhtmlを対象にする。独自の区切り文字はoptionsで指定する。 |
public
static
defaultCustomTagNames(): array
|
|
public
static
formatTextReport(array $report): string
|
棚卸し結果を、ターミナルで読めるテキストに整える |
private
static
appendIssue(array $issues, array $issueCounts, string $filePath, array $issue): void
|
|
private
static
scanTemplate(string $template, string $filePath, string $relativePath, string $openDelimiter, string $closeDelimiter, array $customTags, array $additionalLocalNames, array $availableTemplateFiles, array $templateSources): array
|
|
private
static
readFileContentsIfAvailable(string $path): ?string
|
|
private
static
scanUnsupportedTags(string $template, string $openDelimiter, string $closeDelimiter, array $customTags): array
|
|
private
static
isUnsupportedTagName(string $tagName, bool $closing): bool
|
|
private
static
normalizeRoots(array|string $paths): array
|
|
private
static
normalizeDelimiters(array $delimiters): array
|
|
private
static
normalizeExtensions(array $extensions): array
|
|
private
static
normalizeCustomTags(array $customTags): array
|
|
private
static
readTagBody(string $template, int $offset, string $openDelimiter, string $closeDelimiter): array
|
|
private
static
consumeLiteralBlock(string $template, int $offset, string $openDelimiter, string $closeDelimiter): array
|
|
private
static
isFunctionStyleTag(string $body): bool
|
|
private
static
isCustomTagName(string $tagName, array $customTags): bool
|
|
private
static
getTagName(string $body): string
|
|
private
static
offsetToLine(string $source, int $offset): int
|
|
private
static
buildLineSnippet(string $template, int $line): string
|
|
private
static
trimSnippet(string $body): string
|
|
private
static
isEscapedCharacter(string $source, int $offset): bool
|