PHP 命令行包裝器:ShellWrap

jopen 10年前發布 | 10K 次閱讀 ShellWrap PHP開發

ShellWrap 可以讓你在PHP代碼里使用強大的 Linux/Unix 命令行工具。

功能特性

  • Flexible and sexy syntax.
  • Exceptions are thrown if the executable returns an error.
  • Paths to binaries are automatically resolved.
  • All arguments are properly escaped.

示例代碼:

<?php 
require_once 'vendor/autoload.php';
use MrRio\ShellWrap as sh;

// List all files in current dir
echo sh::ls();

// Checkout a branch in git
sh::git('checkout', 'master');

// You can also pipe the output of one command, into another
// This downloads example.com through cURL, follows location, then pipes through grep to 
// filter for 'html'
echo sh::grep('html', sh::curl('http://example.com', array(
    'location' => true
)));

// Touch a file to create it
sh::touch('file.html');

// Remove file
sh::rm('file.html');

// Remove file again (this fails, and throws an exception because the file doesn't exist)

try {
    sh::rm('file.html');
} catch (ShellWrapException $e) {
    echo 'Caught failing sh::rm() call';
}


// This throws an exception, as 'invalidoption' is not a valid argument
try {
    echo sh::ls(array('invalidoption' => true));
} catch (ShellWrapException $e) {
    echo 'Caught failing sh::ls() call';
}

// Commands can be written multiple ways
sh::git('reset', array('hard' => true), 'HEAD');
sh::git('reset', '--hard', 'HEAD');
sh::git(array('reset', '--hard', 'HEAD'));

// Arguments passed in are automatically escaped, this expands to
// date --date '2012-10-10 10:00:00'
echo sh::date(array(
    'date' => '2012-10-10 10:00:00'
));

// If arg keys are one letter, is assumes one dash prefixing it
// date -d '2012-10-10 10:00:00'
echo sh::date(array(
    'd' => '2012-10-10 10:00:00'
));


?>

項目主頁:http://www.baiduhome.net/lib/view/home/1388455413813

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!