Php 如何在生产模式下启用控制台命令?
我想用symfony做cron作业。Php 如何在生产模式下启用控制台命令?,php,symfony,symfony4,Php,Symfony,Symfony4,我想用symfony做cron作业。 它在开发环境中正常工作,但是如果我切换到生产模式,我会得到一个错误“cron”名称空间中没有定义命令。isEnabled()方法总是返回true。显然这是一个bug。在执行命令“composer update”之后“一切正常。这可能是您的环境的问题。如果部署时没有开发依赖项,则由于缺少未注册的包或捆绑包,可能无法使用所有命令。请添加更多信息,例如,您试图执行的命令是什么?运行APP_ENV=prod bin/console list或bin/console
它在开发环境中正常工作,但是如果我切换到生产模式,我会得到一个错误“cron”名称空间中没有定义命令。isEnabled()方法总是返回true。显然这是一个bug。在执行命令“composer update”之后“一切正常。这可能是您的环境的问题。如果部署时没有开发依赖项,则由于缺少未注册的包或捆绑包,可能无法使用所有命令。请添加更多信息,例如,您试图执行的命令是什么?运行
APP_ENV=prod bin/console list
或bin/console list--ENV=prod
时,是否可以找到该命令?如果您的本地计算机和服务器之间的输出存在差异,那么这两种环境有何区别?请点击Thx以获取回复!我创建了自定义控制台命令,如中所指定。在.ENV文件中将APP_ENV从dev更改为prod时出现问题。。。当我运行bin/console list--env=dev;但当我运行bin/console list--env=prod时,我找不到它。我认为这是关于错误的配置,但我找不到如何修复它OK。您的命令存储在哪里,它是src中应用程序的一部分还是在捆绑包中?如果它在捆绑包中,请检查config/bundles.php
是否为所有环境启用,还是仅为开发和/或测试启用。是否可以将该类添加到问题中?如果execute方法太长或包含敏感信息,则可以跳过它的内容,configure()
和可能的\uu construct()
(如果覆盖它)就足够了。@dbrumann显然这是个bug。我执行了“composer update”命令,现在一切正常。。。谢谢你的关注,伙计!