Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F1431679
BCTokens.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
5 KB
Referenced Files
None
Subscribers
None
BCTokens.php
View Options
<?php
/**
* PHPCSUtils, utility functions and classes for PHP_CodeSniffer sniff developers.
*
* @package PHPCSUtils
* @copyright 2019-2020 PHPCSUtils Contributors
* @license https://opensource.org/licenses/LGPL-3.0 LGPL3
* @link https://github.com/PHPCSStandards/PHPCSUtils
*/
namespace
PHPCSUtils\BackCompat
;
use
PHP_CodeSniffer\Util\Tokens
;
use
PHPCSUtils\Exceptions\InvalidTokenArray
;
use
PHPCSUtils\Tokens\Collections
;
/**
* Token arrays related utility methods.
*
* PHPCS provides a number of static token arrays in the {@see \PHP_CodeSniffer\Util\Tokens}
* class.
* Some of these token arrays will not be available in older PHPCS versions.
* Some will not contain the same set of tokens across PHPCS versions.
*
* This class is a compatibility layer to allow for retrieving these token arrays
* with a consistent token content across PHPCS versions.
* The one caveat is that the token constants do need to be available.
*
* Recommended usage:
* Only use the methods in this class when needed. I.e. when your sniff unit tests indicate
* a PHPCS cross-version compatibility issue related to inconsistent token arrays.
*
* All PHPCS token arrays are supported, though only a limited number of them are different
* across PHPCS versions.
*
* The names of the PHPCS native token arrays translate one-on-one to the methods in this class:
* - `PHP_CodeSniffer\Util\Tokens::$emptyTokens` => `PHPCSUtils\BackCompat\BCTokens::emptyTokens()`
* - `PHP_CodeSniffer\Util\Tokens::$operators` => `PHPCSUtils\BackCompat\BCTokens::operators()`
* - ... etc
*
* The order of the tokens in the arrays may differ between the PHPCS native token arrays and
* the token arrays returned by this class.
*
* @since 1.0.0
*
* @method static array arithmeticTokens() Tokens that represent arithmetic operators.
* @method static array assignmentTokens() Tokens that represent assignments.
* @method static array blockOpeners() Tokens that open code blocks.
* @method static array booleanOperators() Tokens that perform boolean operations.
* @method static array bracketTokens() Tokens that represent brackets and parenthesis.
* @method static array castTokens() Tokens that represent type casting.
* @method static array commentTokens() Tokens that are comments.
* @method static array comparisonTokens() Tokens that represent comparison operator.
* @method static array contextSensitiveKeywords() Tokens representing context sensitive keywords in PHP.
* @method static array emptyTokens() Tokens that don't represent code.
* @method static array equalityTokens() Tokens that represent equality comparisons.
* @method static array heredocTokens() Tokens that make up a heredoc string.
* @method static array includeTokens() Tokens that include files.
* @method static array magicConstants() Tokens representing PHP magic constants.
* @method static array methodPrefixes() Tokens that can prefix a method name.
* @method static array ooScopeTokens() Tokens that open class and object scopes.
* @method static array operators() Tokens that perform operations.
* @method static array parenthesisOpeners() Token types that open parenthesis.
* @method static array phpcsCommentTokens() Tokens that are comments containing PHPCS instructions.
* @method static array scopeModifiers() Tokens that represent scope modifiers.
* @method static array scopeOpeners() Tokens that are allowed to open scopes.
* @method static array stringTokens() Tokens that represent strings.
* Note that `T_STRING`s are NOT represented in this list as this list
* is about _text_ strings.
* @method static array textStringTokens() Tokens that represent text strings.
*/
final
class
BCTokens
{
/**
* Handle calls to (undeclared) methods for token arrays which haven't received any
* changes since PHPCS 3.10.0.
*
* @since 1.0.0
*
* @param string $name The name of the method which has been called.
* @param array<mixed> $args Any arguments passed to the method.
* Unused as none of the methods take arguments.
*
* @return array<int|string, int|string> Token array
*
* @throws \PHPCSUtils\Exceptions\InvalidTokenArray When an invalid token array is requested.
*/
public
static
function
__callStatic
(
$name
,
$args
)
{
if
(
isset
(
Tokens
::
$
{
$name
}))
{
return
Tokens
::
$
{
$name
};
}
// Unknown token array requested.
throw
InvalidTokenArray
::
create
(
$name
);
}
/**
* Tokens that represent the names of called functions.
*
* Retrieve the PHPCS function name tokens array in a cross-version compatible manner.
*
* Changelog for the PHPCS native array:
* - Introduced in PHPCS 2.3.3.
* - PHPCS 3.7.2: `T_PARENT` added to the array.
* - PHPCS 4.0.0: `T_NAME_QUALIFIED`, `T_NAME_FULLY_QUALIFIED` and `T_NAME_RELATIVE` added to the array.
*
* @see \PHP_CodeSniffer\Util\Tokens::$functionNameTokens Original array.
*
* @since 1.0.0
*
* @return array<int|string, int|string> Token array.
*/
public
static
function
functionNameTokens
()
{
$tokens
=
Tokens
::
$functionNameTokens
;
$tokens
+=
Collections
::
ooHierarchyKeywords
();
$tokens
+=
Collections
::
nameTokens
();
return
$tokens
;
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Sat, May 16, 20:57 (1 d, 10 h)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
85/07/24b89ff2c2dd6b8c1edb08ea4638
Default Alt Text
BCTokens.php (5 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment