[ Index ]

PHP Cross Reference of phpBB-3.3.14-deutsch

title

Body

[close]

/vendor/symfony/process/ -> PhpExecutableFinder.php (source)

   1  <?php
   2  
   3  /*
   4   * This file is part of the Symfony package.
   5   *
   6   * (c) Fabien Potencier <fabien@symfony.com>
   7   *
   8   * For the full copyright and license information, please view the LICENSE
   9   * file that was distributed with this source code.
  10   */
  11  
  12  namespace Symfony\Component\Process;
  13  
  14  /**
  15   * An executable finder specifically designed for the PHP executable.
  16   *
  17   * @author Fabien Potencier <fabien@symfony.com>
  18   * @author Johannes M. Schmitt <schmittjoh@gmail.com>
  19   */
  20  class PhpExecutableFinder
  21  {
  22      private $executableFinder;
  23  
  24      public function __construct()
  25      {
  26          $this->executableFinder = new ExecutableFinder();
  27      }
  28  
  29      /**
  30       * Finds The PHP executable.
  31       *
  32       * @param bool $includeArgs Whether or not include command arguments
  33       *
  34       * @return string|false The PHP executable path or false if it cannot be found
  35       */
  36      public function find($includeArgs = true)
  37      {
  38          $args = $this->findArguments();
  39          $args = $includeArgs && $args ? ' '.implode(' ', $args) : '';
  40  
  41          // HHVM support
  42          if (\defined('HHVM_VERSION')) {
  43              return (getenv('PHP_BINARY') ?: \PHP_BINARY).$args;
  44          }
  45  
  46          // PHP_BINARY return the current sapi executable
  47          if (\PHP_BINARY && \in_array(\PHP_SAPI, ['cli', 'cli-server', 'phpdbg'], true)) {
  48              return \PHP_BINARY.$args;
  49          }
  50  
  51          if ($php = getenv('PHP_PATH')) {
  52              if (!@is_executable($php)) {
  53                  return false;
  54              }
  55  
  56              return $php;
  57          }
  58  
  59          if ($php = getenv('PHP_PEAR_PHP_BIN')) {
  60              if (@is_executable($php)) {
  61                  return $php;
  62              }
  63          }
  64  
  65          if (@is_executable($php = \PHP_BINDIR.('\\' === \DIRECTORY_SEPARATOR ? '\\php.exe' : '/php'))) {
  66              return $php;
  67          }
  68  
  69          $dirs = [\PHP_BINDIR];
  70          if ('\\' === \DIRECTORY_SEPARATOR) {
  71              $dirs[] = 'C:\xampp\php\\';
  72          }
  73  
  74          return $this->executableFinder->find('php', false, $dirs);
  75      }
  76  
  77      /**
  78       * Finds the PHP executable arguments.
  79       *
  80       * @return array The PHP executable arguments
  81       */
  82      public function findArguments()
  83      {
  84          $arguments = [];
  85  
  86          if (\defined('HHVM_VERSION')) {
  87              $arguments[] = '--php';
  88          } elseif ('phpdbg' === \PHP_SAPI) {
  89              $arguments[] = '-qrr';
  90          }
  91  
  92          return $arguments;
  93      }
  94  }


Generated: Mon Nov 25 19:05:08 2024 Cross-referenced by PHPXref 0.7.1