A small library for converting tokenized PHP source code into XML (and potentially other formats)
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Allow use of custom namespace for XML serialization Apr 7, 2017
tests Allow use of custom namespace for XML serialization Apr 7, 2017
.gitignore Initial commit Apr 5, 2017
.php_cs Initial commit Apr 5, 2017
.travis.yml Initial commit Apr 5, 2017
LICENSE Initial commit Apr 5, 2017
README.md Add scrutinizer badges Apr 5, 2017
build.xml Initial commit Apr 5, 2017
composer.json fix typo Apr 5, 2017
phive.xml Initial commit Apr 5, 2017
phpunit.xml Initial commit Apr 5, 2017

README.md

Tokenizer

A small library for converting tokenized PHP source code into XML.

Scrutinizer Code Quality Code Coverage Build Status

Installation

You can add this library as a local, per-project dependency to your project using Composer:

composer require theseer/tokenizer

If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency:

composer require --dev theseer/tokenizer

Usage examples

$tokenizer = new TheSeer\Tokenizer\Tokenizer();
$tokens = $tokenizer->parse(file_get_contents(__DIR__ . '/src/XMLSerializer.php'));

$serializer = new TheSeer\Tokenizer\XMLSerializer();
$xml = $serializer->toXML($tokens);

echo $xml;

The generated XML structure looks something like this:

<?xml version="1.0"?>
<source xmlns="https://github.com/theseer/tokenizer">
 <line no="1">
  <token name="T_OPEN_TAG">&lt;?php </token>
  <token name="T_DECLARE">declare</token>
  <token name="T_OPEN_BRACKET">(</token>
  <token name="T_STRING">strict_types</token>
  <token name="T_WHITESPACE"> </token>
  <token name="T_EQUAL">=</token>
  <token name="T_WHITESPACE"> </token>
  <token name="T_LNUMBER">1</token>
  <token name="T_CLOSE_BRACKET">)</token>
  <token name="T_SEMICOLON">;</token>
 </line>
</source>