You are here

PhpExecutableFinder.php in Zircon Profile 8.0

Same filename and directory in other branches
  1. 8 vendor/symfony/process/PhpExecutableFinder.php

File

vendor/symfony/process/PhpExecutableFinder.php
View source
<?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) {

    // 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;
  }

}

Classes

Namesort descending Description
PhpExecutableFinder An executable finder specifically designed for the PHP executable.