Symfony в пространстве имен "make" нет определенных команд

Следуя документации, найденной здесь, я вхожу php bin/console make:entity Product в терминале и получаю следующую ошибку:

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

13 ответов

Может быть, вы где используете prod среда?

website-skeleton помещает Maker Bundle в require-dev раздел вашего composer.json по умолчанию:

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

Если вы установили APP_ENV=prod в вашем .env файл и побежал bin/console было бы игнорировать все dev требования и, следовательно , не позволят Maker Bundle.

Просто включив dev снова среда APP_ENV=dev) сделал бы то же самое.

make это команда доктрины компонента. Просто добавьте доктрину.

composer require doctrine maker

https://symfony.com/doc/current/doctrine.html

Вам нужен Symfony 3.4 или выше. Для Symfony 3.4 вам нужно добавить его в функцию registerBundles в config/AppKernerl():

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

Имейте в виду, что среда, в которой он установлен, называется "dev".

Пытаться

composer remove maker
composer require maker --dev

а потом

php bin/console make:entity Product

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

Вы должны определить env "dev" в командной строке:

php bin/console --env dev
php bin/console make:entity Product --env dev

Я думаю, что вы находитесь в прод-среде. Убедитесь, что значение APP_ENV внутри файла.env не равно prod.

Если вы создаете файл.env.local, вам необходимо удалить его в среде разработки.

Проблема только что случилась со мной. Я был в тестовой среде. Вы должны быть в среде разработки.

Проверьте значение APP_ENV в файле.env. Должно быть следующее:

APP_ENV=dev

Вы можете использовать composer для сборки установщика, у вас установлена ​​облегченная версия symfony.

композитор требует symfony/maker-bundle

но если у вас есть эта проблема, обязательно нужна доктрина композитора и безопасность

композитору требуется доктрина/форма

с

требуется доктрина/доктрина-комплект

И

композитор требует symfony/security-bundle

композитору требуется пакет доктрины/доктрины-миграции

Теперь у вас есть это с php bin/console !

make make:auth Создает аутентификатор Guard разных видов.

make:command Создает новый класс консольных команд.

make:controller Создает новый класс контроллера

make:crud Создает CRUD для класса сущностей Doctrine.
make:docker:database Добавляет контейнер базы данных в файл docker-compose.yaml.

make:entity Создает или обновляет класс сущности Doctrine и, при необходимости, ресурс платформы API.

make:fixtures Создает новый класс для загрузки фикстур Doctrine.

make:form Создает новый класс формы

make:message Создает новое сообщение и обработчик

make:messenger-middleware Создает новое промежуточное ПО для обмена сообщениями.

make:migration Создает новую миграцию на основе изменений базы данных.

make:registration-form Создает новую систему регистрационных форм.

make:reset-password Создает контроллер, объект и репозитории для использования с symfonycasts/reset-password-bundle
make:serializer:encoder Создает новый класс кодировщика сериализатора

make:serializer:normalizer Создает новый класс нормализатора сериализатора.

make:stimulus-controller Создает новый контроллер стимула

make:subscriber Создает новый класс подписчика событий

make:test [make:unit-test|make:functional-test] Создает новый тестовый класс

make:twig-extension Создает новый класс расширения Twig.

make:user Создает новый класс пользователя безопасности

make:validator Создает новый валидатор и класс ограничений

make:voter Создает новый класс избирателя безопасности

Попробуйте 'composer Требуется symfony/maker-bundle --dev', это работает для меня

Цель состоит в том, чтобы перейти в режим разработки, чтобы иметь возможность создать сущность. Для этого: export SYMFONY_ENV=dev

Если это все еще не работает, как это было для меня, вы можете попробовать: php bin/console cache:clear

Тогда вы сможете запустить: php bin/console make:entity

composer require symfony/maker-bundle --dev

Чтобы решить эту проблему, вы просто создаете новый проект с (полными свойствами), вот команда для создания проекта:

symfony new --полное имя проекта

после того, как вы создадите проект, как в приведенной выше команде, теперь вы можете использовать (создать).

Если вы установили symfony / maker-bundle для режима dev, вы сможете использовать его только для этого режима. Если вы находитесь в режиме Prod, перейдите в режим Dev и попробуйте снова

Другие вопросы по тегам