@ barefootjs/ blade (英语)
Laravel Blade (PHP) 赤脚JS的适配器:编译赤脚JS IR
(JSX ~ IR,见 spec/compiler.md改为: .blade.php 模板文件外加
客户端 JS 将每个其它适配器捆绑,并装入 PHP 渲染
运行时间( o)php/src/)使这些模板通过 illuminate/view
使用独立的——不需要Laravel应用程序/容器.
近机械港口 @barefootjs/twig (Twig适配器)到刀锋
语法. 见 src/adapter/blade-adapter.ts完整的页眉注释
TwigQQBlade语法图表和JS/PHP语义上存在分歧
端口处理统一( 真实性、 字符串化、 保留词)
识别器铺设, $bf->eq编号 :$bf->neq 为JS严格的平等, data_get
用于多态成员/索引访问,以及只用于评估的更高排序
由于"刀锋"没有羊肉达表达式,所以回调降低.
模板输出形状
name: 'blade', (中文(简体) ),extension: '.blade.php', (中文(简体) ),templatesPerComponent: true—— 说 一个.blade.php每个组件的文件, 由蛇定义 PascalCase 命名 组件名称 (UserCard→user_card.blade.php) (中文(简体) ).- 水分标记(
bf-s, (中文(简体) ),bf-h编号 :bf-m编号 :bf-r, (中文(简体) ),bf-p时段/条件 注释标记, 循环边界注释) 使用 SAME 运行时法 每个适配器的名称bf.*调用, 拼写为 PHP 方法调用 编辑$bf变量 ($bf->scope_attr(), (中文(简体) ),$bf->hydration_attrs(), (中文(简体) ),$bf->text_start编号 :text_end, (中文(简体) ),$bf->comment(...))——见spec/template-helpers.md共享帮助合同. - 可能非字符串值的每个文本/属性插值都是
路径通过
$bf->string(...)(或$bf->bool_str(...)页:1 布尔形状值; 每个非比较条件位置是 路径通过$bf->truthy(...);每个联合来文===编号 :!==比较路径 结束$bf->eq(...)编号 :$bf->neq(...)(菲律宾的)==编号 :===无论是 与联署材料不同的方式对代表人数有敏感认识 《公约》第2条第1款(a)项 全部都是纯 PHP 运行时的助手——参见 PHP 运行时 下面的指针.
PHP 运行时间
php/src/ 是一个自成一体的 PHP 软件包( 依赖性 : illuminate/view
财务报告和审定财务报表 barefootjs/runtime实施引擎不可知性 bf 对象
每一次发出的模板调用:水分标记、上下文传播
(单位:千美元)provide_context编号 :use_context),儿童组件渲染
(单位:千美元)render_child),脚本注册,以及JS相容的帮助者
图书馆(string, (中文(简体) ), bool_str, (中文(简体) ), truthy, (中文(简体) ), number, (中文(简体) ), floor编号 :ceil编号 :round, (中文(简体) ),
数组/字符串助手 *_eval 评估人员, spread_attrs, (中文(简体) ),
query, (中文(简体) ), eq编号 :neq(中文(简体) ). 它反映了
packages/adapter-perl/lib/ (引擎不可知核加薄
每引擎后端)——参见: spec/template-helpers.md 语义
每个帮助者必须满足合同要求,而且包件本身的测试在
php/tests/。 。 。 .
使用量
// vite.config.ts
import { defineConfig } from 'vite'
import { barefoot } from '@barefootjs/blade/vite'
export default defineConfig({
plugins: barefoot({
components: ['./src/components'],
templates: './dist/templates',
}),
})
vite build 然后发射 .blade.php 模板 + 客户 templates
维特自己的 build.outDirPHP 主机通过构建
a 一个 illuminate/view Factory
独立(Filesystem + 事件 Dispatcher + 键 EngineResolver 注册
(单位:千美元) blade 引擎过 a BladeCompiler + 键 FileViewFinder,所有线
由 Factory 看到了吗 php/src/BladeBackend.php构造器)
指向 PHP 中发射的模板、 线程 BladeBackend 作为
提供后端。 刀锋 {{ }} 复调( e)Illuminate\Support\e()发件人名称
HTML 实体表 ("编号 :' 通过 ENT_QUOTES在Perl/Go/处
标记安全 发送数字 "编号 :' 窗体 — 见适配器页眉
评论如何处理字节形式差异.