class PhpVersion
A PHP version, representing only the major and minor version components.
Hierarchy
- class \PhpParser\PhpVersion
Expanded class hierarchy of PhpVersion
12 files declare their use of PhpVersion
- AsymmetricVisibilityTokenEmulator.php in vendor/
nikic/ php-parser/ lib/ PhpParser/ Lexer/ TokenEmulator/ AsymmetricVisibilityTokenEmulator.php - AttributeEmulator.php in vendor/
nikic/ php-parser/ lib/ PhpParser/ Lexer/ TokenEmulator/ AttributeEmulator.php - Emulative.php in vendor/
nikic/ php-parser/ lib/ PhpParser/ Lexer/ Emulative.php - EnumTokenEmulator.php in vendor/
nikic/ php-parser/ lib/ PhpParser/ Lexer/ TokenEmulator/ EnumTokenEmulator.php - ExplicitOctalEmulator.php in vendor/
nikic/ php-parser/ lib/ PhpParser/ Lexer/ TokenEmulator/ ExplicitOctalEmulator.php
1 string reference to 'PhpVersion'
- Loader::testSuite in vendor/
phpunit/ phpunit/ src/ TextUI/ Configuration/ Xml/ Loader.php
File
-
vendor/
nikic/ php-parser/ lib/ PhpParser/ PhpVersion.php, line 8
Namespace
PhpParserView source
class PhpVersion {
/** @var int Version ID in PHP_VERSION_ID format */
public int $id;
/** @var int[] Minimum versions for builtin types */
private const BUILTIN_TYPE_VERSIONS = [
'array' => 50100,
'callable' => 50400,
'bool' => 70000,
'int' => 70000,
'float' => 70000,
'string' => 70000,
'iterable' => 70100,
'void' => 70100,
'object' => 70200,
'null' => 80000,
'false' => 80000,
'mixed' => 80000,
'never' => 80100,
'true' => 80200,
];
private function __construct(int $id) {
$this->id = $id;
}
/**
* Create a PhpVersion object from major and minor version components.
*/
public static function fromComponents(int $major, int $minor) : self {
return new self($major * 10000 + $minor * 100);
}
/**
* Get the newest PHP version supported by this library. Support for this version may be partial,
* if it is still under development.
*/
public static function getNewestSupported() : self {
return self::fromComponents(8, 4);
}
/**
* Get the host PHP version, that is the PHP version we're currently running on.
*/
public static function getHostVersion() : self {
return self::fromComponents(\PHP_MAJOR_VERSION, \PHP_MINOR_VERSION);
}
/**
* Parse the version from a string like "8.1".
*/
public static function fromString(string $version) : self {
if (!preg_match('/^(\\d+)\\.(\\d+)/', $version, $matches)) {
throw new \LogicException("Invalid PHP version \"{$version}\"");
}
return self::fromComponents((int) $matches[1], (int) $matches[2]);
}
/**
* Check whether two versions are the same.
*/
public function equals(PhpVersion $other) : bool {
return $this->id === $other->id;
}
/**
* Check whether this version is greater than or equal to the argument.
*/
public function newerOrEqual(PhpVersion $other) : bool {
return $this->id >= $other->id;
}
/**
* Check whether this version is older than the argument.
*/
public function older(PhpVersion $other) : bool {
return $this->id < $other->id;
}
/**
* Check whether this is the host PHP version.
*/
public function isHostVersion() : bool {
return $this->equals(self::getHostVersion());
}
/**
* Check whether this PHP version supports the given builtin type. Type name must be lowercase.
*/
public function supportsBuiltinType(string $type) : bool {
$minVersion = self::BUILTIN_TYPE_VERSIONS[$type] ?? null;
return $minVersion !== null && $this->id >= $minVersion;
}
/**
* Whether this version supports [] array literals.
*/
public function supportsShortArraySyntax() : bool {
return $this->id >= 50400;
}
/**
* Whether this version supports [] for destructuring.
*/
public function supportsShortArrayDestructuring() : bool {
return $this->id >= 70100;
}
/**
* Whether this version supports flexible heredoc/nowdoc.
*/
public function supportsFlexibleHeredoc() : bool {
return $this->id >= 70300;
}
/**
* Whether this version supports trailing commas in parameter lists.
*/
public function supportsTrailingCommaInParamList() : bool {
return $this->id >= 80000;
}
/**
* Whether this version allows "$var =& new Obj".
*/
public function allowsAssignNewByReference() : bool {
return $this->id < 70000;
}
/**
* Whether this version allows invalid octals like "08".
*/
public function allowsInvalidOctals() : bool {
return $this->id < 70000;
}
/**
* Whether this version allows DEL (\x7f) to occur in identifiers.
*/
public function allowsDelInIdentifiers() : bool {
return $this->id < 70100;
}
/**
* Whether this version supports yield in expression context without parentheses.
*/
public function supportsYieldWithoutParentheses() : bool {
return $this->id >= 70000;
}
/**
* Whether this version supports unicode escape sequences in strings.
*/
public function supportsUnicodeEscapes() : bool {
return $this->id >= 70000;
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
PhpVersion::$id | public | property | @var int Version ID in PHP_VERSION_ID format |
PhpVersion::allowsAssignNewByReference | public | function | Whether this version allows "$var =& new Obj". |
PhpVersion::allowsDelInIdentifiers | public | function | Whether this version allows DEL (\x7f) to occur in identifiers. |
PhpVersion::allowsInvalidOctals | public | function | Whether this version allows invalid octals like "08". |
PhpVersion::BUILTIN_TYPE_VERSIONS | private | constant | @var int[] Minimum versions for builtin types |
PhpVersion::equals | public | function | Check whether two versions are the same. |
PhpVersion::fromComponents | public static | function | Create a PhpVersion object from major and minor version components. |
PhpVersion::fromString | public static | function | Parse the version from a string like "8.1". |
PhpVersion::getHostVersion | public static | function | Get the host PHP version, that is the PHP version we're currently running on. |
PhpVersion::getNewestSupported | public static | function | Get the newest PHP version supported by this library. Support for this version may be partial, if it is still under development. |
PhpVersion::isHostVersion | public | function | Check whether this is the host PHP version. |
PhpVersion::newerOrEqual | public | function | Check whether this version is greater than or equal to the argument. |
PhpVersion::older | public | function | Check whether this version is older than the argument. |
PhpVersion::supportsBuiltinType | public | function | Check whether this PHP version supports the given builtin type. Type name must be lowercase. |
PhpVersion::supportsFlexibleHeredoc | public | function | Whether this version supports flexible heredoc/nowdoc. |
PhpVersion::supportsShortArrayDestructuring | public | function | Whether this version supports [] for destructuring. |
PhpVersion::supportsShortArraySyntax | public | function | Whether this version supports [] array literals. |
PhpVersion::supportsTrailingCommaInParamList | public | function | Whether this version supports trailing commas in parameter lists. |
PhpVersion::supportsUnicodeEscapes | public | function | Whether this version supports unicode escape sequences in strings. |
PhpVersion::supportsYieldWithoutParentheses | public | function | Whether this version supports yield in expression context without parentheses. |
PhpVersion::__construct | private | function |