


Yii Framework Official Guide Series 50 - Sujet spécial : Applications console
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
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).
Si vous voulez voir comment utiliser une commande, vous pouvez utiliser :
yiic help <command-name></command-name>
Pour exécuter une commande, vous pouvez utiliser la commande suivante format :
yiic <command-name> [parameters...]</command-name>
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) { ... }
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>
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() { ... } }
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
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) { ... }
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
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()) {...}
$args数组将会装入所有的匿名参数值.
全局选项代表那些命令行选项可以被一个命令中所有动作共享的选项. 例如, 在一个命令中提供了多个选项, 我们可能想要每一个动作识别一个名为verbose的动作. 当然我们可以在每一个动作方法中声明 $verbose 参数, 一个更好的方式是将其声明为这个命令类的公有成员变量, 将 verbose 转换为全局参数:
class SitemapCommand extends CConsoleCommand { public $verbose=false; public function actionIndex($type) {...} }
上面的代码允许我们执行一个带 verbose 选项的命令:
yiic sitemap index --verbose=1 --type=News
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
如果没有返回值, 应用将会退出返回 0.
5. 自定义控制台应用
默认情况下, 如果一个应用是使用yiic webapp工具创建的, 命令行应用的配置将会放在 protected/config/console.php文件中. 和一个Web应用配置文件一样, 这个文件是一个返回控制台应用实例的初始化配置值的数组的PHP脚本。所以CConsoleApplication的任何公有属性都可以在该文件中配置.
因为控制台命令经常被创建来服务于Web应用, 所以需要访问资源(如数据库连接)。我们可以在控制台配置文件中以如下方式来实现 :
return array( ...... 'components'=>array( 'db'=>array( ...... ), ), );
正如我们所看到的那样, 配置的格式和我们在Web应用中的配置类似.这是因为CConsoleApplication和 CWebApplication 的基类相同。
以上就是Yii框架官方指南系列50——专题:控制台应用的内容,更多相关内容请关注PHP中文网(www.php.cn)!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

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

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds











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 : 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

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 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

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,

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.

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

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,
