以CLI方式运行

除了可以在浏览器中通过URL调用一个 控制器 外,也可以通过命令行接口(CLI)调用。

什么是CLI?

命令行接口是一种基于文本的和计算机交互的方式。 如果想查看更详细说明,请看Wikipedia article.

为什么使用命令行?

虽然不是必须的,但在某些情况下我们会用到命令行

  • 使用 cron 定时运行任务而不需要使用 wget 或 curl
  • 通过检查 $this->input->is_cli_request() 让你的 cron 任务无法通过网址访问到
  • 让交互式任务可以做设置权限、清空缓存、执行备份等操作
  • 与其他语言进行集成。比如一个 C++ 脚本可以调用一条指令来运行你模型中的代码!

让我们试一试:Hello World!

首先创建一个简单的控制器。使用你的文本编辑器,创建一个叫做 tools.php 的文件,并且输入如下代码:

  1. <?phpclass Tools extends CI_Controller {

  2. public function message($to = 'World') { echo "Hello {$to}!".PHPEOL; }}?>

然后将这个文件保存到你的 _application/controllers/ 文件夹里。

现在正常情况下你可以通过你网站的 URL 来访问它:

  1. example.com/index.php/tools/message/to
除此之外,我们也可以在 Mac/Linux 中打开终端,或者在 Windows 下进入“运行”输入“cmd”,并进入我们的 CodeIgniter 项目的目录。

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

如果你跟着一步步下来,你应该会看到 Hello World!

$ php index.php tools message "John Smith"

这里我们像使用 URL 参数一样给它传递了一个参数。“John Smith”作为一个参数被传递了,并且输出也变成:Hello John Smith!

就是这样!

简单的来说,这就是全部你需要知道的有关命令行中使用控制器的事情了。记住这只是一个普通的控制器,所以路由和 _remap 也照样工作。

翻译贡献者:baiyuxiong, csfhc, Hex, tinsn, upsuper, yinsigan