创建myapp,在myapp里创建lib/command目录

新建一个文件hello.php

<?php
/**
* myapp_command_hello(myapp->app名称,command必须的,hello对应类名)
* 所有命令类都继承自base_shell_prototype类
*/
class myapp_command_hello extends base_shell_prototype{ //$command_world(command必须的,world命令)
var $command_world = 'helloworld';//helloworld解释作用
function command_world(){
echo "hello,world\n";
}
//dos执行方式 myapp:hello world(myapp->app名称,hello->文件名, command+world->方法名)
}

新建一个文件world.php

<?php
class myapp_command_world extends base_shell_prototype{ var $command_3guys = '3guys';
function command_3guys($t1,$t2,$t3){
echo '1\t',$t1,'\n';
echo '1\t',$t2,'\n';
echo '1\t',$t3,'\n';
}
//dos执行 myapp:world 3guys 1 2 3(myapp->app名称,world->类名,command+3guys->方法名,1 2 3->参数)
}

新建一个文件one.php

<?php
class myapp_command_one extends base_shell_prototype{ var $command_one = 'one';
//$command_one_options(options参数)选项数组
var $command_one_options = array(
'quietly'=>array('title'=>'项目模板','short'=>'q'),//至于这里为何这么写我也不知道
'from'=>array('title'=>'项目模板','need_value'=>1)
);
function command_one(){
$options = $this->get_options();
if($options['quietly']){
echo "hello, xxx\n";
}else{
echo "hello, world --from {$options['from']}\n";
}
}
//dos执行 myapp:one one --from 结果 hello,world --from(没传入from参数的值)
//myapp:one one --from fuck 结果 hello,world --from fuck
//myapp:one one --quietly 结果 hello xxx
}

新建一个文件two.php

<?php
class myapp_command_two extends base_shell_prototype{ var $command_cart = "cart";
function command_cart(){
$this->output_line("cart"); $rows = array();
$rows[] = array('type');
$rows[] = array('apple');
$rows[] = array('banana');
$this->output_table($rows);
}
//dos执行 myapp:two cart
//$this->output_line()输出一个分行
//$this->output_table 将数组输出格式化好的表格
}

注意!一个命令一个文件

ecos新命令的更多相关文章

  1. Azure CLI 2.0-Azure新命令行工具介绍

    Azure CLI 2.0 是 Azure 的新命令行体验,用于管理 Azure 资源. 可以将其安装在 macOS.Linux 和 Windows 上,然后从命令行运行它. Azure CLI 2. ...

  2. 2017-5新版ionic3.1 新命令及一些常用命令

    ionic3.1的新命令: # ionic cordova --help //== 查看命令 # ionic cordova resources // 其中 icon.png (1024*1024) ...

  3. 【翻译自mos文章】 11gR1版本号 asmcmd的新命令--cp、md_backup、md_restore

    11gR1版本号 asmcmd的新命令--cp.md_backup.md_restore 參考原文: ASMCMD - New commands in 11gR1 (Doc ID 451900.1) ...

  4. WinEdt && LaTex(四)—— 自定义新命令(newcommand、def)

    1. 新建命令 使用如下的命令:\newcommand{name}[num]{definition}: 该命令(newcommand)有两个参数,第一个 name 是你想要建立的命令的名称,第二个def ...

  5. 重磅!GitHub官方开源新命令行工具

    近日,GitHub 发布命令列工具 (Beta) 测试版,官方表示,GitHub CLI提供了一种更简单.更无缝的方法来使用Github.这个命令行工具叫做GitHub CLI,别名gh. 现在,你就 ...

  6. 草,又学了个新命令,nc传文件。

    nc -l 5222 > aa nc 192.168.0.48 5222 < a http://www.linuxso.com/command/nc.html

  7. gradle3.0新命令

    摘抄原文https://mp.weixin.qq.com/s/6UZhaI9cILJiPGYHkXd73g No1: Implementation compile 指令被标注为过时方法,而新增了两个依 ...

  8. Flask添加新命令

    代码: import click from flask import Flask app = Flask(__name__) @app.cli.command() def hg(): click.ec ...

  9. OpenRisc-34-ORPSoC跑eCos实验

    引言 ORPSoC目前支持好几种OS,除了前面一直介绍的linux,还支持eCos,eCos是RTOS,如果你的系统对时间的要求比较高,那eCos会是一个不错的选择. 本小节就简单介绍一下,在ORPS ...

随机推荐

  1. XHTML 与 HTML 之间的差异

    最主要的不同: XHTML 元素必须被正确地嵌套. XHTML 元素必须被关闭. 标签名必须用小写字母. XHTML 文档必须拥有根元素.

  2. redis 进阶

    1.一定要设置最大缓存大小并设置缓存策略 如果不设置最大缓存,在新添加数据时,如果超过最大内存回事redis崩溃! 设置方式:maxmemory 1GB 使用redis-cli登录后,使用info命令 ...

  3. PHP配置安全小技巧

  4. merge 语句的语法

    /*Merge into 详细介绍 MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句. 通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询, 连接条 ...

  5. Camera Path插件的使用

    rpg游戏类型的游戏,猪脚走过一个个场景,一个个死角.拐弯处,摄像机镜头也能很好的跟踪对焦,很多朋友都会想,这摄像机如何智能跟踪并且对焦呢? 之前 itween也有demo,但它做法是 两条线,一条摄 ...

  6. HDU 1054 Strategic Game 最小点覆盖

     最小点覆盖概念:选取最小的点数覆盖二分图中的所有边. 最小点覆盖 = 最大匹配数. 证明:首先假设我们求的最大匹配数为m,那么最小点覆盖必然 >= m,因为仅仅是这m条边就至少需要m个点.然后 ...

  7. FZU 2140 Forever 0.5(将圆离散化)

    主要就是将圆离散化,剩下的都好办 #include<iostream> #include<cstdio> #include<cstring> #include< ...

  8. angular.js_$scope

    Scope(作用域) 是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带. Scope 是一个对象,有可用的方法和属性. Scope 可应用在视图和控制器上. Angular ...

  9. springMVC简单的安全防御配置

    1,使用 spring form 标签 防 csrf 攻击 2,标明请求方法:RequestMethod.GET,RequestMethod.POST, PATCH, POST, PUT, and D ...

  10. PHPstorm端口配置问题