Download the PHP package helmich/typo3-typoscript-parser without Composer
On this page you can find all versions of the php package helmich/typo3-typoscript-parser. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download helmich/typo3-typoscript-parser
More information about helmich/typo3-typoscript-parser
Files in helmich/typo3-typoscript-parser
Package typo3-typoscript-parser
Short Description Parser for the TYPO3 configuration language TypoScript.
License MIT
Homepage https://github.com/martin-helmich
Informations about the package typo3-typoscript-parser
TypoScript Parser
Author
Martin Helmich (typo3 at martin-helmich dot de)
Synopsis
This package contains a library offering a tokenizer and a parser for TYPO3's configuration language, "TypoScript".
Why?
Just as typoscript-lint, this project started of as a simple programming excercise. Tokenizer and parser could probably implemented in a better way (it's open source, go for it!).
Usage
Parsing TypoScript
You can use the Helmich\TypoScriptParser\Parser\Parser
class to generate a syntax
tree from source code input. The class requires an instance of the Helmich\TypoScriptParser\Tokenizer\Tokenizer
class as dependency. When using the Symfony DependencyInjection component, you can
simply use the service parser
for this.
Analyzing TypoScript
You can analyze the generated syntax tree by implementing visitors. For example, let's implement a check that checks for non-CGL-compliant variable names (there's probably no use case for that, just as a simple example):
First, we need the respective visitor implementation:
Then traverse the syntax tree:
Printing TypoScript
When you are using this package for code transformation, you might want
to print a modified syntax tree back into a file. You can use the PrettyPrinter
class for this:
To get more fine-grained control over the output, you can pass a configuration object into your printer instance:
All versions of typo3-typoscript-parser with dependencies
symfony/config Version ^5.4 || ^6.4 || ^7.0
symfony/dependency-injection Version ^5.4 || ^6.4 || ^7.0
symfony/yaml Version ^5.4 || ^6.4 || ^7.0
symfony/console Version ^5.4 || ^6.4 || ^7.0