我一生都无法弄清楚如何从控制器调用外壳。
我们有一个将数据打包成 .pdf 的后台进程,我们不想让页面加载陷入等待,因此我们希望将所有这些处理都放在一个 shell 中。
我已经弄清楚如何使用 $this->args 将值传递给 shell
我知道你可以使用 App::import('Shell','TestShell')... 但在那之后我迷路了。
如何在控制器中调用 shell 的 main() 函数?
我一生都无法弄清楚如何从控制器调用外壳。
我们有一个将数据打包成 .pdf 的后台进程,我们不想让页面加载陷入等待,因此我们希望将所有这些处理都放在一个 shell 中。
我已经弄清楚如何使用 $this->args 将值传递给 shell
我知道你可以使用 App::import('Shell','TestShell')... 但在那之后我迷路了。
如何在控制器中调用 shell 的 main() 函数?
在 Cake 1.3 中,我可以通过执行以下操作使其工作:
App::import('Shell', 'Shell');
App::Import('Vendor', array('shells/shell_title'));
$myShell = new ShellTitleShell(new Object());
$myShell->initialize();
$myShell->someAction();
我应该更专注于阅读这个问题:/
可以在 Cake2 中完成,不确定 1.3 会有多大不同。:?
<?php
App::import('Console/Command', 'AppShell');
App::import('Console/Command', 'HelloWorldShell');
$h = new HelloWorldShell();
$h->dispatchMethod('main');
?>
Windows:如果您没有设置环境变量,则需要提供 PHP 可执行文件的位置。
C:\wamp\bin\php\php_v\php.exe C:\wamp\www\cakephp\cake\console\cake.php test this_arg_0 this_arg_1
Linux:您可能已经定义了您的 php 位置。如果没有,您可能需要将其导出到 $PATH 或提供 php 的完整路径
php /var/www/html/cakephp/cake/console/cake.php test this_arg_0 this_arg_1
main() 函数将被默认调用。希望能帮助到你!