国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 后端開發(fā) php教程 yii 計(jì)劃任務(wù)

yii 計(jì)劃任務(wù)

Aug 08, 2016 am 09:31 AM
action application console

Yii框架自動生成的Web應(yīng)用骨架的目錄里面有連個(gè)腳步文件,yiic和yiic.bat。

yiic是Unix/Linux平臺用的,yiic.bat是windows平臺用的。如果要查看腳本的幫助可以進(jìn)入到腳步所在的根目錄,然后執(zhí)行yiic help,他會列出所有可用的命令,里面包括Yii提供的系統(tǒng)命令和用戶自定義的命令。

如果要知道如何執(zhí)行一個(gè)命令可以執(zhí)行以下命令:

1	yiic help
如果要執(zhí)行一個(gè)命令,可以使用如下格式:

1	yiic [parameters...]
1、創(chuàng)建命令

控制臺命令都是以類文件的方式存儲在 CConsoleApplication::commandPath 指定的目錄。默認(rèn)是存儲在 protected/commands 。

每個(gè)類必須繼承自 CConsoleCommand 。類名的格式是 XyzCommand ,命令的名字首字母大寫,xyz才是命令本身。

可以通過配置 CConsoleApplication::commandMap ,命令類可以有不同的命名約定和不同的目錄。

創(chuàng)建一個(gè)新命令你可以覆蓋 CConsoleCommand::run() 或者寫一個(gè)或多個(gè)action.

覆蓋父類的run方法格式可以是:

1	public   function   run( $args ) { ... }
當(dāng)執(zhí)行一個(gè)命令的時(shí)候,run方法將會被調(diào)用,任何加在調(diào)用命令后面的參數(shù)將會賦給$args。

在命令內(nèi)部可以用 Yii::app() 調(diào)用這個(gè)控制臺的實(shí)例。

從1.1.1版本開始,可以創(chuàng)建一個(gè)全局的命令,被在同一臺機(jī)器上的所有的Yii應(yīng)用所共享。為了達(dá)到這樣的目的,你需要定義一個(gè)名為

YII_CONSOLE_COMMANDS 的環(huán)境變量,指向一個(gè)已存在的目錄,然后把這個(gè)全局的命令類放在這個(gè)目錄里面。

2、控制臺命令A(yù)ction

一個(gè)控制臺命令action就是一個(gè)控制臺命令類的一個(gè)方法。

方法名的格式: actionXyz ,action名的首字母大寫,xyz才是被調(diào)用的action本身。

執(zhí)行一個(gè)action的命令格式:

1	yiic --option1=value1 --option2=value2 ...
后面的option-value對將會賦給這個(gè)action方法的參數(shù)。如果你給出了option名而沒有給出對應(yīng)的值,那么這個(gè)option將會被認(rèn)為是boolean值true。

action的參數(shù)也可以聲明一個(gè)數(shù)組類型,如:

1	public   function   actionIndex( array   $types ) { ... }
調(diào)用它的命令是:

1	yiic sitemap index --types=News --types=Article
最終命令調(diào)用是: actionIndex(array('News', 'Article'))。

從1.1.6開始,還支持匿名參數(shù)和全局選項(xiàng)。

匿名參數(shù) 指的是不按正常選項(xiàng)參數(shù)格式(the format of options)的命令行參數(shù),比如: yiic sitemap index --limit=5 News ,News就是一個(gè)匿名參數(shù)。

要使用匿名參數(shù),action必須聲明一個(gè) $args變量,比如:

1	public   function   actionIndex( $limit =10, $args = array ()) {...}
$ args 會接收到所有可用的匿名參數(shù)。

全局選項(xiàng) (Global options)指的是一個(gè)命令行選項(xiàng)被這個(gè)命令的所有action所共享。

比如:一個(gè)命令有好幾個(gè)action,我們想在每個(gè)action里面都有一個(gè)名字叫 verbose 的選項(xiàng),我們可以在每個(gè)action方法里面都聲明一個(gè)叫 $verbose 的參數(shù)。

一個(gè)更好的做法是把它聲明成這個(gè)命令類的公共成員變量( public member variable ),這樣 verbose 就會成為一個(gè)全局的選項(xiàng)。

1	class   SitemapCommand extends   CConsoleCommand
2	{
3	public   $verbose =false;
4	public   function   actionIndex( $type ) {...}
5	}
這樣就可以執(zhí)行一個(gè)帶 verbose 選項(xiàng)的命令:

1	yiic sitemap index --verbose=1 --type=News
3、退出代碼

執(zhí)行命令的宿主機(jī)器可能需要檢測我們的命令執(zhí)行成功與否,它可以通過檢測命令最后退出是返回的退出碼來識別。

退出碼是介于0到254之間的整型值 ,0表示這個(gè)命令執(zhí)行成功,非0表示這個(gè)命令執(zhí)行期間出現(xiàn)錯(cuò)誤。

你可以在action或者是run方法里面通過一個(gè)退出碼來退出你的應(yīng)用程序。

比如:

1	if   ( /* error */ ) {
2	return   1; // exit with error code 1
3	}
4	// ... do something ...
5	return   0; // exit successfully
假如沒有返回值,將會有一個(gè)默認(rèn)的0被返回

4、定制控制臺應(yīng)用

默認(rèn)的控制臺應(yīng)用配置位置: protected/config/console.php 。

任何 CConsoleApplication 的公共屬性都可以在這個(gè)文件里面配置。

這個(gè)配置文件類似于普通的web應(yīng)用的配置文件。

Customizing Console Applications 

By default, if an application is created using the  yiic webapp  tool, the configuration for the console application will be  protected/config/console.php . Like a Web application configuration file, this file is a PHP script which returns an array representing the property initial values for a console application instance. As a result, any public property of  CConsoleApplication  can be configured in this file.

Because console commands are often created to serve for the Web application, they need to access the resources (such as DB connections) that are used by the latter. We can do so in the console application configuration file like the following:

return array(
    ......
    'components'=>array(
        'db'=>array(
            ......
        ),
    ),
);
As we can see, the format of the configuration is very similar to what we do in a Web application configuration. This is because both  CConsoleApplication  and  CWebApplication  share the same base class.

文章參考: http://www.yiiframework.com/doc/guide/1.1/zh_cn/topics.console

----------------------------------------------------------------------------------------------------------------------

一篇文章:

使用YII框架進(jìn)行PHP程序的計(jì)劃任務(wù)教程

1.當(dāng)你通過yiic創(chuàng)建一個(gè)webapp應(yīng)用后, 
會在 webapp/protected/下生成yiic.php, 由于是命令行應(yīng)用,所以這里的yiic.php其實(shí)就是與webapp下的index.php一樣的,命令行入口文件。

2.打開yiic文件,添加一行設(shè)置,將commands目錄的路徑添加到y(tǒng)iic中,這樣,yiic就能夠找到commands目錄下的命令文件了,修改后的代碼如下,紅色為新加入代碼:

1
2
3
4
5
6
$yiic =dirname( __FILE__ ). '/http://www.cnblogs.com/yii-read-only/framework/yiic.php' ;

$config =dirname( __FILE__ ). '/config/console.php' ;

@putenv( 'YII_CONSOLE_COMMANDS=' . dirname( __FILE__ ). '/commands' );

require_once ( $yiic );

或者是:

 配置好,要執(zhí)行的頁面。本文為 protected/commands/crons.php

run();
?>

3.配置好produ ct/config/console.php里面需要用到的組件,像數(shù)據(jù)庫連接。

