Tagself 保护标签

Testing Is Documentation

tests/View/Compiler/CompilerTagselfTest.phpTagself 保护标签 - 图1

可以使用 tagself 标签来防止模板标签被解析,在特殊场景非常有用。

基本使用

  1. public function testBaseUse(): void
  2. {
  3. $parser = $this->createParser();
  4. $source = <<<'eot'
  5. <tagself>
  6. <if condition="$name eq 1 "> value1
  7. <elseif condition="$name eq 2" />value2
  8. <else /> value3
  9. </if>
  10. </tagself>
  11. {tagself}
  12. {{i + 1}}
  13. {$value}
  14. {/tagself}
  15. eot;
  16. $compiled = <<<'eot'
  17. <if condition="$name eq 1 "> value1
  18. <elseif condition="$name eq 2" />value2
  19. <else /> value3
  20. </if>
  21. {{i + 1}}
  22. {$value}
  23. eot;
  24. $this->assertSame($compiled, $parser->doCompile($source, null, true));
  25. }

TIP

上面的 if 标签tagself 标签包含,因此 if 标签 里面的内容并不会被模板引擎解析,而是保持原样输出。