class Runtime in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/sebastian/environment/src/Runtime.php \SebastianBergmann\Environment\Runtime
Utility class for HHVM/PHP environment handling.
Hierarchy
- class \SebastianBergmann\Environment\Runtime
Expanded class hierarchy of Runtime
5 files declare their use of Runtime
- CodeCoverage.php in vendor/
phpunit/ php-code-coverage/ src/ CodeCoverage.php - Default.php in vendor/
phpunit/ phpunit/ src/ Util/ PHP/ Default.php - Renderer.php in vendor/
phpunit/ php-code-coverage/ src/ CodeCoverage/ Report/ HTML/ Renderer.php - TestRunner.php in vendor/
phpunit/ phpunit/ src/ TextUI/ TestRunner.php - Windows.php in vendor/
phpunit/ phpunit/ src/ Util/ PHP/ Windows.php
File
- vendor/
sebastian/ environment/ src/ Runtime.php, line 16
Namespace
SebastianBergmann\EnvironmentView source
class Runtime {
/**
* @var string
*/
private static $binary;
/**
* Returns true when Xdebug is supported or
* the runtime used is PHPDBG (PHP >= 7.0).
*
* @return bool
*/
public function canCollectCodeCoverage() {
return $this
->hasXdebug() || $this
->hasPHPDBGCodeCoverage();
}
/**
* Returns the path to the binary of the current runtime.
* Appends ' --php' to the path when the runtime is HHVM.
*
* @return string
*/
public function getBinary() {
// HHVM
if (self::$binary === null && $this
->isHHVM()) {
if ((self::$binary = getenv('PHP_BINARY')) === false) {
self::$binary = PHP_BINARY;
}
self::$binary = escapeshellarg(self::$binary) . ' --php';
}
// PHP >= 5.4.0
if (self::$binary === null && defined('PHP_BINARY')) {
self::$binary = escapeshellarg(PHP_BINARY);
}
// PHP < 5.4.0
if (self::$binary === null) {
if (PHP_SAPI == 'cli' && isset($_SERVER['_'])) {
if (strpos($_SERVER['_'], 'phpunit') !== false) {
$file = file($_SERVER['_']);
if (strpos($file[0], ' ') !== false) {
$tmp = explode(' ', $file[0]);
self::$binary = escapeshellarg(trim($tmp[1]));
}
else {
self::$binary = escapeshellarg(ltrim(trim($file[0]), '#!'));
}
}
elseif (strpos(basename($_SERVER['_']), 'php') !== false) {
self::$binary = escapeshellarg($_SERVER['_']);
}
}
}
if (self::$binary === null) {
$possibleBinaryLocations = array(
PHP_BINDIR . '/php',
PHP_BINDIR . '/php-cli.exe',
PHP_BINDIR . '/php.exe',
);
foreach ($possibleBinaryLocations as $binary) {
if (is_readable($binary)) {
self::$binary = escapeshellarg($binary);
break;
}
}
}
if (self::$binary === null) {
self::$binary = 'php';
}
return self::$binary;
}
/**
* @return string
*/
public function getNameWithVersion() {
return $this
->getName() . ' ' . $this
->getVersion();
}
/**
* @return string
*/
public function getName() {
if ($this
->isHHVM()) {
return 'HHVM';
}
elseif ($this
->isPHPDBG()) {
return 'PHPDBG';
}
else {
return 'PHP';
}
}
/**
* @return string
*/
public function getVendorUrl() {
if ($this
->isHHVM()) {
return 'http://hhvm.com/';
}
else {
return 'http://php.net/';
}
}
/**
* @return string
*/
public function getVersion() {
if ($this
->isHHVM()) {
return HHVM_VERSION;
}
else {
return PHP_VERSION;
}
}
/**
* Returns true when the runtime used is PHP and Xdebug is loaded.
*
* @return bool
*/
public function hasXdebug() {
return ($this
->isPHP() || $this
->isHHVM()) && extension_loaded('xdebug');
}
/**
* Returns true when the runtime used is HHVM.
*
* @return bool
*/
public function isHHVM() {
return defined('HHVM_VERSION');
}
/**
* Returns true when the runtime used is PHP without the PHPDBG SAPI.
*
* @return bool
*/
public function isPHP() {
return !$this
->isHHVM() && !$this
->isPHPDBG();
}
/**
* Returns true when the runtime used is PHP with the PHPDBG SAPI.
*
* @return bool
*/
public function isPHPDBG() {
return PHP_SAPI === 'phpdbg' && !$this
->isHHVM();
}
/**
* Returns true when the runtime used is PHP with the PHPDBG SAPI
* and the phpdbg_*_oplog() functions are available (PHP >= 7.0).
*
* @return bool
*/
public function hasPHPDBGCodeCoverage() {
return $this
->isPHPDBG() && function_exists('phpdbg_start_oplog');
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
Runtime:: |
private static | property | ||
Runtime:: |
public | function | Returns true when Xdebug is supported or the runtime used is PHPDBG (PHP >= 7.0). | |
Runtime:: |
public | function | Returns the path to the binary of the current runtime. Appends ' --php' to the path when the runtime is HHVM. | |
Runtime:: |
public | function | ||
Runtime:: |
public | function | ||
Runtime:: |
public | function | ||
Runtime:: |
public | function | ||
Runtime:: |
public | function | Returns true when the runtime used is PHP with the PHPDBG SAPI and the phpdbg_*_oplog() functions are available (PHP >= 7.0). | |
Runtime:: |
public | function | Returns true when the runtime used is PHP and Xdebug is loaded. | |
Runtime:: |
public | function | Returns true when the runtime used is HHVM. | |
Runtime:: |
public | function | Returns true when the runtime used is PHP without the PHPDBG SAPI. | |
Runtime:: |
public | function | Returns true when the runtime used is PHP with the PHPDBG SAPI. |