Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 19f8d3c

Browse files
committed
Merge pull request laravel#1818 from robclancy/4.0
Fix for compiler tags breaking in certain situations
2 parents afe715c + 7f68ca1 commit 19f8d3c

2 files changed

Lines changed: 20 additions & 0 deletions

File tree

src/Illuminate/View/Compilers/BladeCompiler.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,13 @@ protected function compileComments($value)
172172
*/
173173
protected function compileEchos($value)
174174
{
175+
$difference = strlen($this->contentTags[0]) - strlen($this->escapedTags[0]);
176+
177+
if ($difference > 0)
178+
{
179+
return $this->compileEscapedEchos($this->compileRegularEchos($value));
180+
}
181+
175182
return $this->compileRegularEchos($this->compileEscapedEchos($value));
176183
}
177184

tests/View/ViewBladeCompilerTest.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,19 @@ public function testEchosAreCompiled()
7474
}
7575

7676

77+
public function testReversedEchosAreCompiled()
78+
{
79+
$compiler = new BladeCompiler($this->getFiles(), __DIR__);
80+
$compiler->setEscapedContentTags('{{', '}}');
81+
$compiler->setContentTags('{{{', '}}}');
82+
$this->assertEquals('<?php echo e($name); ?>', $compiler->compileString('{{$name}}'));
83+
$this->assertEquals('<?php echo $name; ?>', $compiler->compileString('{{{$name}}}'));
84+
$this->assertEquals('<?php echo $name; ?>', $compiler->compileString('{{{ $name }}}'));
85+
$this->assertEquals('<?php echo $name; ?>', $compiler->compileString('{{{
86+
$name
87+
}}}'));
88+
}
89+
7790
public function testExtendsAreCompiled()
7891
{
7992
$compiler = new BladeCompiler($this->getFiles(), __DIR__);

0 commit comments

Comments
 (0)