`
zhex
  • 浏览: 25266 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

扩展 Yii Framework 的控制台功能

    博客分类:
  • PHP
阅读更多
Yii已经为我们提供了很好的控制台功能,我们可以利用控制台创建webapp,controller, action等来加速我们的开发。同时我们还可以自己来扩展控制台应用(console application)来满足我们更多的项目需求。

console app 和 web app 类似,我们需要一个入口文件,默认的情况我们可以在protected目录发现这些文件(yiic.php, yiic, yiic.bat), 其中yiic.php为入口文件,yiic为linux的执行文件,yiic.bat为windows上的执行文件。这3个文件会在我们创建webapp的时候自动生成, 如果没有我们也可以手动加入这3个文件。

<?php
//yiic.php

// change the following paths if necessary
$yiic=dirname(__FILE__).'/../framework/yiic.php';
$config=dirname(__FILE__).'/config/console.php';

require_once($yiic);



要扩展控制台命令,我们需要写一个xxxCommand类来继承CConsoleCommand,并存放在protected/commands 目录下。 然后通过默认配置文件 protected/config/console.php 来配置console app

<?php
//console.php

// This is the configuration for yiic console application.
// Any writable CConsoleApplication properties can be configured here.
return array(
    'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
    'name'=>'My Console Application',
);


现在让我们来写一个简单的控制台命令TestCommand,要求输入命令(test)和用户名(username),然后在屏幕上打印出 hello username.
<?php
class TestCommand extends CConsoleCommand {
    
    public function getHelp() {
        return 'test command help';
    }
    
    public function run($args) {
        echo 'hello '. $arg[0];
    }
}
?>


在这个类中我们需要完成2个方法,一个是getHelp(),他用于提供Test这个类命令的帮助信息,我们可以在shell中通过命令:yiic help test 来查看这个类的帮助。
此外这个类的主要功能是通过继承 run($args) 这个方法来实现的,其中$args 为从命令行获得参数数组。
现在如果我们在屏幕上输入:yiic test zhex
我们将看到程序返回: hello zhex

在console app中我们还可以实现很多有用的功能,比如发送Email, 数据库更新等。也许通过你的才智,还能写出更多有趣的功能。

分享到:
评论

相关推荐

    新下载的yii2,yii framework

    Yii2是不断更新和维护的,每个新版本可能包含性能优化、新的功能特性或对已有功能的改进,因此保持框架的更新对于利用最新的技术和提高开发效率至关重要。 描述中的“新下载的yii2”进一步强调了用户正准备开始使用...

    YII快速入门教程

    #### Ⅴ、扩展Yii **1. 使用扩展** - **应用的部件** - **组件** - **动作** - **过滤器** - **控制器** - **校验器** - **控制台命令** - **模块** - **通用部件** **2. 创建扩展** - **ApplicationComponent...

    yii快速入门教程--一个非常好的php框架

    #### Ⅴ、扩展Yii **1. 使用扩展** - **功能**: 使用已有的扩展增强应用的功能。 - **实现细节**: - **应用的部件**: 在应用中添加部件。 - **组件**: 在应用中添加组件。 - **动作**: 在控制器中添加动作。 -...

    yii2-gtreetable:Yii 2 Framework的扩展,它是bootstrap-gtreetable插件的包装器,另一方面,它提供了允许将节点状态保存到数据库中的功能

    Yii2-GTreeTable是Yii 2框架的扩展,它是插件的包装器,另一方面为服务器端应用程序提供了支持。 借助软件,可以将节点的实际状态映射到数据库。 测试可用于。 安装 安装由实现。 在控制台中编写: composer ...

    Yii-1.1.3-权威指南-中文版.pdf

    首先是从官方网站 yiiframework.com 下载 Yii 框架。其次,将下载的压缩包解压到一个 Web 可访问的目录中。需要注意的是,并非所有文件都需要暴露于 Web 目录之下;只有入口脚本(通常是 `index.php` 文件)需要被 ...

    YII框架应用

    php J:/site/mysites/framework/yiic.php webapp J:/site/mysites/YII ``` 4. **确认创建**:执行上述命令后,系统会询问是否要在指定目录下创建Web应用。输入`y`确认创建即可。 #### 三、项目结构解析 创建完...

    50个非常有用的PHP工具(20211010005844).pdf

    - **Yii Framework**: 高性能的组件化PHP框架。 - **Symfony**: 开源的PHP Web框架,加速Web应用开发。 - **PEAR Propel**: PHP5的对象关系映射(ORM)框架。 - **Zend Framework**: 官方支持的全功能PHP开发...

Global site tag (gtag.js) - Google Analytics