Esempio n. 1
0
File: PHP.php Progetto: qcodo/qcodo
 /**
  * Returns the path to a PHP interpreter.
  *
  * PHPUnit_Util_PHP::$phpBinary contains the path to the PHP
  * interpreter.
  *
  * When not set, the following assumptions will be made:
  *
  *   1. When the PHP CLI/CGI binary configured with the PEAR Installer
  *      (php_bin configuration value) is readable, it will be used.
  *
  *   2. When PHPUnit is run using the CLI SAPI and the $_SERVER['_']
  *      variable does not contain the string "PHPUnit", $_SERVER['_']
  *      is assumed to contain the path to the current PHP interpreter
  *      and that will be used.
  *
  *   3. When PHPUnit is run using the CLI SAPI and the $_SERVER['_']
  *      variable contains the string "PHPUnit", the file that $_SERVER['_']
  *      points to is assumed to be the PHPUnit TextUI CLI wrapper script
  *      "phpunit" and the binary set up using #! on that file's first
  *      line of code is assumed to contain the path to the current PHP
  *      interpreter and that will be used.
  *
  *   4. The current PHP interpreter is assumed to be in the $PATH and
  *      to be invokable through "php".
  *
  * @return string
  */
 public static function getPhpBinary()
 {
     if (self::$phpBinary === NULL) {
         if (is_readable('/usr/local/bin/php')) {
             self::$phpBinary = '/usr/local/bin/php';
         } else {
             if (PHP_SAPI == 'cli' && isset($_SERVER['_']) && strpos($_SERVER['_'], 'phpunit') !== FALSE) {
                 $file = file($_SERVER['_']);
                 $tmp = explode(' ', $file[0]);
                 self::$phpBinary = trim($tmp[1]);
             }
         }
         if (!is_readable(self::$phpBinary)) {
             self::$phpBinary = 'php';
         } else {
             self::$phpBinary = escapeshellcmd(self::$phpBinary);
         }
     }
     return self::$phpBinary;
 }