Skip to content

Repository files navigation

php-parser

This JavaScript library parses PHP code and converts it to an AST.

Installation

This library is distributed with npm :

npm install php-parser --save

Usage

// initialize the php parser factory classconstfs=require("fs");constpath=require("path");constengine=require("php-parser");// initialize a new parser instanceconstparser=newengine({// some options :parser: {extractDoc: true,php7: true,},ast: {withPositions: true,},});// Retrieve the AST from the specified sourceconsteval=parser.parseEval('echo "Hello World";');// Retrieve an array of tokens (same as php function token_get_all)consttokens=parser.tokenGetAll('<?php echo "Hello World";');// Load a static file (Note: this file should exist on your computer)constphpFile=fs.readFileSync("./example.php");// Log out resultsconsole.log("Eval parse:",eval);console.log("Tokens parse:",tokens);console.log("File parse:",parser.parseCode(phpFile));

Sample AST output

{'kind': 'program','children': [{'kind': 'echo','arguments': [{'kind': 'string','isDoubleQuote': true,'value': 'Hello World'}]}]}

API Overview

The main API exposes a class with the following methods :

  • parseEval(String|Buffer) : parse a PHP code in eval style mode (without php open tags)
  • parseCode(String|Buffer, String filename) : parse a PHP code by using php open tags.
  • tokenGetAll(String|Buffer) : retrieves a list of all tokens from the specified input.

You can also pass options that change the behavior of the parser/lexer.

Documentation

Related projects

You can add here your own project by opening an issue request.

License

This library is released under BSD-3 license clause.

Releases

Packages

Used by

Contributors

Languages