/vendor/symfony/process/PhpExecutableFinder.php |
@@ -0,0 +1,90 @@ |
<?php |
|
/* |
* This file is part of the Symfony package. |
* |
* (c) Fabien Potencier <fabien@symfony.com> |
* |
* For the full copyright and license information, please view the LICENSE |
* file that was distributed with this source code. |
*/ |
|
namespace Symfony\Component\Process; |
|
/** |
* An executable finder specifically designed for the PHP executable. |
* |
* @author Fabien Potencier <fabien@symfony.com> |
* @author Johannes M. Schmitt <schmittjoh@gmail.com> |
*/ |
class PhpExecutableFinder |
{ |
private $executableFinder; |
|
public function __construct() |
{ |
$this->executableFinder = new ExecutableFinder(); |
} |
|
/** |
* Finds The PHP executable. |
* |
* @param bool $includeArgs Whether or not include command arguments |
* |
* @return string|false The PHP executable path or false if it cannot be found |
*/ |
public function find($includeArgs = true) |
{ |
$args = $this->findArguments(); |
$args = $includeArgs && $args ? ' '.implode(' ', $args) : ''; |
|
// HHVM support |
if (defined('HHVM_VERSION')) { |
return (getenv('PHP_BINARY') ?: PHP_BINARY).$args; |
} |
|
// PHP_BINARY return the current sapi executable |
if (PHP_BINARY && in_array(PHP_SAPI, array('cli', 'cli-server', 'phpdbg')) && is_file(PHP_BINARY)) { |
return PHP_BINARY.$args; |
} |
|
if ($php = getenv('PHP_PATH')) { |
if (!is_executable($php)) { |
return false; |
} |
|
return $php; |
} |
|
if ($php = getenv('PHP_PEAR_PHP_BIN')) { |
if (is_executable($php)) { |
return $php; |
} |
} |
|
$dirs = array(PHP_BINDIR); |
if ('\\' === DIRECTORY_SEPARATOR) { |
$dirs[] = 'C:\xampp\php\\'; |
} |
|
return $this->executableFinder->find('php', false, $dirs); |
} |
|
/** |
* Finds the PHP executable arguments. |
* |
* @return array The PHP executable arguments |
*/ |
public function findArguments() |
{ |
$arguments = array(); |
|
if (defined('HHVM_VERSION')) { |
$arguments[] = '--php'; |
} elseif ('phpdbg' === PHP_SAPI) { |
$arguments[] = '-qrr'; |
} |
|
return $arguments; |
} |
} |