Analyse de la commande WP – CLI: importation de la base de données WP
T PHP. (pour une introduction à la programmation orientée objet en PHP, lisez les deux articles suivants: concepts de base de l’oop et une étude approfondie de l’oop.)
La commande WP – CLI est une seule opération ou un ensemble d’opérations enregistrées par WP – CLI à l’aide d’un crochet. C’est la même chose que la plupart des WordPress. Cependant, la différence est qu’en plus d’enregistrer une seule commande et un seul appel au crochet, vous pouvez attacher l’objet PHP entier à l’appel en utilisant WP – CLI. Dans ce cas, toutes les méthodes publiques de l’objet deviennent des commandes CLI exécutables (ou des sous – commandes si désiré). C’est un choix très intéressant et puissant, mais tous les développeurs wordpress ne s’attendent pas à ce que cela se produise par défaut. La première fois que je l’ai entendu, j’ai eu des doutes subtils quant à ma compréhension. WordPress n’a pas beaucoup de magie.
Les commandes que nous allons examiner et pourquoi: WP DB Import WP CLI (le projet principal) est actuellement organisé dans une série de dépôts différents qui peuvent effectuer des opérations sur de nombreuses commandes immédiatement. Ensuite, les composants du plug – in sont complètement différents du noyau, et au moment de la publication, le processus utilise composer pour insérer toutes les commandes qui devraient être dans l’ensemble principal avant l’emballage final. C’est un autre exemple très intéressant de modularité et de vision, mais cela peut embrouiller certaines personnes. Certaines commandes, comme les plug – ins et les sujets, sont situées dans le dépôt WP CLI \/ WP CLI, mais la plupart des autres sont situées à l’extérieur du dépôt. Je pense que ces commandes externes sont utiles à ceux qui pensent écrire leurs propres commandes. Après tout, si vous pouvez ajouter des commandes au noyau WP – CLI, vous savez déjà comment créer des extensions.
Quoi qu’il en soit, la commande que nous examinerons plus attentivement et que nous comprendrons mieux est l’importateur de base de données. Comme nous l’avons fait
Ici, c’est le paramètre db. Comme indiqué ci – dessus, toutes les méthodes publiques de la classe de commande db \ u y sont accessibles. Vous pouvez enregistrer des choses comme DB coolmethod en particulier, mais dans ce cas, nous avons vu la magie de la façon d’utiliser WP – CLI pour enregistrer une douzaine de commandes sur une ligne. Une chose intéressante et un peu magique à propos de la façon dont les commandes WP – CLI sont enregistrées est que toutes les commandes sont enregistrées sur la ligne de commande. De plus, c’est en fait le résultat d’annotations PHP qui correspondent plus ou moins à la commande elle – même. Cela présente de nombreux avantages.
Donc, avant d’examiner le Code de la commande d’importation WP DB, regardons son bloc de document. Ce que vous devez savoir, c’est que ce que vous voyez (lignes 340 à 361) est ce que vous obtenez lorsque vous êtes dans l’interface d’aide de la commande d’importation WP db. Importer une base de données à partir d’un fichier ou d’un stdin. Lancez la requête SQL en utilisant les identifiants de base de données DB _ host, db name, DB user et * \
Commandes en ligne de commande.
Ce document n’est pas entièrement nécessaire pour que la commande WP – CLI fonctionne correctement, mais c’est une bonne habitude. Si vous écrivez plus tôt, cela vous donnera plus de réflexion sur la façon dont les utilisateurs utiliseront votre travail. C’est presque toujours une bonne chose. Comment fonctionne WP DB Import si vous lisez cet article pour comprendre la structure de la commande WP CLI, les algorithmes réels et les ensembles de fonctions utilisés par cette commande particulière ne seront pas utiles. Mais on peut en tirer quelque chose d’intéressant. Abréviations abrégées: Import of public function ($args, $Assoc _ args) {if (! Empty ($args [0]) {$result file = $args [0]} Else {$result _ file = sprintf (‘% s.sql’, db name);} MySQL _ args = array (‘database’ = > db name,); If (\
Par la suite, si le fichier n’est pas fourni, la commande devine quel fichier (365) importer. Ici, l’utilisation du premier paramètre args de la méthode est remarquable. Où est la Liste ordonnée des options passées dans la section options du document. Deuxième paramètre de la méthode
Même, mais le nom est entré comme clé, pas comme simple emplacement. La ligne 375 est connue pour utiliser wp \ u CLI:: Error (). Il s’agit d’un bon petit emballage (l’un des rares) qui permet à l’utilisateur d’être informé de ce qui se passe. Mais dans ce cas, cela indique également qu’une erreur s’est produite dans la commande exécutée (ou, pour une méthode réussie, correcte). Pour ce qui est de ces commandes, il est préférable qu’elles s’assurent également que le script envoie le Code de sortie correct pour que d’autres commandes CLI puissent comprendre. Echo travaille sur les commandes WP – CLI, mais ces méthodes doivent être préférées. Enfin, la ligne 385 nécessite quelques explications: Self:: Run (‘\/ usr \/ bin \/ env – mysql – no – Defaults – no – auto – rehash’, $MySQL _ args); L’exécution est un moyen pratique pour cette classe d’invoquer le shell sous – jacent et d’exécuter des commandes CLI autres que WP – CLI. De même, les fonctions Php comme Shell _ exec peuvent fonctionner, mais il y a beaucoup d’avantages à ce qu’elles fonctionnent ici. Dans self:: Run, vous verrez qu’il exécute une commande Basic Bash style appelée MySQL pour réellement demander à la base de données. C’est pourquoi il est utile de comprendre l’ensemble de l’environnement CLI et pas seulement la partie WordPress du WP – CLI. (parce que je ne sais pas: l’utilisation de \/ urs \/ bin \/ env avant que la commande appelle MySQL est destinée à normaliser le comportement, sinon il pourrait y avoir des conflits avec les alias Bash des gens, etc. d’autres explications sont fournies ici.) Notre connaissance des commandes WP – CLI j’aimerais que vous compreniez maintenant comment les commandes WP – CLI fonctionnent à l’interne et que vous puissiez lire les commandes WP – CLI existantes avec plus de confiance et même créer vos propres commandes en comprenant mieux comment fonctionne l’importation WP DB (où se trouve le document, comment le WP – CLI sait, comment les commandes réelles fonctionnent). Bonne chance. Source: Vance Afb