php-transformer

command module
v0.0.0-...-defb4da Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 20, 2018 License: MIT Imports: 16 Imported by: 0

README

Transformer for Polyscripted PHP.

./php-transformer [-dump -phar -dump -usePhp5 -replace] [path]

-dump dumps the AST to stdout

-phar processes .inc and .phar files rather than copying

-test processess .phpt files rather than copying

-usePhp5 parses php5 rather than 7

-replace rather than creating a new directory from the given path, replaces files and directories in place so the output directory is the same but with transformed files

Documentation

Overview

A Parser for PHP written in Go

Features:

  • Fully support PHP5 and PHP7 syntax
  • Abstract syntax tree representation
  • Traversing AST
  • Namespace resolver

Install:

go get github.com/truestblue/php-transformer

CLI dumper:

$GOPATH/bin/php-transformer -php5 /path/to/file/or/dir

Package usage example:

package main

import (
	"fmt"
	"bytes"
	"os"

	"github.com/truestblue/php-transformer/php7"
	"github.com/truestblue/php-transformer/visitor"

)

func main() {
	src := bytes.NewBufferString(`<? echo "Hello world";`)

	parser := php7.NewParser(src, "example.php")
	parser.Parse()

	for _, e := range parser.GetErrors() {
		fmt.Println(e)
	}

	visitor := visitor.Dumper{
		Writer:    os.Stdout,
		Indent:    "",
		Comments:  parser.GetComments(),
		Positions: parser.GetPositions(),
	}

	rootNode := parser.GetRootNode()
	rootNode.Walk(visitor)
}

Directories

Path Synopsis
Package scanner transforms an input string into a stream of PHP tokens.
Package scanner transforms an input string into a stream of PHP tokens.
Package visitor contains walker.visitor implementations
Package visitor contains walker.visitor implementations
Package walker declares walking behavior
Package walker declares walking behavior

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL