CakePHP 1.3 - 从控制器调用shell?

时间:2012-07-05 19:14:26

标签: shell cakephp controller cakephp-1.3

我不能为我的生活弄清楚如何从控制器调用shell。

我们有一个后台进程将数据打包在.pdf中,我们不希望陷入等待这种情况发生的页面加载,因此我们希望将所有这些处理放在shell中。

我已经想出如何使用$ this-> args

将值传递给shell

我知道你可以使用App :: import('Shell','TestShell')......但之后我迷路了。

如何在控制器中调用shell的main()函数?

2 个答案:

答案 0 :(得分:1)

在Cake 1.3中,我通过执行以下操作使其工作:

App::import('Shell', 'Shell');
App::Import('Vendor', array('shells/shell_title'));

$myShell = new ShellTitleShell(new Object());
$myShell->initialize();
$myShell->someAction();

答案 1 :(得分:-1)

我应该更专注地阅读这个问题:/

可以在Cake2中完成,不确定它与1.3的不同之处。 :

<?php
App::import('Console/Command', 'AppShell');
App::import('Console/Command', 'HelloWorldShell');
$h = new HelloWorldShell();
$h->dispatchMethod('main');
?>

<强>窗: 如果您没有设置环境变量,则需要提供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()函数。 希望它有所帮助!