php-school / psx
PHP CLI Syntax Highlighter
Installs: 4 911
Dependents: 1
Suggesters: 0
Security: 0
Stars: 19
Watchers: 5
Forks: 1
Open Issues: 0
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-12-12 20:46:42 UTC
README
This is a tool to syntax highlight PHP code for display on a terminal. It takes in an AST produced by nikic/php-parser and prints the code. It only decorates a subset of the language. It is literally a copy-paste of PrettyPrinter/Standard with some decorating added around the printing.
Usage
use PhpSchool\PSX\Factory; $highlighterFactory = new Factory; $highlighter = $highlighterFactory->__invoke(); echo $highlighter->highlight($phpCode);
The colouring by default uses kevinlebrun/colors.php. You can use any library you want
by building an adapter class which implements \PhpSchool\PSX\ColourAdapterInterface
, you will need to map the colours in \PhpSchool\PSX\Colours
to your library.
Customising 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) ) );
This will set any keywords as green and return & new statements as black.
Types
Types are defined in \PhpSchool\PSX\SyntaxHighlighterConfig
Each type can have a it's own colour.
Every keyword inside each type will be coloured by that colour.
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