CI 框架下执行CLI(命令行)

1.能够按照Ci官方文件的指导来进行操做php

    让咱们先建立一个简单的控制器,打开你的文本编辑器,新建一个文件并命名为 Tools.php,而后输入以下的代码:windows

   

<?php
class Tools extends CI_Controller {

    public function message($to = 'World')
    {
        echo "Hello {$to}!".PHP_EOL;
    }
}

   而后将文件保存到 application/controllers/ 目录下。app

   如今你能够经过相似下面的 URL 来访问它:框架

  

example.com/index.php/tools/message/to

   或者,咱们能够经过 CLI 来访问。在 Mac/Linux 下你能够打开一个终端,在 Windows 下你能够打开 “运行”,而后输入 "cmd",进入 CodeIgniter 项目所在的目录。编辑器

  

$ cd /path/to/project;
$ php index.php tools message

   若是你操做正确,你应该会看到 Hello World!this

$ php index.php tools message "John Smith"

   这里咱们传一个参数给它,这和使用 URL 参数是同样的。"John Smith" 被做为参数传入并显示出:url

Hello John Smith!

 

2.须要注意如下状况可能致使执行或者输出内容失败spa

   首先要检查下CI框架中的配置文件config.php中的参数以下:命令行

/*
|--------------------------------------------------------------------------
| URI PROTOCOL
|--------------------------------------------------------------------------
|
| This item determines which server global should be used to retrieve the
| URI string.  The default setting of 'REQUEST_URI' works for most servers.
| If your links do not seem to work, try one of the other delicious flavors:
|
| 'REQUEST_URI'    Uses $_SERVER['REQUEST_URI']
| 'QUERY_STRING'   Uses $_SERVER['QUERY_STRING']
| 'PATH_INFO'      Uses $_SERVER['PATH_INFO']
|
| WARNING: If you set this to 'PATH_INFO', URIs will always be URL-decoded!
*/
//$config['uri_protocol']    = 'REQUEST_URI';
$config['uri_protocol']    = 'AUTO';

    $config['uri_protocol'] 参数设置为‘REQUEST_URI’,将会致使命令行执行失败。code

    若所在项目中有url权限控制,记得把要执行文件的路径放到白名单中。

    在Windows下环境执行,须要配置php的环境变量

/*
 *  windows下cmd执行操做
 *  当前CI框架的入口文件index.php所在目录 D:\workspace\network\trunk\public
 *  index.php 为入口文件
 *  crontab文件夹处在application/controllers下面,已加入白名单
 *  tools为crontab下面的文件,message为tools.php中的方法,
 *  tom1112为传入的变量值
 */

D:\workspace\network\trunk\public>php index.php crontab/tools message/tom1112
 
/*输出*/
Hello tom1112! 
相关文章
相关标签/搜索