Inhaltsverzeichnis
Übersicht
2. Befehl erstellen
3. Konsolenbefehlsaktion (Aktion)
4. 退出代码
5. 自定义控制台应用
Heim Backend-Entwicklung PHP-Tutorial Yii Framework Offizieller Leitfaden Serie 50 – Spezialthema: Konsolenanwendungen

Yii Framework Offizieller Leitfaden Serie 50 – Spezialthema: Konsolenanwendungen

Feb 16, 2017 am 09:53 AM



Die Konsolenanwendung wird hauptsächlich zum Implementieren von Offline-Vorgängen verwendet, die für Online-Webanwendungen erforderlich sind, z. B. Codegenerierung, Suchindexkompilierung, E-Mail-Versand usw . Das Yii-Framework bietet ein Framework zum objektorientierten Schreiben von Konsolenanwendungen. Es ermöglicht Konsolenanwendungen, auf Ressourcen zuzugreifen, die von Online-Webanwendungen verwendet werden (z. B. Datenbankverbindungsinformationen).

Übersicht

Yii kann jede Konsolenaufgabe in der Befehlszeile ausführen. Der Konsolenbefehl ist eine von CConsoleCommand geerbte Klasse.

Wenn wir das yiic-Webapp-Tool verwenden, um ein initialisiertes Yii-Anwendungsskelett zu erstellen, können wir die folgenden zwei Dateien im geschützten Ordner sehen:

  • yiic: Dies ist eine ausführbares Skript, das unter Linux/Unix ausgeführt wird;

  • yiic.bat: Dies ist ein ausführbares Batch-Skript, das unter Windows ausgeführt wird.

Im Konsolenfenster , können wir den folgenden Befehl eingeben:

cd protected
yiic help
Nach dem Login kopieren

Dadurch wird eine Reihe von Konsolenbefehlen angezeigt. Zu diesen gültigen Befehlen gehören standardmäßig diejenigen, die vom Yii-Framework bereitgestellt werden (Systembefehle) und diejenigen, die von Entwicklern selbst für eigenständige Anwendungen geschrieben wurden (Benutzerbefehle).

Yii Framework Offizieller Leitfaden Serie 50 – Spezialthema: Konsolenanwendungen

Wenn Sie sehen möchten, wie ein Befehl verwendet wird, können Sie Folgendes verwenden:

yiic help <command-name></command-name>
Nach dem Login kopieren

Um einen Befehl auszuführen, können Sie den folgenden Befehl verwenden Format:

yiic <command-name> [parameters...]</command-name>
Nach dem Login kopieren

2. Befehl erstellen

Der Konsolenbefehl wird in Form einer Klassendatei in einem Pfad wie CConsoleApplication::command gespeichert Ordner protected/commands.

Eine Konsolenbefehlsklasse muss von CConsoleCommand erben. Der Klassenname muss das Format XyzCommand haben, wobei Xyz den Befehlsnamen mit einem Großbuchstaben darstellt Verwenden Sie den Klassennamen SitemapCommand. Bei Konsolenbefehlsnamen wird die Groß-/Kleinschreibung beachtet.

Tipp: Durch die Konfiguration des CConsoleApplication::command-Abgleichs können Sie Befehle erhalten, die in verschiedenen Formen benannt und in verschiedenen Ordnern der Klasse gespeichert werden.

Um einen neuen Befehl zu erstellen, müssen Sie häufig CConsoleCommand::run() überschreiben oder eine oder mehrere Befehlsaktionen entwickeln.

Beim Ausführen eines Konsolenbefehls wird die Methode CConsoleCommand::run() von der Konsolenanwendung aufgerufen. Alle Konsolenparameter werden auch in Form des folgenden Methodenfragments an diese Methode übergeben:


public function run($args) { ... }
Nach dem Login kopieren

wo $args Stellt zusätzliche Parameter dar, die in der Befehlszeile angegeben werden.

Im Konsolenbefehl können wir Yii::app() verwenden, um auf die Konsolenanwendungsinstanz zuzugreifen. Darüber hinaus können wir auch auf Ressourcen wie Datenbankverbindungen zugreifen (z. B. Yii::app()-> ;db ). Sie können sehen, dass diese Verwendung der Verwendung in Webanwendungen sehr ähnlich ist.

Info: Ab Version 1.1.1 können wir auch globale Befehle erstellen, die von allen Yii-Anwendungen auf demselben Computer gemeinsam genutzt werden: Definieren Sie eine Umgebungsvariable mit dem Namen YII_CONSOLE_COMMANDS. Zeigen Sie auf eine vorhandene Ordner und platzieren Sie dann unsere globale Befehlsklasse in diesem Ordner.

