国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

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

2019-11-15 02:01:10
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
yii 計(jì)劃任務(wù)
Yii框架自動(dòng)生成的Web應(yīng)用骨架的目錄里面有連個(gè)腳步文件,yiic和yiic.bat。yiic是Unix/linux平臺(tái)用的,yiic.bat是windows平臺(tái)用的。如果要查看腳本的幫助可以進(jìn)入到腳步所在的根目錄,然后執(zhí)行yiic help,他會(huì)列出所有可用的命令,里面包括Yii提供的系統(tǒng)命令和用戶自定義的命令。如果要知道如何執(zhí)行一個(gè)命令可以執(zhí)行以下命令:1yiic help如果要執(zhí)行一個(gè)命令,可以使用如下格式:1yiic [parameters...]1、創(chuàng)建命令控制臺(tái)命令都是以類文件的方式存儲(chǔ)在 CConsoleapplication::commandPath 指定的目錄。默認(rèn)是存儲(chǔ)在 PRotected/commands 。每個(gè)類必須繼承自 CConsoleCommand 。類名的格式是 XyzCommand ,命令的名字首字母大寫,xyz才是命令本身。可以通過(guò)配置 CConsoleApplication::commandMap ,命令類可以有不同的命名約定和不同的目錄。創(chuàng)建一個(gè)新命令你可以覆蓋 CConsoleCommand::run() 或者寫一個(gè)或多個(gè)action.覆蓋父類的run方法格式可以是:1public   function   run( $args ) { ... }當(dāng)執(zhí)行一個(gè)命令的時(shí)候,run方法將會(huì)被調(diào)用,任何加在調(diào)用命令后面的參數(shù)將會(huì)賦給$args。在命令內(nèi)部可以用 Yii::app() 調(diào)用這個(gè)控制臺(tái)的實(shí)例。從1.1.1版本開始,可以創(chuàng)建一個(gè)全局的命令,被在同一臺(tái)機(jī)器上的所有的Yii應(yīng)用所共享。為了達(dá)到這樣的目的,你需要定義一個(gè)名為YII_CONSOLE_COMMANDS 的環(huán)境變量,指向一個(gè)已存在的目錄,然后把這個(gè)全局的命令類放在這個(gè)目錄里面。2、控制臺(tái)命令A(yù)ction一個(gè)控制臺(tái)命令action就是一個(gè)控制臺(tái)命令類的一個(gè)方法。方法名的格式: actionXyz ,action名的首字母大寫,xyz才是被調(diào)用的action本身。執(zhí)行一個(gè)action的命令格式:1yiic --option1=value1 --option2=value2 ...后面的option-value對(duì)將會(huì)賦給這個(gè)action方法的參數(shù)。如果你給出了option名而沒(méi)有給出對(duì)應(yīng)的值,那么這個(gè)option將會(huì)被認(rèn)為是boolean值true。action的參數(shù)也可以聲明一個(gè)數(shù)組類型,如:1public   function   actionIndex( array   $types ) { ... }調(diào)用它的命令是:1yiic 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變量,比如:1public   function   actionIndex( $limit =10, $args = array ()) {...}$ args 會(huì)接收到所有可用的匿名參數(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 就會(huì)成為一個(gè)全局的選項(xiàng)。1class   SitemapCommand extends   CConsoleCommand2{3public   $verbose =false;4public   function   actionIndex( $type ) {...}5}這樣就可以執(zhí)行一個(gè)帶 verbose 選項(xiàng)的命令:1yiic sitemap index --verbose=1 --type=News3、退出代碼執(zhí)行命令的宿主機(jī)器可能需要檢測(cè)我們的命令執(zhí)行成功與否,它可以通過(guò)檢測(cè)命令最后退出是返回的退出碼來(lái)識(shí)別。退出碼是介于0到254之間的整型值 ,0表示這個(gè)命令執(zhí)行成功,非0表示這個(gè)命令執(zhí)行期間出現(xiàn)錯(cuò)誤。你可以在action或者是run方法里面通過(guò)一個(gè)退出碼來(lái)退出你的應(yīng)用程序。比如:1if   ( /* error */ ) {2return   1; // exit with error code 13}4// ... do something ...5return   0; // exit successfully假如沒(méi)有返回值,將會(huì)有一個(gè)默認(rèn)的0被返回4、定制控制臺(tái)應(yīng)用默認(rèn)的控制臺(tái)應(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)你通過(guò)yiic創(chuàng)建一個(gè)webapp應(yīng)用后, 會(huì)在 webapp/protected/下生成yiic.php, 由于是命令行應(yīng)用,所以這里的yiic.php其實(shí)就是與webapp下的index.php一樣的,命令行入口文件。2.打開yiic文件,添加一行設(shè)置,將commands目錄的路徑添加到y(tǒng)iic中,這樣,yiic就能夠找到commands目錄下的命令文件了,修改后的代碼如下,紅色為新加入代碼:123456$yiic =dirname( __FILE__ ). '/http://m.survivalescaperooms.com/yii-read-only/framework/yiic.php' ;$config =dirname( __FILE__ ). '/config/console.php' ;@putenv( 'YII_CONSOLE_COMMANDS=' . dirname( __FILE__ ). '/commands' );require_once ( $yiic );或者是: 配置好,要執(zhí)行的頁(yè)面。本文為 protected/commands/crons.phprun();?>3.配置好produ ct/config/console.php里面需要用到的組件,像數(shù)據(jù)庫(kù)連接。配置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ù)庫(kù)名稱',                        'emulatePrepare' => true,                        'username' => '數(shù)據(jù)庫(kù)名稱',                        'passWord' => '數(shù)據(jù)庫(kù)密碼',                        '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方法來(lái)執(zhí)行程序。 我們?cè)赾ommands目錄下創(chuàng)建一個(gè)文件,來(lái)執(zhí)行我們要執(zhí)行的任務(wù),暫且命名為TestCommand.php 。            4,打開你的linux命令窗口,創(chuàng)建自動(dò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##上面命令說(shuō)明,每分鐘執(zhí)行Test任務(wù)一次,把日志保存在test.log下  至此,自動(dòng)化任務(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/

  


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 花莲市| 长阳| 马龙县| 永嘉县| 石门县| 宜丰县| 霍林郭勒市| 建瓯市| 磐石市| 汉源县| 垦利县| 台江县| 垣曲县| 顺平县| 巴里| 兴和县| 崇文区| 建平县| 光山县| 临澧县| 永城市| 安远县| 太保市| 兴业县| 建阳市| 托克逊县| 长阳| 抚顺市| 神农架林区| 万安县| 罗平县| 江川县| 久治县| 都兰县| 砚山县| 稻城县| 孙吴县| 巴中市| 曲阳县| 邓州市| 屏东市|