You are here

class PhpExecutableFinder in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/symfony/process/PhpExecutableFinder.php \Symfony\Component\Process\PhpExecutableFinder

An executable finder specifically designed for the PHP executable.

@author Fabien Potencier <fabien@symfony.com> @author Johannes M. Schmitt <schmittjoh@gmail.com>

Hierarchy

Expanded class hierarchy of PhpExecutableFinder

5 files declare their use of PhpExecutableFinder
AbstractProcessTest.php in vendor/symfony/process/Tests/AbstractProcessTest.php
PhpExecutableFinderTest.php in vendor/symfony/process/Tests/PhpExecutableFinderTest.php
PhpProcessTest.php in vendor/symfony/process/Tests/PhpProcessTest.php
Shell.php in vendor/symfony/console/Shell.php
simpletest.module in core/modules/simpletest/simpletest.module
Provides testing functionality.

File

vendor/symfony/process/PhpExecutableFinder.php, line 20

Namespace

Symfony\Component\Process
View source
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) {

    // HHVM support
    if (defined('HHVM_VERSION')) {
      return (getenv('PHP_BINARY') ?: PHP_BINARY) . ($includeArgs ? ' ' . implode(' ', $this
        ->findArguments()) : '');
    }

    // PHP_BINARY return the current sapi executable
    if (defined('PHP_BINARY') && PHP_BINARY && in_array(PHP_SAPI, array(
      'cli',
      'cli-server',
    )) && is_file(PHP_BINARY)) {
      return PHP_BINARY;
    }
    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();

    // HHVM support
    if (defined('HHVM_VERSION')) {
      $arguments[] = '--php';
    }
    return $arguments;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
PhpExecutableFinder::$executableFinder private property
PhpExecutableFinder::find public function Finds The PHP executable.
PhpExecutableFinder::findArguments public function Finds the PHP executable arguments.
PhpExecutableFinder::__construct public function