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

// 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();

        // ...
    }
}