配置main/console.php,設(shè)置import路徑,以及db連接,這部份與main.php類似。

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',
        'import' => array (
                'application.models.*',
                'application.components.*',
                'application.components.base.*',
                'application.components.imgthumb.*',
                'application.models.form.*',
                '等等,導(dǎo)入所要的類包'
        ),
        'components' => array (
                // Main DB connection
                'db' => array (
                        'connectionString' => 'mysql:host=localhost;dbname=數(shù)據(jù)庫名稱',
                        'emulatePrepare' => true,
                        'username' => '數(shù)據(jù)庫名稱',
                        'password' => '數(shù)據(jù)庫密碼',
                        'charset' => 'utf8',
                        'tablePrefix' => 'company_'、//表前綴
                ),
                'log' => array (
                        'class' => 'CLogRouter',
                        'routes' => array (
                                array (
                                        'class' => 'CFileLogRoute',
                                        'levels' => 'error, warning'
                                ) 
                        ) 
                ) 
        ) 
);
4.繼承CConsoleCommand寫入自己的命令類,Yii提供了兩種方式去執(zhí)行, 如果你執(zhí)行單一的任務(wù),直接在run方法里面寫,另外一種 就是同寫你的Controller(控制器),增加actionXXX即可。 
本實(shí)例采用第二種方式,即采用web程序開發(fā)的方式,在基礎(chǔ)了CConsoleCommand的類中添加actionXXX方法來執(zhí)行程序。 
我們在commands目錄下創(chuàng)建一個(gè)文件,來執(zhí)行我們要執(zhí)行的任務(wù),暫且命名為TestCommand.php 。


  

    
      4,打開你的linux命令窗口,創(chuàng)建自動任務(wù)。至于windows系統(tǒng) ,是計(jì)劃任務(wù)(win系統(tǒng),可以谷歌如何操作),下面只講linux系統(tǒng)。
    
  


  
crontab -e
##然后輸入
1 * * * *  php /具體地址/protected/commands/crons.php Test >>/具體地址/protected/commands/test.log
##上面命令說明,每分鐘執(zhí)行Test任務(wù)一次,把日志保存在test.log下

  
至此,自動化任務(wù)已完成。


  
windows下面計(jì)劃任務(wù):


  
schtasks /create /sc minute /mo 1 /tn "taskPhp" /tr  "php F:\xampp\htdocs\php\yiiblog2\protected\commands\crons.php  CInsert insertData"


  
刪除計(jì)劃任務(wù) schtasks /delete /tn "taskPhp"


  
每個(gè)1分鐘就執(zhí)行CInsert命令中的insertData方法。


  

    參考了:    http://www.cnlvzi.com/index.php/Index/article/id/124
  


  

    http://www.yiibase.com/yii/218.html
  


  

    http://www.yiiframework.com/wiki/221/cronjobsyii/
  


  

    http://986866294.blog.163.com/blog/static/1651222522013571578115/

  

以上就介紹了yii 計(jì)劃任務(wù),包括了方面的內(nèi)容,希望對PHP教程有興趣的朋友有所幫助。

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

console什么意思 console什么意思 Sep 05, 2023 pm 02:43 PM

console是控制臺的意思,是一種與計(jì)算機(jī)系統(tǒng)進(jìn)行交互的設(shè)備或軟件,用于與計(jì)算機(jī)系統(tǒng)進(jìn)行交互,它通常是一個(gè)帶有鍵盤和屏幕的設(shè)備,用于輸入和輸出信息,控制臺最初用于大型計(jì)算機(jī)系統(tǒng),后來也應(yīng)用于個(gè)人計(jì)算機(jī)和服務(wù)器,它可以幫助用戶管理和維護(hù)計(jì)算機(jī)系統(tǒng),以及安裝操作系統(tǒng)和應(yīng)用程序,調(diào)試程序等。

全新 Nintendo Switch Lite 更新現(xiàn)已開放預(yù)訂 全新 Nintendo Switch Lite 更新現(xiàn)已開放預(yù)訂 Jun 29, 2024 am 06:49 AM

任天堂已開放最新版本 Switch Lite 的預(yù)訂(亞馬遜售價(jià) 189.99 美元)。不過,該設(shè)備目前還無法在全球范圍內(nèi)訂購?;仡櫼幌拢摴驹诖蠹s兩周前推出了 Switch Lite Hyrule 版

