如何使用twig渲染来制作文件?

时间:2017-03-04 10:47:25

标签: php symfony twig

我想用twig制作js文件。

这些是我想要做的。

网/ base.js

// this is my base file
alert("this file is created by " + "{{var}}");

然后在我的命令中 /src/Acme/TopBundle/Command/genFileCommand.php

class genFileCommand extends ContainerAwareCommand
{
    protected function execute(InputInterface $input, OutputInterface $output){    
        $var = 'whitebear';
       //then some how pass the this value to twig and make file here

    }
}

最后,我想创建这个文件。

/web/gen/generated.js

// this is my base file
alert("this file is created by " + "whitebear");

虽然这种方式使用树枝可能是一种不规则的方式,但树枝非常简单,渲染系统也很好。

如果我能这样做,代码更具可读性,便于维护。

有可能吗?

1 个答案:

答案 0 :(得分:1)

最快捷的方法是将您的javascript基本文件放在var diretoryTreeToObj = function (dir, done) { var results = {}; var _contents = []; var files = []; fs.readdir(dir, function (err, list) { if (err) { return done(err); } var pending = list.length; if (!pending) { return done(null, {name: path.basename(dir), type: 'folder', children: results}); } list.forEach(function (file, index) { file = path.resolve(dir, file); fs.stat(file, function (err, stat) { results['_contents'] = files; if (stat && stat.isDirectory()) { diretoryTreeToObj(file, function (err, res) { results[path.basename(file)] = res; if (!--pending) { done(null, results); } }); } else { files.push({ name: path.basename(file), path: file }); results['_contents'] = files; if (!--pending) { done(null, results); } } }); }); }); }; 的视图文件夹中,然后使用vars渲染基本模板,并将Twig的输出保存到file_put_contents文件夹中。