Поскольку большинство программистов знают, существует большое количество задач, которые необходимо завершено. Для борьбы с потраченным временем есть ряд популярных задач бегунов. Заданные бегуны делают только что: выполнить задачу, которая была предоставлена. Два популярных задач бегунов – Гульп и Грунт Отказ Со временем, сохраненным путем автоматизации некоторых процессов, является огромным преимуществом.
Имея это в виду, давайте напишем наш собственный командный бегун, используя PHP 7. Почему PHP 7? Выполнение сценариев Shell с использованием PHP 7 намного превосходит намного превышения ветвей 5.x.
Шаг 1: Базовый класс
abstract class PHPCommandRunner { abstract function onUnhandled($command); public function processArguments($argc, $argv) { //were there enough args passed from the command line? if ($argc <= 1) { echo "Not enough arguments.\n"; exit(1); } //get the task name, then calculate the name of the method to call, //for example, "onSaveCommand". for($i = 1; $i<$argc; $i++) { $commandName = $argv[$i]; $methodName = "on".ucfirst(strtolower($commandName))."Command"; //if the method exists in the class implementation, call it, otherwise //it's unhandled. if (method_exists(Static::class, $methodName)) { call_user_func_array(array(Static::class, $methodName), ['name'=>$commandName, 'runner'=>$this]); } else { $this->onUnhandled($commandName); //valid command name, but no handler specified. } } } public function run($argc, $argv) { $argv = $this->processArguments($argc, $argv); print_r($argv); } }
Это оно! Теперь все, что нам нужно сделать, это написать класс, который расширяет базу Phptaskrunner
Класс, и добавьте некоторые методы обработчика команд:
Шаг 2: Реализация
class MyCommandRunner extends PHPCommandRunner { public function onUnhandled($command) { echo "No handler defined for command '$command`.\n"; return true; } //handle the "hello" command public function onHelloCommand($args) { echo "Hello, world!\n"; return true; } //handle the "goodbye" command public function onGoodbyeCommand($args) { echo "Goodbye, world!\n"; return true; } }
Шаг 3: положить его вместе
Demo.php
:
run(count($args), $argv);
Наконец, бегите PHP Demo.php Привет до свидания
на командной строке. Вы увидите вывод, как:
- Hello, world! - Goodbye, world!--