LaravelBlade CLI包——使用Blade引擎从命令行渲染文件

239 阅读1分钟

使用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