使用LaravelBlade CLI包, 你可以使用Blade引擎从命令行渲染文件.这个包并不100%支持你在Laravel中可能熟悉的所有Blade指令,但确实支持常见的指令,如@if,@else,@foreach,@forelse,@while, 等等。
给出下面这个来自readme的例子文件:
name: {{ $name }}
relationship: {{ $relationship }}
favorite_food: {{ $favoriteFood }}
@if($includeAddress)
address: "123 example lane"
@endif
你可以使用CLI渲染该文件:
blade render ./person.yml \
--name="Bob" \
--relationship="Uncle" \
--favorite-food="Pizza" \
--include-address \
--save-directory="build/"
这将使文件保存在./build/person.yml
通过composer全局安装这个项目,你可以访问blade CLI命令。然而,你也可以直接使用这个软件包中的代码。
use BladeCLI\Blade;
use Illuminate\Container\Container;
use Illuminate\Filesystem\Filesystem;
$blade = new Blade(
container: new Container,
filesystem: new Filesystem,
filePath: '/path/to/file/to/render',
options: [
'force'=> true, // force overwrite existing rendered file
'save-directory'=>'save-to-dir' // optional directory to save rendered file to. Default is current directory.
]
);
// render the file with this data/vars
$blade->render([
'var'=>'example'
]);
你也可以使用--from-json 标志通过JSON向模板传递数据,该标志接受一个JSON文件的路径。最后,你可以使用这个包来处理整个目录中的模板。
php blade render templates/ --some-data=foo --force