Mercurial > hg > isophonics-drupal-site
comparison vendor/symfony/process/PhpExecutableFinder.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 1fec387a4317 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
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, array('cli', 'cli-server', 'phpdbg')) && is_file(PHP_BINARY)) { | |
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 $dirs = array(PHP_BINDIR); | |
66 if ('\\' === DIRECTORY_SEPARATOR) { | |
67 $dirs[] = 'C:\xampp\php\\'; | |
68 } | |
69 | |
70 return $this->executableFinder->find('php', false, $dirs); | |
71 } | |
72 | |
73 /** | |
74 * Finds the PHP executable arguments. | |
75 * | |
76 * @return array The PHP executable arguments | |
77 */ | |
78 public function findArguments() | |
79 { | |
80 $arguments = array(); | |
81 | |
82 if (defined('HHVM_VERSION')) { | |
83 $arguments[] = '--php'; | |
84 } elseif ('phpdbg' === PHP_SAPI) { | |
85 $arguments[] = '-qrr'; | |
86 } | |
87 | |
88 return $arguments; | |
89 } | |
90 } |