讨论数量:
其实核心就是定义好模板文件,比如模板:
<?php
declare (strict_types = 1);
namespace {%namespace%};
class {%className%}
{
}
然后在获取命令行参数,进行替换,最后file_put_contents输入到真实文件里面去
直接写呗,$_SERVER['argv']
就可以获取到从命令行传进来的参数,getopt 可以解析参数,剩下的就跟正常写代码一样,无非就是拼接,然后 file_put_contents
。
不过,为了方便,建议使用 symfony/console 作为基础包。
给你写了一个原生的小demo:
新建模板文件controller.plain
:
<?php
class {%className%}
{
//
}
新建build.php
文件:
<?php
// 去除第一个参数(脚本名称)
$argv = $_SERVER['argv'];
array_shift($argv);
$className = $argv[0];
// 读取模板
$plain = file_get_contents('./controller.plain');
// 替换模板变量
$classFile = str_replace(['{%className%}'], [$className], $plain);
// 写入生成的文件
file_put_contents($className . '.php', $classFile);
echo 'created successfully.';
执行php build.php DemoController
,那么就会在当前目录生成DemoController.php
文件
推荐文章: