0

私は一生、コントローラーからシェルを呼び出す方法を理解できません。

データを .pdf にパッケージ化するバックグラウンド プロセスがあり、これが発生するのを待ってページの読み込みを停止させたくないため、このすべての処理をシェルに入れたいと考えています。

$this->args を使用してシェルに値を渡す方法を理解しました

App::import('Shell','TestShell')... を使用できることは知っていますが、その後は迷ってしまいます。

コントローラー内でシェルの main() 関数を呼び出すにはどうすればよいですか?

4

2 に答える 2

-1

私は質問を読むことにもっと集中する必要があります:/

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() 関数はデフォルトで呼び出されます。それが役に立てば幸い!

于 2012-07-05T21:25:59.660 に答える