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
Вам нужен 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
Чтобы решить эту проблему, вы просто создаете новый проект с (полными свойствами), вот команда для создания проекта:
symfony new --полное имя проекта
после того, как вы создадите проект, как в приведенной выше команде, теперь вы можете использовать (создать).
Если вы установили symfony / maker-bundle для режима dev, вы сможете использовать его только для этого режима. Если вы находитесь в режиме Prod, перейдите в режим Dev и попробуйте снова