web-dev-qa-db-fra.com

Symfony il n'y a pas de commandes définies dans l'espace de noms "make"

En suivant la documentation trouvée ici je saisis php bin/console make:entity Product dans Terminal et l’erreur suivante:

[Symfony\Component\Console\Exception\CommandNotFoundException]
There are no commands defined in the "make" namespace.

8

make est une commande de composant de doctrine. Ajoutez simplement le fabricant de doctrine.

composer require doctrine maker

https://symfony.com/doc/current/doctrine.html#installing-doctrine

8
sensorario

essayer 

composer remove maker
composer require maker --dev

et alors 

php bin/console make:entity Product

https://symfony.com/doc/current/bundles/SymfonyMakerBundle/index.html

5
Oleg Kyryliv

Peut-être utilisez-vous l’environnement prod?

Le website-skeleton place le kit Maker dans la section require-dev de votre composer.json par défaut:

"require-dev": {
    ...
    "symfony/maker-bundle": "^1.0",
    ...
}

Si vous avez défini APP_ENV=prod dans votre fichier .env et exécuté bin/console, il ignorera toutes les exigences de dev et ainsi n'activerait pas le générateur Maker.

Activer simplement à nouveau l'environnement dev (APP_ENV=dev) ferait alors l'affaire.

3
flu

Vous avez besoin de Symfony 3.4 ou supérieur. Pour Symfony 3.4, vous devrez l’ajouter à la fonction registerBundles dans config/AppKernerl (): 

            if (in_array($this->getEnvironment(), array('dev', 'test'))) {
            // [...]
            $bundles[] = new \Symfony\Bundle\MakerBundle\MakerBundle();
        }

Gardez à l'esprit que l'environnement où il est installé est "dev".

3
Marcos Labad

Si vous avez installé symfony/maker-bundle pour le mode dev, vous ne pourrez l’utiliser que pour ce mode. Si vous êtes dans mode prod puis passez en mode dev et réessayez

0
O.Ndiaye