3. Konsolenbefehlsaktion (Aktion)

Hinweis: Diese Konsolenbefehlsaktionsfunktion ist ab Version 1.1.5 gültig.

Ein Konsolenbefehl muss häufig verschiedene Befehlszeilenparameter verarbeiten, einige sind erforderlich und andere optional. Der Konsolenbefehl muss auch einige Unterbefehle bereitstellen, um verschiedene Unteraufgaben zu verarbeiten. Diese Aufgaben können mithilfe von Konsolenbefehlsaktionen vereinfacht werden.

Eine Konsolenbefehlsaktion ist eine Methode in der Konsolenbefehlsklasse. Der Methodenname muss das Format actionXyz haben, wobei Xyz den Aktionsnamen mit großgeschriebenem Anfangsbuchstaben darstellt. Eine actionIndex-Methode definiert beispielsweise eine Aktion benannte Indexaktion.

Um eine bestimmte Aktion auszuführen, können wir das folgende Befehlszeilenformat verwenden:

yiic <command-name> <action-name> --option1=value1 --option2=value2 ...</action-name></command-name>
Nach dem Login kopieren

Zusätzliche Option-Wert-Paare werden als benannte Parameter in der Aktionsmethode übergeben . Der Wert einer xyz-Operation wird in Form des Parameters $xyz an die Aktionsmethode übergeben. Wenn wir beispielsweise die folgende Befehlsklasse definieren:


class SitemapCommand extends CConsoleCommand
{
    public function actionIndex($type, $limit=5) { ... }
    public function actionInit() { ... }
}
Nach dem Login kopieren

Dann heißt der folgende Konsolenbefehl actionIndex ('News', 5) wird Ergebnisse liefern:

yiic sitemap index --type=News --limit=5

// $limit takes default value
yiic sitemap index --type=News

// $limit takes default value
// because 'index' is a default action, we can omit the action name
yiic sitemap --type=News

// the order of options does not matter
yiic sitemap index --limit=5 --type=News
Nach dem Login kopieren

Wenn eine Operation keinen Wert angibt (z. B. --type statt --type=News), wird der entsprechende Aktionsparameterwert angenommen um wahr zu sein.

Hinweis: unterstützt nicht das optionale Parameterformat --type News, -t News.

Ein Parameterwert kann ein Array sein ( erforderlich Hinweis zum Array-Typ erforderlich):


public function actionIndex(array $types) { ... }
Nach dem Login kopieren

Wenn Sie Array-Werte in Befehlszeilenparametern verwenden möchten , einfach die gleiche Option wiederholen:

yiic sitemap index --types=News --types=Article
Nach dem Login kopieren

Der obige Befehl ruft schließlich actionIndex(array('News', 'Article')) auf.

Ab Version 1.1.6, Yii Die Verwendung anonymer Aktionsparameter und globaler Optionen wird ebenfalls unterstützt

匿名参数表示这些命令行参数不是以选项的形式呈现. 例如, 在命令 yiic sitemap index --limit=5 News中, 我们有一个值为News的匿名参数和命名参数 limit,其值为5。

为了使用匿名参数, 一个命令动作必须声明参数为 $args的形式. 例如,


public function actionIndex($limit=10, $args=array()) {...}
Nach dem Login kopieren

$args数组将会装入所有的匿名参数值.

全局选项代表那些命令行选项可以被一个命令中所有动作共享的选项. 例如, 在一个命令中提供了多个选项, 我们可能想要每一个动作识别一个名为verbose的动作. 当然我们可以在每一个动作方法中声明 $verbose 参数, 一个更好的方式是将其声明为这个命令类的公有成员变量, 将 verbose 转换为全局参数:


class SitemapCommand extends CConsoleCommand
{
    public $verbose=false;
    public function actionIndex($type) {...}
}
Nach dem Login kopieren

上面的代码允许我们执行一个带 verbose 选项的命令:

yiic sitemap index --verbose=1 --type=News
Nach dem Login kopieren

4. 退出代码

Note: 在控制台命令中退出代码的特性从版本 1.1.11起有效.

通过cronjob或者使用一个持续集成的服务器自动运行控制台命令的时候, 要么命令运行运行成功,要么命令运行失败. 这可以通过检查进程返回的退出代码来查看。

这些退出码是从0-254的整型值(this is the range in php world), 其中 0 表示退出成功其他的所有非0值表示出现了错误.

