原文:命令行工具
查看全部命令
app/base/cmd help
如果需要显示每条命令的所支持的参数,则需要加上
-v
app/base/cmd help -v
创建一个新命令
简单的命令
在需要创建的 app
中的 lib/command
目录中创建指定命令,例:
<?php
class b2c_command_test extends base_shell_prototype
{
var $command_test = 'Hello World';
public function command_hello()
{
return 'Hello World';
}
}
执行命令如下:
app/base/cmd b2c:test hello
# Hello World
设置参数
有时候需要给命令添加几个自定义参数,示例如下:
<?php
class b2c_command_test extends base_shell_prototype
{
var $command_test = 'Hello Command';
public function command_hello($name)
{
return 'Hello ' . $name;
}
}
执行命令如下:
app/base/cmd b2c:test hello Marvin
# Hello Marvin
选项设置
有时候,一条命令需要有多个可以选择的功能,比如 ls -al
,其中 -al
就是可选的选项,用于筛选不同的结果和显示不同的样式,这里也可以,示例:
<?php
class b2c_command_test extends base_shell_prototype
{
var $command_test = 'Hello Command';
var $command_test_options = array(
'sex' => array(
'title' => '性别',
// 支持短写
'short' => 's'
)
);
public function command_hello($name)
{
$options = $this->get_options();
if ($options['sex']) {
return 'Hello ' . $name . ', you are a ' . $options['sex'];
}
return 'Hello ' . $name;
}
}
执行命令如下:
其中,
--sex
与-s
的效果是一样的
app/base/cmd b2c:hello Marvin --sex boy
# Hello Marvin, you are a boy
输出设置
有时候需要输出一个表格,或者输出一整行,ecstore
也提供了相应的方法:
<?php
class b2c_command_test extends base_shell_prototype
{
var $command_test = 'Hello Command';
public function command_hello()
{
$this->output_line('line');
$array = array(
array(
'name', 'sex', 'age'
),
array(
'marvin', 'boy', '25'
),
array(
'cindy', 'girl', '26'
)
);
$this->output_table($array);
}
}
执行命令如下:
app/base/cmd b2c:hello
# line -----------------------
# name sex age
# marvin boy 25
# cindy girl 26