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.
composer require sourecode/php-object-model
<?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.