johnpbloch/php_shell

This package is abandoned and no longer maintained. No replacement package was suggested.

Run commands in a user environment from PHP

0.2.1 2013-05-18 18:12 UTC

This package is auto-updated.

Last update: 2022-02-01 12:24:59 UTC


README

PHP Shell is a PSR-0 compliant library for executing shell commands in a shell environment of your choosing (bash and sh currently supported).

Requirements

  • PHP 5.3 or higher
  • proc_open and related functions

Installation

The recommended way to install PHP Shell is as a PEAR extension:

pear channel-discover johnpbloch.github.com/pear
pear install johnpbloch/PHP_Shell

Once installed, you can include the files in your project (assuming your PEAR directory is in the include_path):

include 'PHP_Shell/Shell.php';
include 'PHP_Shell/Bash.php';

Alternatively, you can use a PSR-0 compliant autoloader that checks your PEAR path. You can install one with PEAR:

pear channel-discover pear.phix-project.org
pear install phix/Autoloader

Include the above autoloader in your project:

require_once 'psr0.autoloader.php';

If you prefer to include the library source directly in your application, you may need to edit the shell executable file to change the location of your system's PHP binaries. By default, PHP Shell uses /usr/bin/php. Modify the first line of PHP_Shell/shell with the new location. Other than that, you should be able to drop this into your project and start using it in your code.

To find out where your system's PHP binary is, open a terminal window and run

which php

Use

Use the static exec() method of any class that extends \PHP_Shell\Shell. The first argument (which is required) is the command to execute. Any additional arguments will be parsed into the command using vsprintf() (vsprintf() will only be run if there are more than one argument).

use PHP_Shell\Bash;
// Using use:
echo Bash::exec('ls -la %s', escapeshellarg('.'));
// Using the fully qualified name:
echo \PHP_Shell\Sh::exec('git status');

(The code above assumes you have a PSR-0 compliant autoloader in place. If not, make sure you've included PHP_Shell/Shell.php as well as the file for the shell[s] you want to use.)

License

PHP Shell is licensed under the GPL version 3 or later.