| 
<?php
 /*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <[email protected]>
 *
 * 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 <[email protected]>
 * @author Johannes M. Schmitt <[email protected]>
 */
 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;
 }
 }
 
 |