Yiic介紹

Yiic介紹
本來要介紹Yii的RBAC,但裏面有部分內容需要用到Yiic,先開篇文章介紹一下Yiic,本篇主要介紹CConsoleCommand,至於其他如怎麼利用Yiic創建應用等請參考Yii官方提供的文檔。
yii提供了強大的命令行工具來快速的創建相關組件和應用,要執行自己寫的CConsoleCommand需要按照下面的步驟來

1.配置
先來一句廢話,命令行方式下的app爲CConsoleApplication(位於framework\console下),而不是網頁端的CWebApplication,所以一些默認的組件是沒有加載,如authManager等,請參考CWebApplication的registerCoreComponents方法。
CConsoleApplication讀取的配置文件爲console.php(位與webapp\protected\config下),而不是main.php.其中至關重要的一項配置即爲commandPath(默認是webapp\protected\commands),即我們的命令放在什麼地方,我一般放在webapp\protected\commands\shell下。如果用到model,如某些AR類,也需要導入。我的配置爲:

   #webapp\protected\config\console.php
     ..........
    'import'=>array(
        'application.models.*',
    ),
    'commandPath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'commands'.DIRECTORY_SEPARATOR.'shell',
    ............



2.編寫新類繼承CConsoleCommand,需重寫CConsoleCommand的run方法,在run方法中編寫業務邏輯.
我們在webapp\protected\commands\shell中新建XyzCommand.php文件,其中Xyz表示命令的名字,但是需要大寫第一個字母,編寫XyzCommand類如下。
#webappprotected\commands\shell\XyzCommand.php
<?php
class XyzCommand extends CConsoleCommand{
    public function run($args){
        //在此編寫所需邏輯
        echo 'Hello Command!';
    }
}

因爲演示,此處只是在命令行中打印Hello Command!。

3.執行
首先需進入wepapp\protected目錄,然後運行yiic查看是否有我們剛纔編寫的xyz命令,如下
ffd76a41-be14-3657-8b28-95899644e96c.png
執行我們的命令xyz     用yiic xyz   看到結果   搞定
ea442bd9-da48-3359-a30b-c0eb537f43a5.png
  • ffd76a41-be14-3657-8b28-95899644e96c-thumb.png
  • 大小: 20.3 KB
  • ea442bd9-da48-3359-a30b-c0eb537f43a5-thumb.png
  • 大小: 4.1 KB
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章