phpsoftbox/code-generator

Code generator helpers for the PhpSoftBox framework

Installs: 1

Dependents: 1

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/phpsoftbox/code-generator

dev-master 2026-02-10 18:38 UTC

This package is auto-updated.

Last update: 2026-02-10 18:39:32 UTC


README

About

phpsoftbox/code-generator — набор утилит для генерации кода и базовых CLI-команд. Включает AbstractMakeCommandHandler, CodeGenerator, GeneratorTarget и FileWriter.

Quick Start

use PhpSoftBox\CodeGenerator\Cli\AbstractMakeCommandHandler;
use PhpSoftBox\CodeGenerator\CodeGenerator;
use PhpSoftBox\CodeGenerator\GeneratorTarget;
use PhpSoftBox\CliApp\Runner\RunnerInterface;

final class MakeFooHandler extends AbstractMakeCommandHandler
{
    protected function missingNameMessage(): string
    {
        return 'Имя класса не задано.';
    }

    protected function successMessage(GeneratorTarget $target): string
    {
        return 'Создан класс: ' . $target->path;
    }

    protected function renderEvent(RunnerInterface $runner, GeneratorTarget $target): string
    {
        $generator = new CodeGenerator();

        return $generator->renderClass(
            className: $target->className,
            namespace: $target->namespace,
        );
    }
}

Пример генерации класса с атрибутом:

$generator = new CodeGenerator();

$code = $generator->renderClass(
    className: 'WelcomeListener',
    namespace: 'App\\Listeners',
    uses: [
        'App\\Events\\UserRegistered',
        'PhpSoftBox\\Events\\Attributes\\ListenTo',
    ],
    classAttributes: ['#[ListenTo(UserRegistered::class)]'],
    bodyLines: [
        'public function handle(UserRegistered $event): void',
        '{',
        '}',
    ],
);

Оглавление