PHP CLI 语法高亮器

1.1.2 2016-03-30 22:07 UTC

This package is auto-updated.

Last update: 2024-09-12 20:21:41 UTC


README

Build Status Windows Build Status Coverage Status Scrutinizer Code Quality

这是一个用于在终端上显示 PHP 代码的语法高亮工具。它接收由 nikic/php-parser 产生的 AST,并打印代码。它只装饰了语言的一小部分。它实际上是 PrettyPrinter/Standard 的复制粘贴,并在打印周围添加了一些装饰。

使用方法

use PhpSchool\PSX\Factory;

$highlighterFactory = new Factory;
$highlighter = $highlighterFactory->__invoke();

echo $highlighter->highlight($phpCode);

默认情况下,颜色使用 kevinlebrun/colors.php。您可以通过构建一个实现 \PhpSchool\PSX\ColourAdapterInterface 的适配器类来使用任何您想要的库,您需要将 \PhpSchool\PSX\Colours 中的颜色映射到您的库。

自定义颜色

use PhpParser\ParserFactory;
use Colors\Color;
use PhpSchool\PSX\SyntaxHighlighter;
use PhpSchool\PSX\SyntaxHighlightPrinter;
use PhpSchool\PSX\SyntaxHighlighterConfig;
use PhpSchool\PSX\ColorsAdapter;

$parserFactory  = new ParserFactory;
$color          = new Color;
$color->setForceStyle(true);
$highlighter = new SyntaxHighlighter(
    $parserFactory->create(ParserFactory::PREFER_PHP7),
    new SyntaxHighlightPrinter(
        new SyntaxHighlighterConfig([
            SyntaxHighlighterConfig::TYPE_KEYWORD       => Colours::GREEN,
            SyntaxHighlighterConfig::TYPE_RETURN_NEW    => Colours::BLACK,
        ]),
        new ColorsAdapter($color)
    )
);

这将使所有关键字变为绿色,并将返回语句变为黑色。

类型

类型在 \PhpSchool\PSX\SyntaxHighlighterConfig 中定义。每个类型都可以有自己的颜色。每个类型内部的所有关键字都将使用该颜色进行着色。

TYPE_KEYWORD

  • if
  • elseif
  • else
  • for
  • foreach
  • while
  • do
  • switch
  • finally
  • try
  • catch
  • break
  • continue
  • throw
  • goto
  • function

TYPE_BRACE

  • {
  • }

TYPE_STRING

  • 'some-string'

TYPE_CONSTRUCT

  • echo

TYPE_RETURN_NEW

  • return
  • new

TYPE_VAR_DEREF

  • ->

TYPE_CALL_PARENTHESIS

  • (
  • )

TYPE_CLASS

  • SyntaxHighlighterConfig

TYPE_OPEN_TAG

  • <?php