ruudk / code-generator
A library for generating beautiful PHP code with automatic namespace import management.
0.0.1
2025-08-08 14:13 UTC
Requires
- php: ^8.4
Requires (Dev)
README
Code Generator
A library for generating beautiful PHP code with automatic namespace import management.
Installation
Install the library via Composer:
composer require ruudk/code-generator
Example
<?php declare(strict_types=1); use Ruudk\CodeGenerator\CodeGenerator; use Ruudk\CodeGenerator\Group; include '../vendor/autoload.php'; $generator = new CodeGenerator('Example\Demo'); echo $generator->dump([ '// Auto-generated example file', '', $generator->dumpAttribute('Example\Attributes\Something'), sprintf( 'final readonly class %s extends %s {', $generator->import('Example\Demo'), $generator->import('Example\Parent'), ), Group::indent(1, function() use ($generator) { yield 'public function __construct('; yield Group::indent(1, function () use ($generator) { yield sprintf('private %s $date,', $generator->import(DateTimeImmutable::class)); }); yield ') {'; yield Group::indent(1, function () use ($generator) { yield $generator->dumpCall('parent', '__construct', [ "'Hello, World!'", "true", ], true); }); yield '}'; }), '}', ]);
Output
<?php declare(strict_types=1); namespace Example\Demo; use DateTimeImmutable; use Example\Attributes\Something; use Example\Demo; use Example\Parent; // Auto-generated example file #[Something] final readonly class Demo extends Parent { public function __construct( private DateTimeImmutable $date, ) { parent::__construct( 'Hello, World!', true, ) } }
Development
Running Tests
vendor/bin/phpunit
Static Analysis
vendor/bin/phpstan analyse
Code Style
vendor/bin/php-cs-fixer fix
License
This library is released under the MIT License. See the LICENSE file for details.