# 以 CLI 方式运行
除了从浏览器中通过 URL 来调用程序的 [控制器](http://codeigniter.org.cn/user_guide/general/controllers.html) 之外, 你也可以通过 CLI (命令行界面)的方式来调用。
目录
[TOC=2,3]
## 什么是 CLI ?
CLI (命令行界面)是一种基于文本的和计算机交互的方式。 更多信息, 请查看 [维基百科](http://en.wikipedia.org/wiki/Command-line_interface) 。
## 为什么使用命令行?
虽然不是很明显,但是有很多情况下我们需要使用命令行来运行 CodeIgniter。
* 使用 cron 定时运行任务,而不需要使用 wget 或 curl
* 通过函数 [is_cli()](http://codeigniter.org.cn/user_guide/general/common_functions.html#is_cli "is_cli") 的返回值来让你的 cron 页面不能通过 URL 访问到
* 制作交互式的任务,譬如:设置权限,清除缓存,备份等等
* 与其他语言进行集成,譬如可以通过 C++ 调用一条指令来运行你模型中的代码。
## 让我们试一试:Hello World!
让我们先创建一个简单的控制器,打开你的文本编辑器,新建一个文件并命名为 Tools.php,然后输入如下的代码:
~~~
<?php
class Tools extends CI_Controller {
public function message($to = 'World')
{
echo "Hello {$to}!".PHP_EOL;
}
}
~~~
然后将文件保存到 application/controllers/ 目录下。
现在你可以通过类似下面的 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! 。
~~~
$ php index.php tools message "John Smith"
~~~
这里我们传一个参数给它,这和使用 URL 参数是一样的。"John Smith" 被作为参数传入并显示出:
~~~
Hello John Smith!
~~~
## 就这么简单!
简单来说,这就是你需要知道的关于如何在命令行中使用控制器的所有事情了。 记住,这只是一个普通的控制器,所以路由和 _remap 也照样工作。
- 欢迎使用 CodeIgniter
- 安装说明
- 下载 CodeIgniter
- 安装说明
- 从老版本升级
- 疑难解答
- CodeIgniter 概览
- CodeIgniter 将从这里开始
- CodeIgniter 是什么?
- 支持特性
- 应用程序流程图
- 模型-视图-控制器
- 设计与架构目标
- 教程 - 内容提要
- 加载静态内容
- 读取新闻条目
- 创建新闻条目
- 结束语
- 常规主题
- CodeIgniter URL
- 控制器
- 保留名称
- 视图
- 模型
- 辅助函数
- 使用 CodeIgniter 类库
- 创建类库
- 使用 CodeIgniter 驱动器
- 创建驱动器
- 创建核心系统类
- 创建附属类
- 钩子 - 扩展框架核心
- 自动加载资源
- 公共函数
- 兼容性函数
- URI 路由
- 错误处理
- 网页缓存
- 程序分析
- 以 CLI 方式运行
- 管理你的应用程序
- 处理多环境
- 在视图文件中使用 PHP 替代语法
- 安全
- PHP 开发规范
- 类库参考
- 基准测试类
- 缓存驱动器
- 日历类
- 购物车类
- 配置类
- Email 类
- 加密类
- 加密类(新版)
- 文件上传类
- 表单验证类
- FTP 类
- 图像处理类
- 输入类
- Javascript 类
- 语言类
- 加载器类
- 迁移类
- 输出类
- 分页类
- 模板解析类
- 安全类
- Session 类
- HTML 表格类
- 引用通告类
- 排版类
- 单元测试类
- URI 类
- 用户代理类
- XML-RPC 与 XML-RPC 服务器类
- Zip 编码类
- 数据库参考
- 数据库快速入门: 示例代码
- 数据库配置
- 连接你的数据库
- 查询
- 生成查询结果
- 查询辅助函数
- 查询构造器类
- 事务
- 数据库元数据
- 自定义函数调用
- 数据库缓存类
- 数据库工厂类
- 数据库工具类
- 数据库驱动器参考
- 辅助函数参考
- 数组辅助函数
- 验证码辅助函数
- Cookie 辅助函数
- 日期辅助函数
- 目录辅助函数
- 下载辅助函数
- 邮件辅助函数
- 文件辅助函数
- 表单辅助函数
- HTML 辅助函数
- 语言辅助函数
- Inflector 辅助函数
- 数字辅助函数
- 路径辅助函数
- 安全辅助函数
- 表情辅助函数
- 字符串辅助函数
- 文本辅助函数
- 排版辅助函数
- URL 辅助函数
- XML 辅助函数
- 向 CodeIgniter 贡献你的力量