【发布时间】:2020-03-25 22:36:36
【问题描述】:
我有一个旧的 Symfony 3.4 应用程序 (https://github.com/opencfp/opencfp),需要添加 Doctrine,这样我就可以用 Symfony Guard 替换现有的 auth/acl 解决方案,然后开始升级到 Symfony 5。我已经安装了教义/教义捆绑,可以看到命令在供应商目录中,但是当我运行 bin/console 时,没有教义命令出现。
这是我在供应商目录中搜索 Doctrine 控制台命令时发现的内容。
doctrine/doctrine-bundle/Resources/config/dbal.xml
87: <tag name="console.command" command="doctrine:database:create" />
93: <tag name="console.command" command="doctrine:database:drop" />
97: <tag name="console.command" command="doctrine:database:import" />
doctrine/doctrine-bundle/Command/Proxy/ImportDoctrineCommand.php
23: ->setName('doctrine:database:import')
doctrine/doctrine-bundle/Command/DropDatabaseDoctrineCommand.php
29: ->setName('doctrine:database:drop')
doctrine/doctrine-bundle/Command/CreateDatabaseDoctrineCommand.php
25: ->setName('doctrine:database:create')
当我运行 bin/console 时,我在教义命名空间中看不到任何命令
Symfony 3.4.35 (kernel: OpenCFP, env: development, debug: true)
Usage:
command [options] [arguments]
Options:
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
-n, --no-interaction Do not ask any interactive question
-e, --env=ENV The Environment name. [default: "development"]
--no-debug Switches off debug mode.
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Available commands:
about Displays information about the current project
help Displays help for a command
list Lists commands
assets
assets:install Installs bundles web assets under a public directory
cache
cache:clear Clears the cache
cache:pool:clear Clears cache pools
cache:pool:prune Prunes cache pools
cache:warmup Warms up an empty cache
config
config:dump-reference Dumps the default configuration for an extension
debug
debug:autowiring Lists classes/interfaces you can use for autowiring
debug:config Dumps the current configuration for an extension
debug:container Displays current services for an application
debug:event-dispatcher Displays configured listeners for an application
debug:form Displays form type information
debug:router Displays current routes for an application
debug:swiftmailer Displays current mailers for an application
debug:translation Displays translation messages information
debug:twig Shows a list of twig functions, filters, globals and tests
eloquent
eloquent:make:seeder Create a new seeder class
eloquent:migrate Executes a migration.
eloquent:migrate:fresh Drop all tables and re-run all migrations.
eloquent:migrate:install Creates the migration repository.
eloquent:migrate:make Creates a new migration file
eloquent:migrate:refresh Reset and re-run all migrations
eloquent:migrate:reset Rollback all database migrations
eloquent:migrate:rollback Rollback the last database migration
eloquent:migrate:status Show the status of each migration
eloquent:seed Seed the database with records
lint
lint:twig Lints a template and outputs encountered errors
lint:xliff Lints a XLIFF file and outputs encountered errors
lint:yaml Lints a file and outputs encountered errors
router
router:match Helps debug routes by simulating a path info match
server
server:log Starts a log server that displays logs in real time
server:run Runs a local web server
server:start Starts a local web server in the background
server:status Outputs the status of the local web server
server:stop Stops the local web server that was started with the server:start command
swiftmailer
swiftmailer:email:send Send simple email message
swiftmailer:spool:send Sends emails from the spool
translation
translation:update Updates the translation file
user
user:create Creates a new user
user:demote Demote an existing user from a role
user:promote Promote an existing user to a role
我也有一些自定义命令。
非常感谢任何帮助。
【问题讨论】:
-
您没有忘记启用捆绑包吗? symfony.com/doc/current/bundles/DoctrineBundle/…我在当前master上看不到bundle,是在本地分支上吗?
-
这似乎显示了“doctrine:cache”命令,但没有显示“doctrine:database”命令
-
你能提供
composer show的结果吗?另外,是否所有的 Doctrine 包都正确注册为前一个包?我相信 Doctrine 缓存应该是一个不同的捆绑包 (Doctrine\Bundle\DoctrineCacheBundle\DoctrineCacheBundle),迁移和固定装置也是如此。Doctrine\Bundle\DoctrineBundle\DoctrineBundle应该加载所有的学说 ORM 命令,如果我相信安装了学说/orm。 -
我的
composer show输出太长,无法粘贴到此评论中。我将最新的一组更改推送到 master 分支,以便您可以在那里查看 -
看起来是配置问题。从
vendor/doctrine/doctrine-bundle/DependencyInjection/DoctrineExtension.php看来,启用命令需要配置。
标签: php symfony doctrine-orm doctrine