像npm, composer等工具,在开始使用的使用,都需要初始化项目,生成一个项目的配置文件。这种功能的原理是怎么实现的呢?
比如:
D:>npm init --yes Wrote to D:package.json: { "name": "", "version": "1.0.0", "description": "", "main": "index.js", "directories": { "doc": "doc" }, "scripts": { "test": "echo "Error: no test specified" && exit 1" }, "keywords": [], "author": "", "license": "ISC"
其实很简单,在之前这篇文章php解释命令行的参数的基础上,加上下面的init分支,即可实现类似的功能
#!/usr/bin/php <?php function init(){ return file_put_contents( getcwd() . '/go.json', '{}' ) . 'bytes has written.' . 'config file has created'; } $res = ''; if( $argc >= 2 ) { $argv[1] == '-v' && $res = 'go version is 1.0'; $argv[1] == 'init' && $res = init(); } echo $res . PHP_EOL;
ghostwu@ghostwu:~/mybin$ ls go2 ghostwu@ghostwu:~/mybin$ go2 init 2bytes has written.config file has created ghostwu@ghostwu:~/mybin$ ls go2 go.json ghostwu@ghostwu:~/mybin$ cat go.json {}ghostwu@ghostwu:~/mybin$