php-school / psx
PHP CLI 语法高亮器
1.1.2
2016-03-30 22:07 UTC
Requires
- php: >=5.5
- kevinlebrun/colors.php: ^0.4.1
- nikic/php-parser: ^2.0
Requires (Dev)
- phpunit/phpunit: ~4.1
- squizlabs/php_codesniffer: ~2.0
This package is auto-updated.
Last update: 2024-09-12 20:21:41 UTC
README
这是一个用于在终端上显示 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