Table des matières
Présentation
2. Créer une commande
3. Action de commande de console (action)
4. 退出代码
5. 自定义控制台应用
Maison développement back-end tutoriel php Yii Framework Official Guide Series 50 - Sujet spécial : Applications console

Yii Framework Official Guide Series 50 - Sujet spécial : Applications console

Feb 16, 2017 am 09:53 AM



L'application console est principalement utilisée pour mettre en œuvre les opérations hors ligne requises pour les applications Web en ligne, telles que la génération de code, la compilation d'index de recherche, l'envoi d'e-mails, etc. . Le framework Yii fournit un cadre pour écrire des applications console de manière orientée objet. Il permet aux applications console d'accéder aux ressources utilisées par les applications Web en ligne (telles que les informations de connexion à la base de données).

Présentation

.

Yii peut exécuter chaque tâche de console dans la ligne de commande. La commande console est une classe héritée de CConsoleCommand.

Lorsque nous utilisons l'outil yiic webapp pour créer un squelette d'application Yii initialisé, nous pouvons voir les deux fichiers suivants dans le dossier protégé :

  • yiic : Ceci est un script exécutable exécuté sous Linux/Unix ;

  • yiic.bat : Il s'agit d'un script batch exécutable exécuté sous Windows.

Dans la fenêtre de la console , nous pouvons saisir la commande suivante :

cd protected
yiic help
Copier après la connexion

Cela affichera une série de commandes de console. Par défaut, ces commandes valides incluent celles fournies par le framework Yii (commandes système) et celles écrites par les développeurs eux-mêmes pour les applications autonomes (commandes utilisateur).

Yii Framework Official Guide Series 50 - Sujet spécial : Applications console

Si vous voulez voir comment utiliser une commande, vous pouvez utiliser :

yiic help <command-name></command-name>
Copier après la connexion

Pour exécuter une commande, vous pouvez utiliser la commande suivante format :

yiic <command-name> [parameters...]</command-name>
Copier après la connexion

2. Créer une commande

La commande de console est enregistrée sous la forme d'un fichier de classe dans un chemin tel que CConsoleApplication::command. Par défaut, elle pointe vers le. dossier protégé/commandes.

Une classe de commande de console doit hériter de CConsoleCommand. Le nom de la classe doit être au format XyzCommand, où Xyz représente le nom de la commande avec la première lettre en majuscule. utilisez le nom de classe SitemapCommand. Les noms de commandes de console sont sensibles à la casse.

Astuce : En configurant CConsoleApplication::command matching, vous pouvez obtenir des commandes nommées sous différentes formes et stockées dans différents dossiers de classe.

Afin de créer une nouvelle commande, vous devez souvent remplacer CConsoleCommand::run() ou développer une ou plusieurs actions de commande.

Lors de l'exécution d'une commande console, la méthode CConsoleCommand::run() sera appelée par l'application console. Tous les paramètres de la console seront également transmis à cette méthode sous la forme du fragment de méthode suivant :


public function run($args) { ... }
Copier après la connexion

où $args Représente les paramètres supplémentaires donnés sur la ligne de commande.

Dans la commande console, nous pouvons utiliser Yii::app() pour accéder à l'instance d'application console. De plus, nous pouvons également accéder à des ressources telles que les connexions à la base de données (par exemple Yii::app()->). ;db ). Vous pouvez voir que cette utilisation est très similaire à celle des applications Web.

Info : A partir de la version 1.1.1, on peut également créer des commandes globales partagées par toutes les applications Yii sur la même machine : définir une variable d'environnement nommée YII_CONSOLE_COMMANDS Pointer vers un existant dossier, puis placez notre classe de commande globale sous ce dossier.

3. Action de commande de console (action)

Remarque : Cette fonctionnalité d'action de commande de console est valable à partir de la version 1.1.5.

Une commande de console doit souvent traiter différents paramètres de ligne de commande, certains sont obligatoires et d'autres sont facultatifs. La commande de console doit également fournir des sous-commandes pour gérer différentes sous-tâches. Ces tâches peuvent être simplifiées à l'aide d'actions de commande de console.

Une action de commande de console est une méthode de la classe de commande de console. Le nom de la méthode doit être au format actionXyz, où Xyz représente le nom de l'action avec la première lettre en majuscule. Par exemple, une méthode actionIndex définit une action. action d'index nommée.

Pour effectuer une action spécifique, nous pouvons utiliser le format de ligne de commande suivant :