在一个动作方法或者控制台命令的 run() 方法中你可以在退出时返回整型值退出码 ,例如:


if (/* error */) {
    return 1; // exit with error code 1
}
// ... do something ...
return 0; // exit successfully
Nach dem Login kopieren

如果没有返回值, 应用将会退出返回 0.

5. 自定义控制台应用

默认情况下, 如果一个应用是使用yiic webapp工具创建的, 命令行应用的配置将会放在 protected/config/console.php文件中. 和一个Web应用配置文件一样, 这个文件是一个返回控制台应用实例的初始化配置值的数组的PHP脚本。所以CConsoleApplication的任何公有属性都可以在该文件中配置.

因为控制台命令经常被创建来服务于Web应用, 所以需要访问资源(如数据库连接)。我们可以在控制台配置文件中以如下方式来实现 :


return array(
    ......
    'components'=>array(
        'db'=>array(
            ......
        ),
    ),
);
Nach dem Login kopieren

正如我们所看到的那样, 配置的格式和我们在Web应用中的配置类似.这是因为CConsoleApplication和 CWebApplication 的基类相同。

 以上就是Yii框架官方指南系列50——专题:控制台应用的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

RESTful API-Entwicklung im Yii-Framework RESTful API-Entwicklung im Yii-Framework Jun 21, 2023 pm 12:34 PM

Yii ist ein leistungsstarkes MVC-Framework auf Basis von PHP. Es bietet einen sehr umfangreichen Satz an Tools und Funktionen zur Unterstützung der schnellen und effizienten Entwicklung von Webanwendungen. Unter anderem hat die RESTfulAPI-Funktion des Yii-Frameworks immer mehr Aufmerksamkeit und Liebe von Entwicklern auf sich gezogen, da mit dem Yii-Framework problemlos leistungsstarke und leicht skalierbare RESTful-Schnittstellen erstellt werden können, die die Entwicklung von Webanwendungen stark unterstützen. Einführung in RESTfulAPI RESTfulAPI ist eine

Yii-Framework-Middleware: Bereitstellung mehrerer Datenspeicherunterstützung für Anwendungen Yii-Framework-Middleware: Bereitstellung mehrerer Datenspeicherunterstützung für Anwendungen Jul 28, 2023 pm 12:43 PM

Yii-Framework-Middleware: Bereitstellung mehrerer Datenspeicherunterstützung für Anwendungen Einführung Middleware (Middleware) ist ein wichtiges Konzept im Yii-Framework, das mehrere Datenspeicherunterstützung für Anwendungen bereitstellt. Middleware fungiert wie ein Filter und fügt benutzerdefinierten Code zwischen den Anforderungen und Antworten einer Anwendung ein. Mithilfe der Middleware können wir Anforderungen verarbeiten, überprüfen, filtern und die verarbeiteten Ergebnisse dann an die nächste Middleware oder den endgültigen Handler weitergeben. Middleware im Yii-Framework ist sehr einfach zu verwenden

Schritte zum Implementieren von Webseiten-Caching und Seiten-Chunking mit dem Yii-Framework Schritte zum Implementieren von Webseiten-Caching und Seiten-Chunking mit dem Yii-Framework Jul 30, 2023 am 09:22 AM

Schritte zum Implementieren von Webseiten-Caching und Seiten-Chunking mit dem Yii-Framework Einführung: Während des Webentwicklungsprozesses ist es zur Verbesserung der Leistung und Benutzererfahrung der Website häufig erforderlich, die Seite zwischenzuspeichern und zu segmentieren. Das Yii-Framework bietet leistungsstarke Caching- und Layoutfunktionen, die Entwicklern dabei helfen können, Webseiten-Caching und Seiten-Chunking schnell zu implementieren. In diesem Artikel wird erläutert, wie das Yii-Framework zum Implementieren von Webseiten-Caching und Seiten-Chunking verwendet wird. 1. Aktivieren Sie das Webseiten-Caching. Im Yii-Framework kann das Webseiten-Caching über die Konfigurationsdatei aktiviert werden. Öffnen Sie die Hauptkonfigurationsdatei co

So verwenden Sie das Yii-Framework in PHP So verwenden Sie das Yii-Framework in PHP Jun 27, 2023 pm 07:00 PM

