delights/extended-tokens

此包已被放弃且不再维护。作者建议使用felixdorn/tin包。

通过将T_STRING标记转换为更准确的表达,如T_CLASS_NAME,来促进PHP代码高亮。

0.1.2 2020-08-23 22:53 UTC

This package is auto-updated.

Last update: 2021-11-18 07:43:01 UTC


README

**已弃用,请使用felixdorn/tin代替,代码很糟糕,请不要查看。此外,T_FULL_NAMESPACE从未正常工作,现在PHP将命名空间视为一个标记。

扩展标记

composer require delight/extended-tokens

此包旨在通过将T_STRING标记转换为更准确的表示(如T_CLASS_NAME)来促进PHP代码高亮。

PHP通过token_get_all方法默认提供PHP解析器。

此函数返回一个类似下面的标记数组

[
    T_TOKENTYPE,
    "value",
    42 // offset
];

有时对于{;等标记,它只返回一个字符串,而不是数组。这个库改变了这一点,一切都是数组,即使是那些无用的字符串。

用法

use Delight\ExtendedTokens\ExtendedTokens;

$parser = new ExtendedTokens();
$tokens = $parser->parse('code');

T_FULL_NAMESPACE

namespace A\B\C;
  • A\B\C将是一个T_FULL_NAMESPACE

T_CLASS_NAME

class A {}
  • A将是一个T_CLASS_NAME
new A;
  • A将是一个T_CLASS_NAME

T_FUNCTION_NAME

function hello() {}
  • hello将是一个T_FUNCTION_NAME

T_CONST_NAME

const E = 'F';
  • E将是一个T_CONST_NAME

T_EQUAL

$a = 1;
  • =将是一个T_EQUAL

T_CONCAT

$c = 'a' . 'b';
  • .将是一个T_CONCAT

T_OBJECT_OPERATOR之后的T_VARIABLE

$a->b;
  • b将是一个T_VARIABLE而不是T_STRING

T_VARIABLE_TYPE

function world(string $name): World {}
  • string将是一个T_VARIABLE_TYPE
  • World将是一个T_CLASS_NAME

T_TRUE和T_FALSE

true && false;
  • true将是一个T_TRUE
  • false将是一个T_FALSE

T_REF

function (int &$index) {}
  • &将是一个T_REF

T_NEGATION

!true;
  • !将是一个T_NEGATION