Biq*_*rar 12 php variables symfony twig php-7.4
我在我的项目中使用 php7.3 并在这个项目中使用 Twig
将我的 php 版本升级到 7.4 后,我在树枝渲染中出现了一些错误。
我通过 Twig 变量设置了一些 html 类
例如:
<body class='{{global.direction}} preload {{bodyclass}}'></body>
Run Code Online (Sandbox Code Playgroud)
使用 php 7.3 时,Twig 渲染的输出为:
<body class='ltr preload main'></body>
Run Code Online (Sandbox Code Playgroud)
我的来源没有问题。
但是当我的 php 升级到 php 7.4 时,输出发生了变化!
<body class='ltr preloadmain'></body>
Run Code Online (Sandbox Code Playgroud)
Twig 在变量之前删除了空间,并且在我的源代码中发生了非常错误:/
从 Twig 到处调用变量,Twig 删除它之前的所有空间!
有什么解决办法吗?
如何解决?
小智 6
对我有用的一般答案(Opencart Twig 也是)与评论中提到的修复 Simo Heinonen 有关,即 https://github.com/twigphp/Twig/pull/3004/commits/1fb0f9701d8443083495cd2645e8a0c45d54c34d
不同版本的代码会与上面显示的有所不同。对于 Opencart Twig(大多数版本,但使用 oc 3.0.3.3 进行了测试)显然修复的是:
在文件 Lexer.php 中找到函数 lexData 第 163 行的变化:
if (isset($this->positions[2][$this->position][0]) ) {
$text = rtrim($text);
}
Run Code Online (Sandbox Code Playgroud)
到
if (isset($this->positions[2][$this->position][0]) && ($this->options['whitespace_trim'] === $this->positions[2][$this->position][0])) {
$text = rtrim($text);
}
Run Code Online (Sandbox Code Playgroud)
Pie*_*aud -2
twig我在我的项目中使用symfony,但无法重现您所描述的行为。
作为一个(丑陋的)修复,也许你可以更改为:
<body class="{{ global.direction ~ ' preload ' ~ bodyclass }}"></body>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2939 次 |
| 最近记录: |