Mit der rasanten Entwicklung von Webanwendungen ist die moderne Webentwicklung zu einer wichtigen Fähigkeit geworden. Für die Entwicklung effizienter Webanwendungen stehen viele Frameworks und Tools zur Verfügung, unter denen das Yii-Framework ein sehr beliebtes Framework ist. Yii ist ein leistungsstarkes, komponentenbasiertes PHP-Framework, das die neuesten Designmuster und Technologien nutzt, leistungsstarke Tools und Komponenten bereitstellt und sich ideal für die Erstellung komplexer Webanwendungen eignet. In diesem Artikel besprechen wir, wie Sie das Yii-Framework zum Erstellen von Webanwendungen verwenden. Installieren Sie zuerst das Yii-Framework.

Erstellen Sie eine Spielanleitungs-Website mit dem Yii-Framework Erstellen Sie eine Spielanleitungs-Website mit dem Yii-Framework Jun 21, 2023 pm 01:45 PM

In den letzten Jahren haben mit der rasanten Entwicklung der Spielebranche immer mehr Spieler begonnen, nach Spielstrategien zu suchen, die ihnen helfen, das Spiel zu bestehen. Daher kann die Erstellung einer Spielanleitungs-Website den Spielern den Zugang zu Spielanleitungen erleichtern und gleichzeitig den Spielern ein besseres Spielerlebnis bieten. Beim Erstellen einer solchen Website können wir das Yii-Framework für die Entwicklung verwenden. Das Yii-Framework ist ein Webanwendungsentwicklungsframework, das auf der Programmiersprache PHP basiert. Es zeichnet sich durch hohe Effizienz, Sicherheit und starke Skalierbarkeit aus und kann uns dabei helfen, einen Spielführer schneller und effizienter zu erstellen.

Yii Framework Middleware: Fügen Sie Ihrer Anwendung Protokollierungs- und Debugging-Funktionen hinzu Yii Framework Middleware: Fügen Sie Ihrer Anwendung Protokollierungs- und Debugging-Funktionen hinzu Jul 28, 2023 pm 08:49 PM

Yii-Framework-Middleware: Protokollierungs- und Debugging-Funktionen zu Anwendungen hinzufügen [Einführung] Bei der Entwicklung von Webanwendungen müssen wir normalerweise einige zusätzliche Funktionen hinzufügen, um die Leistung und Stabilität der Anwendung zu verbessern. Das Yii-Framework stellt das Konzept der Middleware bereit, das es uns ermöglicht, einige zusätzliche Aufgaben auszuführen, bevor und nachdem die Anwendung die Anfrage verarbeitet. In diesem Artikel wird erläutert, wie Sie die Middleware-Funktion des Yii-Frameworks verwenden, um Protokollierungs- und Debugging-Funktionen zu implementieren. [Was ist Middleware?] Middleware bezieht sich auf die Verarbeitung von Anfragen und Antworten vor und nach der Verarbeitung der Anfrage durch die Anwendung.

So verwenden Sie Controller zur Verarbeitung von Ajax-Anfragen im Yii-Framework So verwenden Sie Controller zur Verarbeitung von Ajax-Anfragen im Yii-Framework Jul 28, 2023 pm 07:37 PM

Im Yii-Framework spielen Controller eine wichtige Rolle bei der Bearbeitung von Anfragen. Zusätzlich zur Verarbeitung regulärer Seitenanfragen können Controller auch zur Verarbeitung von Ajax-Anfragen verwendet werden. In diesem Artikel wird erläutert, wie Ajax-Anfragen im Yii-Framework verarbeitet werden, und es werden Codebeispiele bereitgestellt. Im Yii-Framework kann die Verarbeitung von Ajax-Anfragen über die folgenden Schritte erfolgen: Erstellen Sie zunächst eine Controller-Klasse (Controller). Sie können die vom Yii-Framework bereitgestellte grundlegende Controller-Klasse yiiwebCo erben

Debugging-Tools im Yii Framework: Profilerstellung und Debugging von Anwendungen Debugging-Tools im Yii Framework: Profilerstellung und Debugging von Anwendungen Jun 21, 2023 pm 06:18 PM

In der modernen Webanwendungsentwicklung sind Debugging-Tools unverzichtbar. Sie helfen Entwicklern, verschiedene Probleme mit ihren Anwendungen zu finden und zu lösen. Als beliebtes Webanwendungs-Framework bietet das Yii-Framework natürlich einige Debugging-Tools. Dieser Artikel konzentriert sich auf die Debugging-Tools im Yii-Framework und erläutert, wie sie uns bei der Analyse und dem Debuggen von Anwendungen helfen. GiiGii ist ein Codegenerator für das Yii-Framework. Es kann automatisch Code für Yii-Anwendungen wie Modelle, Controller, Ansichten usw. generieren. Mit Gii,

See all articles