(1)安装模板引擎ejs
npm install ejs
(2)node.js代码
const ejs=require('ejs');
const fs=require('fs');
let filename='test.ejs';
let data={className:'site',memberList:['url','title']};
let data2={className:'person',memberList:['name','sex']};
let options={};
ejs.renderFile(filename,data,options,(err,str)=>{
if(err){
console.log(err);
}
else{
console.log(str);
str=str.replace(/\r\n(\s)*\r\n/g,"\r\n");
console.log(str);
fs.writeFileSync('test.php',str);
}
});
ejs.renderFile(filename,data2,options,(err,str)=>{
if(err){
console.log(err);
}
else{
console.log(str);
str=str.replace(/\r\n(\s)*\r\n/g,"\r\n");
console.log(str);
fs.writeFileSync('test2.php',str);
}
});
(3)ejs模板
<?php
class <%= className %> {
/* 成员变量 */
<% for(var i=0;i<memberList.length;i++){ %>
var $<%= memberList[i] %>
<% } %>
/* 成员函数 */
<% for(var i=0;i<memberList.length;i++){ %>
function set<%= memberList[i] %>($par){
$this-><%= memberList[i] %> = $par;
}
function get<%= memberList[i] %>(){
return $this-><%= memberList[i] %>;
}
<% } %>
}
?>
(4)生成php文件
test.php
<?php
class site {
/* 成员变量 */
var $url
var $title
/* 成员函数 */
function seturl($par){
$this->url = $par;
}
function geturl(){
return $this->url;
}
function settitle($par){
$this->title = $par;
}
function gettitle(){
return $this->title;
}
}
?>
test2.php
<?php
class person {
/* 成员变量 */
var $name
var $sex
/* 成员函数 */
function setname($par){
$this->name = $par;
}
function getname(){
return $this->name;
}
function setsex($par){
$this->sex = $par;
}
function getsex(){
return $this->sex;
}
}
?>