for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace suda\application\template;
use suda\application\template\compiler\Tag;
use suda\application\template\compiler\Compiler;
/**
* 可执行命令表达式
*
*/
class ModuleTemplateCompiler extends Compiler
{
* @var array
protected $config = [];
* 定义的标签
protected $tag = [
'raw' => [
'{{!', '}}',
'<?php echo $code; ?>',
],
'comment' => [
'{--', '--}',
'<?php /* $code */ ?>',
'echo' => [
'{{', '}}',
'<?php echo htmlspecialchars($this->application->_($code), ENT_SUBSTITUTE | ENT_QUOTES | ENT_HTML5); ?>',
'string' => [
'{=', '}',
'<?php echo htmlspecialchars($this->application->_("$code"), ENT_SUBSTITUTE | ENT_QUOTES | ENT_HTML5); ?>',
'raw-string' => [
'@{', '}',
'<?php echo htmlspecialchars($code, ENT_SUBSTITUTE | ENT_QUOTES | ENT_HTML5); ?>',
'event' => [
'{:', '}',
'<?php $this->application->event()->exec("$code", [$this]); ?>',
];
* @return array
public function getConfig(): array
return $this->config;
}
* @param array $config
public function setConfig(array $config): void
$this->config = $config;
public function init()
$this->registerCommand(new ModuleTemplateCommand);
foreach ($this->tag as $name => $value) {
$open = $this->config[$name]['open'] ?? $value[0];
$close = $this->config[$name]['close'] ?? $value[1];
$this->registerTag(new Tag($name, $open, $close, $value[2]));