yiic <command-name> <action-name> --option1=value1 --option2=value2 ...</action-name></command-name>
Copier après la connexion

Des paires option-valeur supplémentaires seront transmises en tant que paramètres nommés dans la méthode d'action . La valeur d'une opération xyz sera transmise à la méthode d'action sous la forme du paramètre $xyz. Par exemple, si nous définissons la classe de commande suivante :


class SitemapCommand extends CConsoleCommand
{
    public function actionIndex($type, $limit=5) { ... }
    public function actionInit() { ... }
}
Copier après la connexion

Ensuite, la commande de console suivante est appelée actionIndex ("News", 5) aura des résultats :

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
Copier après la connexion

Si une opération ne spécifie pas de valeur (par exemple --type au lieu de --type=News), la valeur du paramètre d'action correspondant sera Assumée être vrai.

Remarque : ne prend pas en charge le format de paramètre facultatif --type News, -t News.

Une valeur de paramètre peut être un tableau ( Indice de type de tableau requis :


public function actionIndex(array $types) { ... }
Copier après la connexion

Si vous souhaitez utiliser des valeurs de tableau dans les paramètres de ligne de commande , il suffit de répéter simplement la même option :

yiic sitemap index --types=News --types=Article
Copier après la connexion

La commande ci-dessus finira par appeler actionIndex(array('News', 'Article')).

À partir de la version 1.1.6, Yii prend également en charge l'utilisation de paramètres d'action anonymes et d'options globales.

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

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


public function actionIndex($limit=10, $args=array()) {...}
Copier après la connexion

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

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


class SitemapCommand extends CConsoleCommand
{
    public $verbose=false;
    public function actionIndex($type) {...}
}
Copier après la connexion

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

yiic sitemap index --verbose=1 --type=News
Copier après la connexion

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
Copier après la connexion

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

5. 自定义控制台应用

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

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


return array(
    ......
    'components'=>array(
        'db'=>array(
            ......
        ),
    ),
);
Copier après la connexion

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

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


Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Dead Rails - Comment apprivoiser les loups
4 Il y a quelques semaines By DDD
<🎜>: Grow A Garden - Guide de mutation complet
2 Il y a quelques semaines By DDD
Niveaux de force pour chaque ennemi et monstre de R.E.P.O.
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel Java
1658
14
Tutoriel PHP
1257
29
Tutoriel C#
1231
24
Développement d'API RESTful dans le framework Yii Développement d'API RESTful dans le framework Yii Jun 21, 2023 pm 12:34 PM

Yii est un framework MVC hautes performances basé sur PHP. Il fournit un ensemble très riche d'outils et de fonctions pour prendre en charge le développement rapide et efficace d'applications Web. Parmi eux, la fonction RESTfulAPI du framework Yii a attiré de plus en plus l'attention et l'amour des développeurs, car l'utilisation du framework Yii peut facilement créer des interfaces RESTful hautes performances et facilement évolutives, offrant un support solide pour le développement d'applications Web. Introduction à RESTfulAPI RESTfulAPI est un

Middleware du framework Yii : prise en charge de plusieurs stockages de données pour les applications Middleware du framework Yii : prise en charge de plusieurs stockages de données pour les applications Jul 28, 2023 pm 12:43 PM

Middleware du framework Yii : fournir une prise en charge de plusieurs stockages de données pour les applications Introduction Le middleware (middleware) est un concept important dans le framework Yii, qui fournit une prise en charge de plusieurs stockages de données pour les applications. Le middleware agit comme un filtre, insérant du code personnalisé entre les requêtes et les réponses d'une application. Grâce au middleware, nous pouvons traiter, vérifier, filtrer les demandes, puis transmettre les résultats traités au middleware suivant ou au gestionnaire final. Le middleware du framework Yii est très simple à utiliser

Créer un site Web de guide de jeu en utilisant le framework Yii Créer un site Web de guide de jeu en utilisant le framework Yii Jun 21, 2023 pm 01:45 PM

Ces dernières années, avec le développement rapide de l'industrie du jeu, de plus en plus de joueurs ont commencé à rechercher des stratégies de jeu pour les aider à réussir. Par conséquent, la création d’un site Web de guides de jeu peut permettre aux joueurs d’obtenir plus facilement des guides de jeu, et en même temps, cela peut également offrir aux joueurs une meilleure expérience de jeu. Lors de la création d'un tel site Web, nous pouvons utiliser le framework Yii pour le développement. Le framework Yii est un framework de développement d'applications web basé sur le langage de programmation PHP. Il présente les caractéristiques d'une efficacité élevée, d'une sécurité et d'une forte évolutivité, et peut nous aider à créer un guide de jeu plus rapidement et plus efficacement.

Étapes pour mettre en œuvre la mise en cache des pages Web et la segmentation des pages à l'aide du framework Yii Étapes pour mettre en œuvre la mise en cache des pages Web et la segmentation des pages à l'aide du framework Yii Jul 30, 2023 am 09:22 AM

Étapes pour mettre en œuvre la mise en cache et la segmentation de pages Web à l'aide du framework Yii Introduction : Au cours du processus de développement Web, afin d'améliorer les performances et l'expérience utilisateur du site Web, il est souvent nécessaire de mettre en cache et de fragmenter la page. Le framework Yii fournit de puissantes fonctions de mise en cache et de mise en page, qui peuvent aider les développeurs à mettre en œuvre rapidement la mise en cache et la segmentation de pages Web. Cet article explique comment utiliser le framework Yii pour implémenter la mise en cache et la segmentation de pages Web. 1. Activez la mise en cache des pages Web Dans le framework Yii, la mise en cache des pages Web peut être activée via le fichier de configuration. Ouvrez le fichier de configuration principal co

Comment utiliser le framework Yii en PHP Comment utiliser le framework Yii en PHP Jun 27, 2023 pm 07:00 PM

Avec le développement rapide des applications Web, le développement Web moderne est devenu une compétence importante. De nombreux frameworks et outils sont disponibles pour développer des applications web efficaces, parmi lesquels le framework Yii est très populaire. Yii est un framework PHP hautes performances basé sur des composants qui utilise les derniers modèles de conception et technologies, fournit des outils et des composants puissants et est idéal pour créer des applications Web complexes. Dans cet article, nous verrons comment utiliser le framework Yii pour créer des applications Web. Installez d'abord le framework Yii,

Yii Framework Middleware : ajoutez des fonctionnalités de journalisation et de débogage à votre application Yii Framework Middleware : ajoutez des fonctionnalités de journalisation et de débogage à votre application Jul 28, 2023 pm 08:49 PM

Middleware du framework Yii : ajouter des fonctionnalités de journalisation et de débogage aux applications [Introduction] Lors du développement d'applications Web, nous devons généralement ajouter des fonctionnalités supplémentaires pour améliorer les performances et la stabilité de l'application. Le framework Yii fournit le concept de middleware qui nous permet d'effectuer certaines tâches supplémentaires avant et après que l'application traite la requête. Cet article explique comment utiliser la fonction middleware du framework Yii pour implémenter les fonctions de journalisation et de débogage. [Qu'est-ce qu'un middleware] Le middleware fait référence au traitement des demandes et des réponses avant et après que l'application traite la demande.

Comment utiliser des contrôleurs pour gérer les requêtes Ajax dans le framework Yii Comment utiliser des contrôleurs pour gérer les requêtes Ajax dans le framework Yii Jul 28, 2023 pm 07:37 PM

Dans le framework Yii, les contrôleurs jouent un rôle important dans le traitement des requêtes. En plus de gérer les requêtes de pages régulières, les contrôleurs peuvent également être utilisés pour gérer les requêtes Ajax. Cet article expliquera comment gérer les requêtes Ajax dans le framework Yii et fournira des exemples de code. Dans le framework Yii, le traitement des requêtes Ajax peut s'effectuer à travers les étapes suivantes : La première étape consiste à créer une classe contrôleur (Controller). Vous pouvez hériter de la classe de contrôleur de base yiiwebCo fournie par le framework Yii

Outils de débogage dans le framework Yii : applications de profilage et de débogage Outils de débogage dans le framework Yii : applications de profilage et de débogage Jun 21, 2023 pm 06:18 PM

Dans le développement d’applications Web modernes, les outils de débogage sont indispensables. Ils aident les développeurs à trouver et à résoudre divers problèmes liés à leurs applications. En tant que framework d'application Web populaire, le framework Yii fournit naturellement des outils de débogage. Cet article se concentrera sur les outils de débogage du framework Yii et expliquera comment ils nous aident à analyser et déboguer les applications. GiiGii est un générateur de code pour le framework Yii. Il peut générer automatiquement du code pour les applications Yii, telles que des modèles, des contrôleurs, des vues, etc. En utilisant Gii,

See all articles