php根据命令行参数生成配置文件详解


Posted in PHP onMarch 15, 2019

像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$

以上所述是小编给大家介绍的php根据命令行参数生成配置文件详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
example2.php
Oct 09 PHP
留言板翻页的实现详解
Oct 09 PHP
PHP防注入安全代码
Apr 09 PHP
PHP中Date()时间日期函数的使用方法小结
Apr 20 PHP
php实现的一个很好用HTML解析器类可用于采集数据
Sep 23 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
Feb 10 PHP
在Mac上编译安装PHP7的开发环境
Jul 28 PHP
Zend Framework动作助手Url用法详解
Mar 05 PHP
php处理抢购类功能的高并发请求
Feb 08 PHP
PHP自动生成缩略图函数的源码示例
Mar 18 PHP
Laravel5.7 Eloquent ORM快速入门详解
Apr 12 PHP
laravel实现上传图片的两种方式小结
Oct 12 PHP
详解PHP的抽象类和抽象方法以及接口总结
Mar 15 #PHP
PHP基于面向对象封装的分页类示例
Mar 15 #PHP
浅谈PHP无限极分类原理
Mar 14 #PHP
详解PHP队列的实现
Mar 14 #PHP
PHP精确到毫秒秒杀倒计时实例详解
Mar 14 #PHP
PHP的简单跳转提示的实现详解
Mar 14 #PHP
PHP封装的数据库模型Model类完整示例【基于PDO】
Mar 14 #PHP
You might like
很好用的PHP数据库类
2009/05/27 PHP
一个基于PDO的数据库操作类(新) 一个PDO事务实例
2011/07/03 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
2015/08/25 PHP
JavaScript 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
2010/10/11 Javascript
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
2013/01/11 Javascript
简介AngularJS中使用factory和service的方法
2015/06/17 Javascript
JQuery实现简单的服务器轮询效果实例
2016/03/31 Javascript
详解AngularJs HTTP响应拦截器实现登陆、权限校验
2017/04/11 Javascript
Swiper自定义分页器使用详解
2017/12/28 Javascript
360doc网站不登录就无法复制内容的解决方法
2018/01/27 Javascript
使用vue for时为什么要key【推荐】
2019/07/11 Javascript
JavaScript 实现HTML DOM增删改查操作的常见方法详解
2020/01/04 Javascript
js与jquery获取input输入框中的值实例讲解
2020/02/27 jQuery
JS组件库AlloyTouch实现图片轮播过程解析
2020/05/29 Javascript
Vue props中Object和Array设置默认值操作
2020/07/30 Javascript
VUE中V-IF条件判断改变元素的样式操作
2020/08/09 Javascript
[02:38]DOTA2英雄基础教程 噬魂鬼
2014/01/03 DOTA
[16:14]教你分分钟做大人:米拉娜(HEROS)
2014/11/24 DOTA
Python程序设计入门(4)模块和包
2014/06/16 Python
Python探索之修改Python搜索路径
2017/10/25 Python
判断python对象是否可调用的三种方式及其区别详解
2019/01/31 Python
Python 存储字符串时节省空间的方法
2019/04/23 Python
python3.x提取中文的正则表达式示例代码
2019/07/23 Python
python SVD压缩图像的实现代码
2019/11/05 Python
python如何查看安装了的模块
2020/06/23 Python
Python使用sys.exc_info()方法获取异常信息
2020/07/23 Python
福克斯租车:Fox Rent A Car
2017/04/13 全球购物
什么是lambda函数
2013/09/17 面试题
自考生自我评价分享
2014/01/18 职场文书
一体化教学实施方案
2014/05/10 职场文书
群众路线教育实践活动调研报告
2014/11/03 职场文书
关于考试抄袭的检讨书
2019/11/02 职场文书
Jupyter notebook 不自动弹出网页的解决方案
2021/05/21 Python
Python实现为PDF去除水印的示例代码
2022/04/03 Python
python使用shell脚本创建kafka连接器
2022/04/29 Python
Nginx报错104:Connection reset by peer问题的解决及分析
2022/07/23 Servers