はじめに
Laravelを使うほどでもないけど、Bladeだけは使いたいってありますよね。
そんな時にBladeOneを見つけました。
BladeOneは生のPHPでBladeを使用することができるものです。
こちらを使用して実装する機会がありましたのでまとめることにしました。
QiitaではBladeOneの記事がほぼないため参考になればと思います。
BladeOneとは
BaldeOneとは、LaravelのBladeを単一のPHPで使用できるようにしたものです。
ただし、LaravelのBladeとBladeOneは違うものなので注意が必要です。
※詳細は「Differences between Blade and BladeOne」を参照して下さい。
ライセンス
ライセンスは「License」を参照して下さい。
インストール
インストール方法は2パターンです。
- composerを使用してインストール(今回はこちらを使用)
composer require eftec/bladeone
- Gitからダウンロードしてフォルダを配置する。
基本的な使い方
※テンプレートの名前には「~.blade.php」をつける。例:name.blade.php
<?php
require_once __DIR__."/vendor/autoload.php";
use eftec\bladeone\BladeOne;
// 読み込みを行いたいテンプレートパス記述
$views = __DIR__.'/views';
$cache = __DIR__.'/cache';
$blade = new BladeOne($views,$cache,BladeOne::MODE_AUTO);
$name1 = "イチロウ";
$name2 = "ジロウ";
$array = array(
"name1" => $name1,
"name2" => $name2,
);
echo $blade->run("name", $array);
<div>
<p>{{$name1}}</p>
<p>{{$name2}}</p>
</div>
補足
$viewsと$cache
$views
はビュー (コンパイルされていないテンプレート) が格納されるフォルダです。
$cache
はコンパイルされたファイルが保存されるフォルダです。
MODEについて
$blade = new BladeOne($views,$cache,BladeOne::MODE_AUTO);
上記でモードも決めているがMODEにはいくつかの種類が存在しているため注意が必要。
- MODE_AUTO
- コンパイルされたファイルが変更されたかどうかを確認。変更されている場合はファイルが置き換えられる。
- MODE_SLOW
- コンパイルされたファイルが常に置き換えられる。読み込み速度が遅くなる。
- MODE_FAST
- コンパイルされたファイルが置き換わることがない。ただし、読み込み速度が速くなる。
- MODE_DEBUG
- 常にコンパイルされ、エラーが発生したファイル名の特定が可能。
注意
PHP 5.x はサポートしていないみたいです。
PHP 5.6以上は旧バージョン?が使用できるみたいです。(私の方では未検証です)
PHP 5.x support?
This version does not support PHP 5.x anymore. However, you can use the old version that is 100% functional with PHP 5.6 and higher.