Skip to content

A superset to the PHP Parser library that allows you to parse and manipulate PHP code.

License

Notifications You must be signed in to change notification settings

SoureCode/PhpObjectModel

Repository files navigation

PhpObjectModel

A superset to the PHP Parser library that allows you to parse and manipulate PHP code. The idea is to create a model to manipulate PHP code like in javascript.

Installation

composer require sourecode/php-object-model

Usage

<?php

use SoureCode\PhpObjectModel\File\ClassFile;
use SoureCode\PhpObjectModel\Model\ClassModel;
use SoureCode\PhpObjectModel\Model\PropertyModel;
use SoureCode\PhpObjectModel\Type\StringType;
use SoureCode\PhpObjectModel\ValueObject\NamespaceName;

$classFile = new ClassFile('<?php');
$classFile
    ->setDeclare((new DeclareModel())->setStrictTypes(true))
    ->setNamespace(new NamespaceModel(NamespaceName::fromString('App\\Foo')))
    ->setClass(
        (new ClassModel('Foo'))
            ->addProperty(
                (new PropertyModel('foo'))
                ->setType(new StringType())
                ->setPublic(true)
            )
    );

echo $classFile->getSourceCode();

Generates something like this:

<?php

declare(strict_types=1);

namespace App\Foo;

class Foo
{
    public string $foo;
}

For more examples see the tests.

About

A superset to the PHP Parser library that allows you to parse and manipulate PHP code.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages