私はCLIのコードをCIのドキュメントのように実行しようとしていますが、何らかの理由で、HMVC拡張を使用しているために、 。CLIからのCodeigniter HMVC:コントローラに入っていない
HMVC拡張サイトでのCLI実行に関する追加のドキュメントは見つかりませんでした。
誰もこれに対処する方法を知っていますか?
ここでコード:
/**
* application/controllers/Cron.php
* This is just a wrapper controller to use an HMVC module using the basic CLI syntax for CI
*
*/
class Cron extends MX_Controller
{
public function generatepdfs($start_date = null, $end_date = null)
{
echo 'Not reached'; exit;
$this->load->module('facturation/documentscontroller');
$this->documentoscontroller->generatepdfs($start_date, $end_date);
}
}
どんなに私はドキュメントルートからこれを実行する場合:
php index.php cron generatepdfs
またはこの:
/usr/bin/php -f /home/user/public_html/index.php cron generatepdfs
それは達していない「と表示されません'
ブラウザから実行するとします。私は、アプリケーション/ライブラリ/セッション/ MY_SessionでオーバーライドセッションライブラリMY_Sessionを持ってSession.php
:
指定されたクラスを見つけることができません:
これらは、コンソールにエラー出力の一部ですブラウザで完璧に動作する.phpこのファイルを1つ上のディレクトリに移動すると、このエラーはコンソールに再び表示されませんが、ブラウザでは機能しません。途中でオートロードされます。
この問題を回避するには、私はまったく気に入らない:両方の場所で同じファイルをコピーする。
次のエラー:
PHPの致命的なエラー:クラスのCI_Preferenciasは '行196
に/home/mysite/public_html/system/core/Common.phpでは見られない、私はカスタムライブラリを持っていますアプリケーション/ライブラリ/ Preferencias.phpでオートロードされているPreferenciasと呼ばれます。
これも、ブラウザでは完全に動作します。しかし、CLIでは、存在しないCI_Preferenciasライブラリを検索しているようです。名前をCI_Preferenciasに変更し、自動ロード "CI_Preferencias"を使用すると、CIはCLIからCI_CI_Preferenciasというクラスを検索します。
私は何かが不足しているか、CIに実際のバグがあるのか、それともHMVCモジュールがそれを乱しているのか分かりません。
誰でも私を助けることができますか?私はcronjobsからスケジュールされたCLIアクションを使用しなければならないので、これは私を夢中にしています。
アプリケーションコントローラではなく、モジュールにHMVCを持っているので、私は思うだろう 'アプリケーション/モジュール/ your_module_name /コントローラ/ Cron.php' – user4419336
wolfgang1983 @:私が持っていた場合はCodeIgniterのためのCLI構文は何コントローラはモジュールに配置されていますか?私は成功せずに試しました。とにかく、元の位置にあるモジュール外のコントローラーは、Webサーバーを介して実行されるときに起こるように、HMVC拡張を使用しても動作するはずです。 –
私の個人的なアカウントで(私が仕事場で使っているものではない) – user3514092