选择语言 :

Core_Controller_Index
    └ Core_Controller_Shell
         └ Core_Controller

SHELL 脚本基础控制器

API - Core_Controller_Index

继承自父类的方法和变量
author
呼吸二氧化碳 jonwang@myqee.com

$this->action_default( )


Controller_Shell::_parse_doc_comment( )


Controller_Shell::getopt( $options , $global_options = null)

获取shell命令下参数

与getopt()具体相似的功能,区别:在命令行中如果执行 php index.php default test -a=1 -b=c 这样的命令时,通过getopt()会获取参数失败,而这个方法可以正确获得相应的参数

示例:
在默认项目Shell控制器中加入一个test控制器文件 ( projects/default/controller_shell/test.controller.php ) 内容为:

<?php
class Controller_Test extends Controller_Shell
{
    public function action_run()
    {
        $shortopts  = "";
        $shortopts .= "f:";  // 必须有值, 比如:-f myvalue,将会得到f=myvalue
        $shortopts .= "v::"; // 可接受值, 比如:-v 则v=false,如果是-v=myvalue,则v=myvalue
        $shortopts .= "abc"; // 不接受值, 比如:-a -v 则获取a=false,v=false,注意,这个并不是接受-abc的参数,而是分别可接受-a,-b,-c

        $longopts  = array
        (
            "required:",     // 必须有值, 比如:--required=abc
            "optional::",    // 可接受值, 比如:--optional 则获取 optional=false,--optional=abc,则是optional=abc
            "option",        // 不接受值, 比如:--option 则获取 option=false
            "opt",           // 同上
        );

        $options = self::getopt($shortopts, $longopts);
        var_dump($options);
    }
}

通过 php index.php default test run -f "value for f" -v -a --required value --optional="optional value" --option 运行以上脚本会输出

array(6) {
  ["f"]=> string(11) "value for f"
  ["v"]=> bool(false)
  ["a"]=> bool(false)
  ["required"]=> string(5) "value"
  ["optional"]=> string(14) "optional value"
  ["option"]=> bool(false)
}

参数列表

参数 类型 描述 默认值
$options string 但字符参数,只接受[a-zA-Z0-9]的参数,比如 -a, -h, -v=myvalue, -4 这样
$global_options array --参数,比如--test, --help, --v=abc 这样 null
返回值
  • array 返回获取到的参数的数组

$this->input( )

获取用户输入内容


$this->output( )

输出内容,会附加换行符


$this->__construct( )


$this->_callback_set_vars( $data )

用于给系统调用设置对象变量

参数列表

参数 类型 描述 默认值
$data array $data

$this->_callback_get_vars( )

用于给系统调用获取控制器变量


$this->session( )

返回Session对象

返回值
  • Session

$this->show_message( $msg , $code = 0, $data = array ( ))

显示信息

参数列表

参数 类型 描述 默认值
$msg string $message
$code int $code integer 0
$data unknown array(0)

$this->show_success( $message = 'success', $data = array ( ))

输出成功信息

参数列表

参数 类型 描述 默认值
$message string $message string(7) "success"
$data unknown array(0)

$this->show_error( )


Controller::execute( $uri , $print = true, $use_route = true, $is_internal = true)

执行新控制

若采用非内部调用,则会等同于浏览器的URI执行,请注意防止陷入死循环

参数列表

参数 类型 描述 默认值
$uri string 新的uri
$print boolean 是否直接输出 bool true
$use_route boolean 是否在路由中寻找,默认:是 bool true
$is_internal boolean 是否内部调用,默认:是 bool true
返回值
  • string 返回新控制器执行的html

Controller::redirect( $url , $code = 302)

页面跳转

参数列表

参数 类型 描述 默认值
$url string Redirect location
$code integer Status code: 301, 302, etc integer 302
返回值
  • void

Controller::header_cache( $time = 86400)

页面输出header缓存

0表示不缓存

参数列表

参数 类型 描述 默认值
$time int 缓存时间,单位秒 integer 86400