lib/plugins/cli.php
Les extensions CLI (Command Line Interface) vous donnent un moyen facile de fournir des fonctionnalités DokuWiki accessibles depuis la ligne de commande. Ceci est surtout utile en tant que composant dans une extension plus importante où certaines fonctionnalités doivent être exécutées à partir de travaux Cron ou par des administrateurs expérimentés uniquement.
Les extensions se basent sur la librairie php-cli et sa documentation pourrait être une aide supplémentaire.
DokuWiki est livré avec bin/plugin.php
. Appelé sans paramètres, il vous liste toutes les extensions CLI disponibles. Donner simplement le nom de l'extension comme premier argument pour appeler cette extension.
Dans l' extension Exemple dessous, on appelle
./bin/plugin.php example -v
Une extension CLI Example nécessite :
auth_plugin_example
lib/plugins/example/cli.php
.Pour plus de détails sur les extensions et leurs fichiers et comment créer plus de composants CLI, reportez-vous à la section plugin file structure (anglais).
Héritant de DokuWiki_CLI_Plugin
, plusieurs méthodes doivent être implémentées dans votre classe.
Cette méthode est passée à un objet “Option” sur lequel vous devez appeler plusieurs méthodes pour configurer le comportement de votre outil CLI. Ceci permet de configurer quels arguments et paramètres sont acceptés et requis pour votre outil.
Reportez-vous à la documentation des Options sur les méthodes disponibles.
Cette méthode est passée à un objet “ Option ” à partir duquel vous pouvez obtenir tous les arguments et paramètres analysés.
C'est ici que vous devez appeler votre code principal. Vous voudrez peut-être utiliser un Helper Plugin ici.
if(!defined('DOKU_INC')) die(); use splitbrain\phpcli\Options; class cli_plugin_example extends DokuWiki_CLI_Plugin { // register options and arguments protected function setup(Options $options) { $options->setHelp('A very minimal example that does nothing but print the plugin version info'); $options->registerOption('version', 'print version', 'v'); } // implement your code protected function main(Options $options) { if ($options->getOpt('version')) { $info = $this->getInfo(); // method available in all DokuWiki plugins $this->success($info['date']); } else { echo $options->help(); } } }
Traduction : — Digitalin 2018-05-05 11:48
lib/plugins/cli.php