web-dev-qa-db-fra.com

Utiliser WP-CLI depuis WordPress, pas avec SSH

Je cherche un moyen de tester certaines WP-CLI mais à partir de la console de barre de débogage où je teste normalement PHP. Pour les cas où je ne veux pas passer de Windows à SSH, cela pourrait être un moyen de réutiliser/développer effective CLI Méthodes en dehors de CLI.

J'ai vu exec mais il ne me montre que ce qui semble être la dernière ligne de la commande.

echo exec('ls -la'); // -rw-rw-r-- 1 www-data www-data 18108 Jan 20 21:57 widgets.php

Quelqu'un a-t-il déjà essayé d'assembler un ensemble plus complexe de commandes d'une manière plus lisible par l'homme?

1
jgraup

Il semble que exec() puisse toujours fonctionner avec les bonnes variables.

$last_line = exec( $command, &$output, &$return_var )

Le second paramètre capture toutes les données de retour tandis que le retour de la fonction capture la dernière ligne.



$commands = array(
    'wp --version',
    'whoami',
    'pwd',
    'ls -la',
    'wp theme list',
    'wp plugin list',
);

echo '<pre>'.PHP_EOL;
foreach ($commands as $command ) { 

    // run command
    exec($command, $retval);

    // convert output array to text
    echo implode(PHP_EOL, $retval) . PHP_EOL;

    // clear the var for the next command
    unset($retval);
}
echo '</pre>'; 
0
jgraup

WP-CLI n'est pas différent des autres utilitaires côté serveur en ce que vous devez être en mesure d'obtenir l'autorisation de les exécuter à partir d'un environnement de serveur Web à l'aide de exec, spawn ou d'amis. Pour des raisons évidentes, tous ces types d'API PHP vont être bloqués sur la plupart des serveurs. Il est donc peu probable qu'un serveur que vous ne gérez pas (l'accès sans SSH soit une indication) vous laisse exécuter CLI en wordpress.

1
Mark Kaplun