メインコンテンツへスキップ

blocs/blocs: Laravel 非依存モード(Blocs\View)

blocs/blocs: Laravel 非依存モード(Blocs\View)

define('BLOCS_NO_LARAVEL', true) を設定すると、Laravel なしで BLOCS テンプレートをコンパイル・表示できます。スタンドアロン PHP、単体テスト、静的 HTML 生成などに使います。

前提条件: blocs/blocs パッケージがインストール済みであること。No.2.1 の上級者向け補足も参照してください。

基本的な使い方

require_once 'vendor/blocs/blocs/src/View.php';

// コンストラクタにテンプレートファイルのパスを渡す
$view = new Blocs\View('/path/to/template.blocs.html');

// 変数を渡して HTML 文字列を取得
$html = $view->generate(['name' => '太郎']);

// または直接出力して終了
$view->output(['name' => '太郎']);

主なメソッド

メソッド 説明
generate($val, $withFixer = false) 変数 $val を展開して HTML 文字列を返す
output($val, $withFixer = false) generate() した HTML を echo して exit
getPath() テンプレートの実ファイルパスを返す

$withFixer = true にすると、HTML ドキュメントのコメント除去・空行整理などの整形が行われます(textarea / pre 内は除外)。

キャッシュディレクトリ

Laravel 非依存モードでは View.php 読み込み時に BLOCS_NO_LARAVEL が自動定義され、BLOCS_CACHE_DIR は書き込み可能な一時ディレクトリ(/tmp 等)が自動選択されます。失敗すると B001 が発生します。

手動で指定する場合:

define('BLOCS_NO_LARAVEL', true);
define('BLOCS_CACHE_DIR', '/path/to/cache/');
define('BLOCS_ROOT_DIR', '/path/to/templates/');
require_once 'vendor/blocs/blocs/src/View.php';

制限事項

コンパイルの仕組み

初回 generate() 時に BlocsCompiler がテンプレートを PHP にコンパイルし、BLOCS_CACHE_DIR/{md5}.php と同名の .json メタデータを生成します。include 先の更新時刻を見て再コンパイルするか判定します(Laravel 版と同様)。