Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

initial/PHP-Parser

Repository files navigation

PHP Parser

This is a PHP 5.2 to PHP 5.6 parser written in PHP. It's purpose is to simplify static code analysis and manipulation.

Documentation for version 1.0.x (stable; for running on PHP >= 5.3).

Documentation for version 0.9.x (unsupported; for running on PHP 5.2).

In a Nutshell

The parser turns PHP source code into an abstract syntax tree. For example, if you pass the following code into the parser:

<?php
echo 'Hi', 'World';
hello\world('foo', 'bar' . 'baz');

You'll get a syntax tree looking roughly like this:

array(
 0: Stmt_Echo(
 exprs: array(
 0: Scalar_String(
 value: Hi
 )
 1: Scalar_String(
 value: World
 )
 )
 )
 1: Expr_FuncCall(
 name: Name(
 parts: array(
 0: hello
 1: world
 )
 )
 args: array(
 0: Arg(
 value: Scalar_String(
 value: foo
 )
 byRef: false
 )
 1: Arg(
 value: Expr_Concat(
 left: Scalar_String(
 value: bar
 )
 right: Scalar_String(
 value: baz
 )
 )
 byRef: false
 )
 )
 )
)

You can then work with this syntax tree, for example to statically analyze the code (e.g. to find programming errors or security issues).

Additionally, you can convert a syntax tree back to PHP code. This allows you to do code preprocessing (like automatedly porting code to older PHP versions).

So, that's it, in a nutshell. You can find everything else in the docs.

About

A PHP parser written in PHP

Resources

License

Stars

Watchers

Forks

Packages

Contributors

Languages

  • PHP 100.0%

AltStyle によって変換されたページ (->オリジナル) /