我想用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");
虽然这种方式使用树枝可能是一种不规则的方式,但树枝非常简单,渲染系统也很好。
如果我能这样做,代码更具可读性,便于维护。
有可能吗?
答案 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
文件夹中。