chh / commander
使调用系统命令变得快速简单。
Requires
- php: >=5.3.2
- symfony/process: >=2.0.0
This package is not auto-updated.
Last update: 2024-09-14 12:31:19 UTC
README
Commander 是一个简单的命令包装器,它将系统命令作为静态方法提供。
安装
通过 Composer 安装
1. 将以下内容添加到您的 composer.json
{
"require": {
"chh/commander": "*@dev"
}
}
2. 然后在您的项目目录中运行此命令
# You can skip this if you already have composer
wget https://getcomposer.org.cn/composer.phar
php composer.phar install
3. 在您的代码中添加以下内容
require "vendor/autoload.php";
用法
Commander 将系统命令作为 Commander
类的静态方法提供。当以方法的形式调用命令时,Commander 会查找您的 PATH
环境变量中的方法名
<?php
use Commander as cmd;
echo cmd::ifconfig();
要调用包含短横线的命令名,只需在调用方法时将短横线替换为下划线。要调用 apt-get
,您将调用 apt_get
方法。Commander 首先查找 apt_get
,如果没有找到该命令,则再次查找,将下划线替换为短横线。
cmd::apt_get("install", "openarena");
将传递给方法调用的所有参数都作为参数传递给系统命令。
标志
要将标志作为键值对传递给第一个参数
# apt-get -y upgrade
cmd::apt_get(array('y' => true), "upgrade");
# rm -r -f /some/dir
cmd::rm(array('r' => true, 'f' => true), "/some/dir");
您也可以将标志作为参数列表的一部分传递
# git clone --branch development git://github.com/CHH/Commander
cmd::git("clone", "--branch", "development", "git://github.com/CHH/Commander");
# rm -rf /some/dir
cmd::rm("-rf", "/some/dir");
奇怪的名字或绝对路径
要调用带有绝对路径的命令或包含一些非常奇怪字符的命令,请使用 command()
方法获取命令实例
$ffmpeg = cmd::command("/usr/local/custom-ffmpeg/bin/ffmpeg");
$ffmpeg($movieFile);
管道
管道通过函数组合完成
# Removes all "require_once" occurences and comments them out.
cmd::xargs(
cmd::find($sourceDir, "-print0", "-name", "*.php"),
"-0",
"sed", "-E", "-i", "-e", 's/^(require_once)/\/\/ \1/g'
);
错误
当命令以大于零的退出状态退出时,将抛出 Commander\ErrorException
。此异常将代码设置为命令的退出状态,并且具有 getErrorOutput()
方法,该方法返回命令写入 STDERR
的所有内容。
许可
MIT 许可证
版权所有 (c) 2011 Christoph Hochstrasser
特此授予任何获得本软件及其相关文档副本(“软件”)的人免费使用软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、转授和/或销售软件副本的权利,并允许向获得软件的人提供软件以供其使用,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些责任是基于合同、侵权或其他方式,源于、因之或与此软件或软件的使用或其他交易有关。