synapse / php-shell
PHP 执行 shell 命令的包装器
1.1.1
2016-04-18 16:37 UTC
Requires (Dev)
- phpspec/phpspec: ^2.5
This package is not auto-updated.
Last update: 2024-09-26 01:02:32 UTC
README
简介
PHP Shell 被编写用来为 PHP 中的 shell 命令执行提供面向对象的包装。它允许你从命令执行中获取一个响应对象,包含命令的 stdout、stderr 和退出代码。
文档
基本用法
要创建命令,传递命令的绝对路径进行实例化。你也可以使用 setWorkingDirectory
方法设置命令的执行位置。
$pwd = new Neuron\Shell\Command('/bin/pwd'); // CommandNotFoundException if the command is not executable $pwd->setWorkingDirectory('/tmp'); // DirectoryDoesNotExistException if the directory is not found $output = $pwd->execute(); var_dump($output->getStdout()); // string(5) "/tmp" var_dump($output->getStderr()); // string(0) "" var_dump($output->getExitCode()); // int(0)
添加标志
$cmd = new Neuron\Shell\Command('/usr/local/bin/my_command'); $cmd->addShortFlag('v'); $cmd->addShortFlag('c', '/tmp/test.json'); $cmd->addLongFlag('version'); $cmd->addLongFlag('config', '/tmp/test.json');
添加参数
$echo = new Neuron\Shell\Command('/bin/echo'); $echo->addArgument('hi there!');
通过另一个命令进行管道操作
$cmd = new Neuron\Shell\Command('/usr/local/bin/my_command'); $cmd2 = new Neuron\Shell\Command('/usr/local/bin/my_command2'); $cmd->pipe($cmd2); echo $cmd->getCmdString(); // "/usr/local/bin/my_command | /usr/local/bin/my_command2"
搜索输出
使用 wasSuccessful
方法检查命令是否成功。使用 stdoutContains
和 stderrContains
方法检查输出是否包含特定字符串。
$echo = new \Neuron\Shell\Command('/bin/echo'); $echo->addArgument('fruit banana'); $output = $echo->execute(); var_dump($output->wasSuccessful()); // bool(true) var_dump($output->stdoutContains('apple')); // bool(false) var_dump($output->stdoutContains('banana')); // bool(true)
许可证
PHP Shell 是开源软件,许可协议为 MIT 协议
变更日志
1.1.1
- 添加 README 信息以支持管道功能
1.1.0
- 添加管道功能
1.0.0
- 首次发布