Parser
abstract class Parser (View source)
Base class for actual parsers that extract informations from package controller files.
Properties
protected Strings | $stringValidator | The string validator service to be used to check the validity of handles. |
Methods
Determine if this parser can be used for the specified PHP tokens of the package controlller.php file.
Extract package details from the PHP tokens of the package controller.php file.
Get the regular expression that the controller class name must match (without the namespace).
Get the default minimum core version when the package doesn't specify it.
Extract the package handle from the fully-qualified class name.
Find the package controller class.
Get the package handle.
Get the package version.
Get the package name.
Get the package description.
Get the minimum supported core version version.
Get the value of a class property.
Get the return value of a class method.
Get token range of the body of a very simple class method (that is, containing only a "return something;").
Check if a version is valid.
Find the index of a token given its type.
Find the index of a text token given its contents.
Strip whitespaces and comments from a list of tokens.
Strip t() function calls at the beginning of a list of tokens tokens (if any).
Strip enclosing parenthesis ("(...)") (if any) in a list of tokens.
Skip to the next non-whitespace and non-comment token.
Get the actual PHP value described by a value token.
Decode the value of a T_CONSTANT_ENCAPSED_STRING token.
Details
__construct(Strings $stringValidator)
Initialize the instance.
abstract bool
canParseTokens(array $tokens)
Determine if this parser can be used for the specified PHP tokens of the package controlller.php file.
PackageInfo
extractInfo(array $tokens)
Extract package details from the PHP tokens of the package controller.php file.
abstract protected string
getControllerClassNameRegularExpression()
Get the regular expression that the controller class name must match (without the namespace).
abstract protected string
getDefaultPackageMinimumCodeVersion()
Get the default minimum core version when the package doesn't specify it.
abstract protected PackageInfo
getPackageHandleFromClassName(array $tokens, string $className, int $classStart)
Extract the package handle from the fully-qualified class name.
protected array[]
findControllerClass(array $tokens)
Find the package controller class.
protected string
getPackageHandle(array $tokens, string $className, int $classStart, int $classEnd)
Get the package handle.
protected string
getPackageVersion(array $tokens, string $className, int $classStart, int $classEnd)
Get the package version.
protected string
getPackageName(array $tokens, string $className, int $classStart, int $classEnd)
Get the package name.
protected string
getPackageDescription(array $tokens, string $className, int $classStart, int $classEnd)
Get the package description.
protected string
getPackageMinimumCodeVersion(array $tokens, string $className, int $classStart, int $classEnd)
Get the minimum supported core version version.
protected mixed
getPropertyValue(array $tokens, string $propertyName, int $classStart, int $classEnd)
Get the value of a class property.
protected mixed
getSimpleMethodReturnValue(array $tokens, string $methodName, int $classStart, int $classEnd)
Get the return value of a class method.
Get the value returned from a very simple class method (that is, containing only a "return something;").
protected int[]|null
getSimpleMethodBodyTokenRange(array $tokens, string $methodName, int $classStart, int $classEnd)
Get token range of the body of a very simple class method (that is, containing only a "return something;").
protected bool
isVersionValid(string|mixed $version)
Check if a version is valid.
protected int|null
findTypedToken(array $tokens, array $tokenIDs, int $startIndexInclusive = 0, int|null $endIndexExclusive = null)
Find the index of a token given its type.
protected int|null
findTextToken(array $tokens, array $tokenContent, int $startIndexInclusive = 0, int|null $endIndexExclusive = null)
Find the index of a text token given its contents.
protected array
stripNonCodeTokens(array $tokens, int $startIndexInclusive = 0, int|null $endIndexExclusive = null)
Strip whitespaces and comments from a list of tokens.
protected array
stripTFunctionCall(array $tokens)
Strip t() function calls at the beginning of a list of tokens tokens (if any).
protected array
stripEnclosingParenthesis(array $tokens)
Strip enclosing parenthesis ("(...)") (if any) in a list of tokens.
protected int|null
skipNonCodeTokens(array $tokens, int $startIndexInclusive = 0, int|null $endIndexExclusive = null)
Skip to the next non-whitespace and non-comment token.
protected mixed
decodeValueToken(array $token, string $associatedName)
Get the actual PHP value described by a value token.
protected string
decodeString(string $string)
Decode the value of a T_CONSTANT_ENCAPSED_STRING token.