You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

核心PHP环境下duncan3dc/Blade模板静态添加自定义指令方法咨询

原生PHP下duncan3dc/blade静态添加自定义指令方案

你当前的动态实现是每次实例化BladeInstance时传入配置好的指令集,要改成静态全局生效的方式可以通过该库提供的静态门面类实现,只需要全局配置一次就可以在所有模板渲染场景生效,具体实现如下:

1. 全局静态初始化配置

在项目的入口文件或者公共配置加载阶段(仅需执行一次)完成配置:

use duncan3dc\Laravel\Blade;
use duncan3dc\Laravel\Directives;

// 预配置资源路径和其他自定义指令
$directives = (new Directives)
    ->withCss('assets/css')
    ->withJs('assets/js');

// 静态初始化Blade,依次传入视图目录、缓存目录和配置好的指令集,路径替换为你项目的实际路径即可
Blade::init("/your/project/views/path", "/your/project/cache/views/path", $directives);

2. 后续使用无需重复配置

完成初始化后,任意位置需要渲染模板直接调用静态方法即可,你之前使用的@css()、@js()指令已经全局生效:

// 静态渲染模板示例,第一个参数为模板路径,第二个参数为传入模板的变量数组
echo Blade::render("page.user", ["username" => "张三"]);

3. 额外添加其他自定义静态指令

如果需要扩展更多自定义指令,直接调用静态directive方法注册即可:

// 示例:注册一个格式化时间的自定义指令
Blade::directive('formatDate', function ($timestamp) {
    return "<?php echo date('Y年m月d日', {$timestamp}); ?>";
});

模板中使用方式:@formatDate(time())
注意:以上实现完全基于原生PHP,不依赖Laravel框架

内容的提问来源于stack exchange,提问作者Abdulbasit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 23:06:02