# Factory

Each entity should have a factory that helps to generate a new entity.
A factory must implements `App\Core\Factory\FactoryInterface`.

## Generation

A factory is basically a service which contain at lease a method named `create`.

The generation is performed in CLI. These information are required:

* The name of the futur factory (eg: `MyEntityFactory`)
* The namespace of the entity (eg: `MyEntity`)

Simply run `php bin/console make:factory`.

## Usage

```php-inline title="src/Controller/FooController.php"
namespace App\Controller;

use App\Factory\MyEntityFactory;
use Symfony\Component\HttpFoundation\Response;

class FooController
{
    public function foo(MyEntityFactory $factory): Response
    {
        $entity = $factory->create();

        // ...
    }
}
```