使用C#中的Console.Clear函數(shù)清空控制臺輸出 使用C#中的Console.Clear函數(shù)清空控制臺輸出 Nov 18, 2023 am 11:00 AM

使用C#中的Console.Clear函數(shù)清空控制臺輸出在C#的控制臺應(yīng)用程序中,我們經(jīng)常需要清空控制臺中的輸出信息,以便于顯示新的內(nèi)容或者提供更好的用戶體驗(yàn)。C#中提供了Console.Clear函數(shù)來實(shí)現(xiàn)這個(gè)功能,它能夠清除控制臺中的輸出,讓界面重新變?yōu)榭瞻住onsole.Clear函數(shù)的調(diào)用格式如下:Console.Clear();該函數(shù)無需輸入任何

MagicX XU Mini M:拆解顯示 RK3326 CPU 而不是廣告中的 RK3562,MagicX 斷絕與第三方開發(fā)者的聯(lián)系 MagicX XU Mini M:拆解顯示 RK3326 CPU 而不是廣告中的 RK3562,MagicX 斷絕與第三方開發(fā)者的聯(lián)系 Sep 01, 2024 am 06:30 AM

如果您最近購買了 MagicX XU Mini M,這個(gè)消息可能會讓您感到驚訝。對新發(fā)布的手持式游戲機(jī)??的硬件和軟件拆解顯示,廣告中的 RK3562 CPU 實(shí)際上是規(guī)格較低、較舊的 RK3326 處理器。

DJI Osmo Action 5 Pro:發(fā)布日期已定,零售商透露發(fā)布價(jià)格可能會低于 GoPro Hero 13 Black DJI Osmo Action 5 Pro:發(fā)布日期已定,零售商透露發(fā)布價(jià)格可能會低于 GoPro Hero 13 Black Sep 04, 2024 am 06:51 AM

大疆尚未確認(rèn)推出新運(yùn)動相機(jī)的計(jì)劃。相反,GoPro 今年似乎會領(lǐng)先于競爭對手,并透露將于 9 月 4 日推出兩款新的運(yùn)動相機(jī)。

任天堂在 Switch 2 發(fā)布前宣布更新 Switch Lite 任天堂在 Switch 2 發(fā)布前宣布更新 Switch Lite Jun 20, 2024 am 09:41 AM

任天堂昨天在最近的任天堂直面活動中展示了大量游戲,我們單獨(dú)提供了概述。此外,該公司還發(fā)布了新版本的 Switch Lite(亞馬遜售價(jià) 194.93 美元),可能是

console是什么意思 console是什么意思 Aug 09, 2023 pm 04:21 PM

console是控制臺,計(jì)算機(jī)程序中用于輸入和輸出文本或命令的交互界面,在不同的操作系統(tǒng)和開發(fā)環(huán)境中,控制臺可能具有不同的外觀和功能。通常是一個(gè)文本界面,提供了一個(gè)命令行界面或命令行提示符,允許用戶通過鍵盤輸入命令,并顯示程序的輸出結(jié)果。

python WSGI?Application原理是什么 python WSGI?Application原理是什么 May 19, 2023 pm 01:25 PM

本篇文章所依賴的python環(huán)境為:什么是WSGIWSGI也稱之為web服務(wù)器通用網(wǎng)關(guān)接口,全稱是webservergatewayinterface。它定義了在python中web服務(wù)器與web應(yīng)用程序之間應(yīng)該如何通信并且處理http請求和響應(yīng)的一個(gè)標(biāo)準(zhǔn),注意,它只是一個(gè)協(xié)議,或者說是規(guī)范、標(biāo)準(zhǔn),你也可以不按這個(gè)標(biāo)準(zhǔn)來,就像我們上一篇文章所寫的web服務(wù)器那樣。WSGI也分為應(yīng)用程序和服務(wù)器網(wǎng)關(guān),其中我們熟知的Flask就是屬于應(yīng)用程序,uWSGI、wsgiref屬于服務(wù)器網(wǎng)關(guān)。個(gè)人感覺,WSG

See all articles