yii geplante Aufgaben
Aug 08, 2016 am 09:31 AM
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)命令和用戶(hù)自定義的命令。 如果要知道如何執(zhí)行一個(gè)命令可以執(zhí)行以下命令: 1 yiic help 如果要執(zhí)行一個(gè)命令,可以使用如下格式: 1 yiic [parameters...] 1、創(chuàng)建命令 控制臺(tái)命令都是以類(lèi)文件的方式存儲(chǔ)在 CConsoleApplication::commandPath 指定的目錄。默認(rèn)是存儲(chǔ)在 protected/commands 。 每個(gè)類(lèi)必須繼承自 CConsoleCommand 。類(lèi)名的格式是 XyzCommand ,命令的名字首字母大寫(xiě),xyz才是命令本身。 可以通過(guò)配置 CConsoleApplication::commandMap ,命令類(lèi)可以有不同的命名約定和不同的目錄。 創(chuàng)建一個(gè)新命令你可以覆蓋 CConsoleCommand::run() 或者寫(xiě)一個(gè)或多個(gè)action. 覆蓋父類(lèi)的run方法格式可以是: 1 public 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版本開(kāi)始,可以創(chuàng)建一個(gè)全局的命令,被在同一臺(tái)機(jī)器上的所有的Yii應(yīng)用所共享。為了達(dá)到這樣的目的,你需要定義一個(gè)名為 YII_CONSOLE_COMMANDS 的環(huán)境變量,指向一個(gè)已存在的目錄,然后把這個(gè)全局的命令類(lèi)放在這個(gè)目錄里面。 2、控制臺(tái)命令A(yù)ction 一個(gè)控制臺(tái)命令action就是一個(gè)控制臺(tái)命令類(lèi)的一個(gè)方法。 方法名的格式: actionXyz ,action名的首字母大寫(xiě),xyz才是被調(diào)用的action本身。 執(zhí)行一個(gè)action的命令格式: 1 yiic --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ù)組類(lèi)型,如: 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開(kāi)始,還支持匿名參數(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 會(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è)命令類(lèi)的公共成員變量( public member variable ),這樣 verbose 就會(huì)成為一個(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ī)器可能需要檢測(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)用程序。 比如: 1 if ( /* error */ ) { 2 return 1; // exit with error code 1 3 } 4 // ... do something ... 5 return 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è)配置文件類(lèi)似于普通的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.打開(kāi)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í)行的頁(yè)面。本文為 protected/commands/crons.php run(); ?> 3.配置好produ ct/config/console.php里面需要用到的組件,像數(shù)據(jù)庫(kù)連接。 配置main/console.php,設(shè)置import路徑,以及db連接,這部份與main.php類(lèi)似。 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)入所要的類(lèi)包' ), 'components' => array ( // Main DB connection 'db' => array ( 'connectionString' => 'mysql:host=localhost;dbname=數(shù)據(jù)庫(kù)名稱(chēng)', 'emulatePrepare' => true, 'username' => '數(shù)據(jù)庫(kù)名稱(chēng)', 'password' => '數(shù)據(jù)庫(kù)密碼', 'charset' => 'utf8', 'tablePrefix' => 'company_'、//表前綴 ), 'log' => array ( 'class' => 'CLogRouter', 'routes' => array ( array ( 'class' => 'CFileLogRoute', 'levels' => 'error, warning' ) ) ) ) ); 4.繼承CConsoleCommand寫(xiě)入自己的命令類(lèi),Yii提供了兩種方式去執(zhí)行, 如果你執(zhí)行單一的任務(wù),直接在run方法里面寫(xiě),另外一種 就是同寫(xiě)你的Controller(控制器),增加actionXXX即可。 本實(shí)例采用第二種方式,即采用web程序開(kāi)發(fā)的方式,在基礎(chǔ)了CConsoleCommand的類(lèi)中添加actionXXX方法來(lái)執(zhí)行程序。 我們?cè)赾ommands目錄下創(chuàng)建一個(gè)文件,來(lái)執(zhí)行我們要執(zhí)行的任務(wù),暫且命名為T(mén)estCommand.php 。 4,打開(kāi)你的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/
Das Obige stellt die YII-Planungsaufgabe vor, einschlie?lich der relevanten Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

Konsole bedeutet Konsole. Es handelt sich um ein Ger?t oder eine Software, die mit einem Computersystem interagiert. Es handelt sich normalerweise um ein Ger?t mit einer Tastatur und einem Bildschirm zur Eingabe und Ausgabe von Informationen. Die Konsole wurde ursprünglich für gro?e Computersysteme verwendet und sp?ter auch für pers?nliche Zwecke verwendet Computern und Servern kann es Benutzern helfen, Computersysteme zu verwalten und zu warten sowie Betriebssysteme und Anwendungen zu installieren, Programme zu debuggen usw.

Nintendo hat Vorbestellungen für die neueste Version der Switch Lite (aktuell 189,99 $ bei Amazon) er?ffnet. Allerdings ist das Ger?t derzeit noch nicht weltweit bestellbar. Um es noch einmal zusammenzufassen: Das Unternehmen hat vor knapp zwei Wochen die Switch Lite Hyrule Edition vorgestellt

Verwenden Sie die Console.Clear-Funktion in C#, um die Konsolenausgabe zu l?schen. In C#-Konsolenanwendungen müssen wir h?ufig die Ausgabeinformationen in der Konsole l?schen, um neue Inhalte anzuzeigen oder eine bessere Benutzererfahrung zu bieten. C# bietet die Funktion Console.Clear zur Implementierung dieser Funktion, die die Ausgabe in der Konsole l?schen und die Schnittstelle wieder leer machen kann. Das Aufrufformat der Console.Clear-Funktion lautet wie folgt: Console.Clear(); Diese Funktion erfordert keine Eingabe

DJI hat noch keine Pl?ne zur Einführung einer neuen Action-Kamera best?tigt. Stattdessen scheint es, dass GoPro in diesem Jahr seinem Rivalen einen Schritt voraus sein wird, nachdem angekündigt wurde, dass es am 4. September zwei neue Action-Kameras vorstellen wird. Zum Vergleich: Diese werden voraussichtlich a

Wenn Sie kürzlich den MagicX XU Mini M gekauft haben, k?nnte diese Nachricht eine überraschung sein. Ein Hardware- und Software-Teardown der neu ver?ffentlichten Handheld-Konsole ergab, dass es sich bei der beworbenen RK3562-CPU tats?chlich um einen ?lteren RK3326-Prozessor mit geringerer Spezifikation handelt.

Nintendo hat gestern w?hrend seines letzten Nintendo Direct-Events zahlreiche Spiele vorgestellt, eine übersicht darüber haben wir separat bereitgestellt. Darüber hinaus kündigte das Unternehmen m?glicherweise auch eine neue Version der Switch Lite (aktuell 194,93 $ bei Amazon) an

Eine Konsole ist eine Konsole, eine interaktive Schnittstelle, die in Computerprogrammen zur Eingabe und Ausgabe von Texten oder Befehlen verwendet wird. In verschiedenen Betriebssystemen und Entwicklungsumgebungen kann die Konsole unterschiedlich aussehen und Funktionen haben. In der Regel handelt es sich um eine Textschnittstelle, die eine Befehlszeilenschnittstelle oder Befehlszeilenaufforderung bereitstellt und es dem Benutzer erm?glicht, Befehle über die Tastatur einzugeben und die Ausgabe des Programms anzuzeigen.

Die Python-Umgebung, auf die sich dieser Artikel stützt, ist: Was ist WSGI? WSGI wird auch als Webserver-Universal-Gateway-Schnittstelle bezeichnet und sein vollst?ndiger Name lautet webservergatewayinterface. Es definiert einen Standard dafür, wie Webserver und Webanwendungen in Python kommunizieren und HTTP-Anfragen und -Antworten verarbeiten sollen. Beachten Sie, dass es sich lediglich um ein Protokoll oder eine Spezifikation oder einen Standard handelt Server haben wir im vorherigen Artikel geschrieben. WSGI ist auch in Anwendungen und Server-Gateways unterteilt. Darunter geh?rt der bekannte Flask zu Anwendungen und uWSGI und wsgiref zu Server-Gateways. Pers?nliches Gefühl, WSG
