CakePHP 1.3 - 从控制器调用shell?
问题描述:
我不能为我的生活弄清楚如何从控制器调用一个shell。CakePHP 1.3 - 从控制器调用shell?
我们有一个将.pdf中的数据打包的后台进程,我们不希望陷入等待发生的页面加载,因此我们希望将所有这些处理放在shell中。
我已经找到了如何将值传递与$这个 - > ARGS
壳我知道你可以使用App ::进口(“壳牌”,“TestShell”)......但之后,我搞不清楚了。
如何在控制器中调用shell的main()函数?
答
我应该更专注阅读的问题:/
能做到这一点的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()函数将被默认调用。 希望它有帮助!
答
在蛋糕1.3,我能得到它做的工作如下:
App::import('Shell', 'Shell');
App::Import('Vendor', array('shells/shell_title'));
$myShell = new ShellTitleShell(new Object());
$myShell->initialize();
$myShell->someAction();
婉婷运行来自控制器的外壳是一个典型的模型代码的一个非常明确的指标(可通过调用控制器和外壳)不属于模型。 – AD7six 2014-06-19 09:30:02