我正在使用cakephp3插件来管理邮件队列以发送简报(Lorenzo Cakephp Email Queue)。它工作正常,但我需要使用带有bake命令的Shell方法来发送新闻稿。 这不是cron作业的问题,但我希望能够在不等待cron作业的情况下发送测试邮件。 我尝试用php exec命令调用bake命令,但它不起作用(也许是一个正确的问题?)但我无法访问服务器来管理权限。但是,由于方法和控制器都属于cakephp,我认为使用控制台(外部)烘烤调用来做这件事很奇怪......
有没有办法从Controller调用Shell方法,这将是"最干净的"最简单的方法?
谢谢大家的帮助!
答案 0 :(得分:0)
这将是“最干净”和最简单的方法吗?
应该将shell视为与控制器类似 - 控制器不会调用控制器。
考虑将the cli logic放在一个公共位置,让cli和controller动作调用,而不是彼此。相关的cli代码是几行代码,但它实际上并没有做任何复杂的事情,只是循环发送的电子邮件,并逐个发送。
我需要使用带有bake命令的Shell方法来发送简报
请注意,bake
a cli,它不是“the”cli,并且不构成runtime usage of that plugin的一部分。
bin/cake EmailQueue.sender -h
它目前可能无法正常工作,因为您正在使用错误的cli命令尝试从控制器操作中运行它 - 尽管以这种方式执行它并不是一个非常好的主意/设计。