LoginSignup
2
1

More than 1 year has passed since last update.

【BladeOne】Laravelを使わずにBladeだけを使いたい!(※インストールと基本的な使い方を解説)

Last updated at Posted at 2022-08-07

はじめに

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

index.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);
name.blade.php
<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.

参考:BladeOne#php-5x-support

参考文献

EFTEC/BladeOne

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1