See other
https://github.com/nramenta/clio/blob/master/README.md
https://github.com/c9s/CLIFramework/blob/master/README.md
https://github.com/wp-cli/php-cli-tools
https://raw.githubusercontent.com/dealnews/Console/master/src/Console.php
https://github.com/nramenta/clio
https://github.com/thephpleague/climate
composer require isublimity/shell
Есть класс который нам нужно вызвать из консоли
class xyzActions
{
/**
* Получить список бла-бла
*
* @param string $name Назврание
* @param bool $reg включить или выключить
* @return array
*/
public function listCommand($name,$reg=false)
{
echo "My name $name ";
if ($reg) echo " ;) ";
echo "\n";
}
}
Подключаем обертку:
\Shell::name("xyz");
\Shell::run(
new xyzActions()
);
Получаем help:
> php test.php help
xyz
------------------------------
> list -- Получить список бла-бла
--name string,Назврание
[--reg] bool,включить или выключить
Запускаем :
> php test.php list
Exception : Can`t call: xyzActions->listCommand() with empty param : name
> php test.php list --name=bob
My name bob
> php test.php list --name=bob --reg
My name bob ;)
> php test.php --list --name=bob
My name bob
-v [-vv | -vvv]
--wait
--help
-q
Цвета :
Shell::msg("ABC <light_blue> FGHJ </light_blue> Command();");
Shell::msg("message");
Shell::debug("DEBUG!");
Shell::info("INFO!");
Shell::warning("WARN!");
Shell::error("ERORR!!");
class xyzActions
{
public function getTitle()
{
return 'ABOUTE xyzActions - <red>XYZ</red>';
}
}
class xyzActions
{
public function setColor($value)
{
echo "CALL setColor($value)\n";
}
}
Автоматически вызовется если : > php test.php --color=YXA
// Блокирует исполнение
Shell::maxExecutionMinutes(0.5);//30 seconds
Shell::dir(__DIR__); // сменить директорию
Shell::alertMail('[email protected]'); // куда отпраить ошибки
Shell::setPathLog("/tmp/"); // куда записывать все сообщения
Shell::setPathPid("/tmp/"); // где PID
Shell::setExitCodeOnPidExists(2); // Exit code on PID file Exists
Shell::setPidCommands(array('check','test')); // какие комманды можно запускать одновренменно