Skip to content

Class Generator

The Class Generator creates a simple PHP class with customizable namespace, parent class, interfaces, and description.

Command

php bin/console make:elegant:class <name> [options]

Arguments

Argument Description
name The name of the class to create (e.g., User)

Options

Option Description Default
--namespace The namespace of the class Empty (uses the configured namespace prefix)
--extends The parent class to extend from None
--implements The interfaces to implement (can be used multiple times) None
--description The class description for PHPDoc None

Examples

Basic Usage

php bin/console make:elegant:class User

This will generate a simple class:

<?php

namespace App;

/**
 * User class.
 */
class User
{
}

With Custom Namespace

php bin/console make:elegant:class User --namespace="App\Domain\Model"

This will generate:

<?php

namespace App\Domain\Model;

/**
 * User class.
 */
class User
{
}

With Parent Class

php bin/console make:elegant:class Admin --extends="App\Domain\Model\User"

This will generate:

<?php

namespace App;

use App\Domain\Model\User;

/**
 * Admin class.
 */
class Admin extends User
{
}

With Interfaces

php bin/console make:elegant:class Repository --implements="App\Domain\Repository\RepositoryInterface" --implements="Countable"

This will generate:

<?php

namespace App;

use App\Domain\Repository\RepositoryInterface;
use Countable;

/**
 * Repository class.
 */
class Repository implements RepositoryInterface, Countable
{
}

With Description

php bin/console make:elegant:class User --description="Represents a user in the system"

This will generate:

<?php

namespace App;

/**
 * User class.
 * Represents a user in the system
 */
class User
{
}

Generated File Location

The generated file will be placed in the directory corresponding to the namespace, relative to the configured directory prefix.

For example, if the namespace is App\Domain\Model and the directory prefix is src, the file will be created at src/Domain/Model/User.php.