Maison > développement back-end > tutoriel php > DRUPAL: Comment créer votre propre commande DRUSH

DRUPAL: Comment créer votre propre commande DRUSH

William Shakespeare
Libérer: 2025-02-21 10:50:12
original
606 Les gens l'ont consulté

Drupal: How to Create Your Own Drush Command

Concepts clés

  • Extensibilité de la drusque: Drush, l'interface de ligne de commande de Drupal, permet d'étendre ses fonctionnalités avec des commandes personnalisées définies dans les modules. Cela permet d'automatiser les opérations de Drupal spécifiques.
  • Structure de commande: La création d'une commande DRUSH implique un fichier .drush.inc (dans votre module), la fonction hook_drush_command() pour la définition de commande et une fonction de rappel pour exécuter la logique de la commande.
  • Arguments et options: Les commandes peuvent accepter les arguments obligatoires et les options facultatives, améliorant la personnalisation. Les arguments sont passés comme paramètres de fonction, tandis que les options sont récupérées à l'aide de drush_get_option().
  • Entrée interactive et raffinements: Les commandes peuvent demander une entrée utilisateur, fournir des exemples d'utilisation et spécifier les dépendances (niveau de bootstrap Drupal, modules, version de base).

DRUSH rationalise la gestion de Drupal à partir du terminal. Tout en offrant des commandes pré-construites (téléchargement du module, activer, mettre à jour), sa véritable puissance réside dans la création de commandes personnalisées. Ce tutoriel montre la construction d'une commande DRUSH pour un module illustratif simple. L'accent est mis sur la structure de commande de Drush, et non sur la fonctionnalité principale du module. Un exemple de code est disponible dans [ce référentiel] (Repository_link_here - Remplacez par un lien réel si disponible).

Notre module d'échantillon

La fonctionnalité du module demo_drush est une fonction de base:

function demo_drush_print_statement() {
  drupal_set_message(t('Hello world!'));
}
Copier après la connexion
Copier après la connexion

Cette fonction sera utilisée pour montrer comment Dush imprime les messages à la console. Nous le modifierons plus tard pour présenter diverses fonctionnalités de commande.

Le fichier de commande DRUSH (demo_drush.drush.inc)

Créer demo_drush.drush.inc dans le répertoire de votre module. Dush identifie et charge les fonctions à partir de fichiers se terminant par .drush.inc.

Crochet de commande et rappel

Drush Command Architecture comprend deux parties principales: l'implémentation hook_drush_command() (définir les commandes et configurations) et les fonctions de rappel déclenchées par des commandes. Commençons par hook_drush_command():

/**
 * Implements hook_drush_command().
 */
function drush_demo_drush_command() {
  $items['drush-demo-command'] = array(
    'description' => 'Demonstrates Drush command functionality.',
    'aliases' => array('ddc'),
  );
  return $items;
}
Copier après la connexion
Copier après la connexion

Ceci définit une commande nommée drush-demo-command (aliasé comme ddc). La fonction de rappel (par défaut, drush_drush_demo_command()) exécute la logique de la commande:

/**
 * Callback for the drush-demo-command command.
 */
function drush_drush_demo_command() {
  demo_drush_print_statement();
}
Copier après la connexion
Copier après la connexion

Après avoir effacé le cache Dush (drush cc drush), en cours d'exécution drush ddc imprime "Hello World!" à la console.

Arguments et options

Améliorez votre commande avec des arguments (obligatoires) et des options (facultatifs). Ajoutons-les au crochet:

function demo_drush_print_statement() {
  drupal_set_message(t('Hello world!'));
}
Copier après la connexion
Copier après la connexion

Maintenant, drush ddc error --repeat=10 définit le type d'instruction sur "Error" et le répète 10 fois. Mise à jour demo_drush_print_statement() et la fonction de rappel en conséquence:

/**
 * Implements hook_drush_command().
 */
function drush_demo_drush_command() {
  $items['drush-demo-command'] = array(
    'description' => 'Demonstrates Drush command functionality.',
    'aliases' => array('ddc'),
  );
  return $items;
}
Copier après la connexion
Copier après la connexion

Entrée utilisateur

gérer les arguments manquants de manière interactive:

/**
 * Callback for the drush-demo-command command.
 */
function drush_drush_demo_command() {
  demo_drush_print_statement();
}
Copier après la connexion
Copier après la connexion

Exemples dans hook_drush_command()

Ajouter des exemples au crochet:

...
'arguments' => array(
  'type' => 'Statement type (error or success).',
),
'options' => array(
  'repeat' => 'Number of statement repeats.',
),
...
Copier après la connexion

Conclusion

Ce tutoriel couvre les bases de la création de commandes DRUSH. Explorez des fonctionnalités avancées telles que les niveaux de bootstrap, les dépendances des modules et la compatibilité des versions de base dans la documentation de l'API DRUSH.

Les questions fréquemment posées (FAQ) (elles sont déjà bien écrites dans l'entrée, pas besoin de les réécrire)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal