Heim >php教程 >PHP开发 >Detaillierte Erläuterung der Methode zur Implementierung der Befehlsaufgabenverarbeitung in Yii

Detaillierte Erläuterung der Methode zur Implementierung der Befehlsaufgabenverarbeitung in Yii

高洛峰
高洛峰Original
2016-12-30 16:19:261559Durchsuche

Das Beispiel in diesem Artikel beschreibt, wie Yii die Befehlsaufgabenverarbeitung implementiert. Teilen Sie es allen als Referenz mit. Die Details lauten wie folgt:

1. Konfiguration, erforderliche Komponenten zur Ausführung der Aufgabe

Aufgabenkonfigurationsdatei: /protected/config/console.php

Die Konfigurationsmethode ähnelt der Konfiguration der Hauptdatei

<?php
// This is the configuration for yiic console application.
// Any writable CConsoleApplication properties can be configured here.
return array(
  &#39;basePath&#39;=>dirname(__FILE__).DIRECTORY_SEPARATOR.&#39;..&#39;,
  &#39;name&#39;=>&#39;My Console Application&#39;,
  // application components
  // 自动载入的模型和组件类
  &#39;import&#39;=>array(
      &#39;application.models.*&#39;,//载入"application/models/"文件夹下的所有模型类
      &#39;application.components.*&#39;,//载入"application/components/"文件夹下的所有应用组件类
      &#39;application.extensions.*&#39;,//载入"application/extensions/"文件夹下的所有应用组件类
  ),
  &#39;components&#39;=>array(
      // uncomment the following to use a MySQL database
      &#39;db&#39;=>array(
          &#39;connectionString&#39; => &#39;mysql:host=localhost;dbname=dbname&#39;,//连接mysql数据库
          &#39;emulatePrepare&#39; => true,
          &#39;username&#39; => &#39;root&#39;,//MySQL数据库用户名
          &#39;password&#39; => &#39;123456&#39;,//MySQL数据库用户密码
          &#39;charset&#39; => &#39;utf8&#39;,//MySQL数据库编码
          &#39;tablePrefix&#39; => &#39;zd_&#39;, //MySQL数据库表前缀
          &#39;enableProfiling&#39;=>true,
          &#39;enableParamLogging&#39;=>true,
      ),
      //加载Email组件
      &#39;mailer&#39; => array(
          &#39;class&#39;   => &#39;application.extensions.mailer.EMailer&#39;,
      ),
  ),
);

2. Die Aufgabendatei

wird im Dateiverzeichnis /protected/commands/ abgelegt und erbt die CConsoleCommand-Basis Klasse. Die Benennungsmethode für die Aufgabendatei ist Aufgabenname + Befehl

Zum Beispiel GoCommand.php

<?php
/**
 * 自动运行文件
 */
class GoCommand extends CConsoleCommand
{
  /**
   * 死循环输出
   */
  public function run(){
    for($i=1;$i>0;$i++){
      self::echoWord($i);
      sleep(2);//休眠2秒
      //跳出
      if(i==500){
        break;
      }
    }
  }
  /**
   * 输出hollo word
   */
  public function echoWord($i){
    echo "hollo word --$i\n";
  }
}

Führen Sie die Aufgabe aus

Öffnen Sie die Befehlszeile Geben Sie im Tool das /protected-Verzeichnis des Projekts ein und geben Sie den Befehl yiic ein. Die Liste zeigt die gerade geschriebene Aufgabendatei an

E:\project\app\protected>yiic
Yii command runner (based on Yii v1.1.12)
Usage: E:\zeee\zyd\protected\yiic.php <command-name> [parameters...]
The following commands are available:
- go
- mailqueue
- message
- migrate
- shell
- webapp
To see individual command help, use the following:

Führen Sie den Befehl yiic go aus, um die Aufgabenverarbeitung zu realisieren

Ich hoffe, dass dieser Artikel für alle auf dem Yii-Framework basierenden PHP-Programmdesigns hilfreich sein wird.

Ausführlichere Erklärungen, wie Yii die Verarbeitung von Befehlsaufgaben implementiert, und verwandte Artikel finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn