2

次のコマンドを使用して、cpanel で cron ジョブを作成しようとしています。

/usr/bin/php -q /home/mystuff/public_html/application/controllers/scripts.php scripts release_reviews

私のscripts.phpコントローラーは次のとおりです。

<?php

class Scripts extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();

        if (!$this->input->is_cli_request()) show_error('Direct access is not allowed');

    }

    public function release_reviews()
    {
        echo release_reviews(); //where the actual logic will sit once the cron job works
    }
}

cron ジョブを実行しようとすると得られるフィードバック: Fatal error : Class 'CI_Controller' not found in /home/mystuff/public_html/application/controllers/scripts.php on line 3

誰かが私と同じ問題を抱えているという証拠を見つけることができません.これに関するほとんどのトピックは私と同じように動作し、明らかにうまく機能します.

よろしくお願いします!

4

3 に答える 3

4

コマンドラインから CodeIgnter にアクセスするindex.phpには、コントローラーではなくファイルを呼び出します。

php /home/mystuff/public_html/index.php scripts release_reviews

ドキュメント: http://ellislab.com/codeigniter/user-guide/general/cli.html

于 2012-12-14T00:08:05.353 に答える
0

ルートファイルで次を使用すると、うまくいきました! 私はこれを理解しました。私の初心者の問題は、引数を構成する必要があることです。

例えば

`$route['pdfscript/runmethod']  = "batch/pdfscript/runmethod";
$route['pdfscript/runmethod/(:any)'] = "batch/pdfscript/runmethod/$1";'

`pdfscript.php
<?php 
class pdfscript extends CI_Controller {
public function runmethod($file) {
echo $file;
.....`

コマンド行> php.exe index.php pdfscript runmethod ファイル名

于 2015-02-20T13:58:01.020 に答える
0

CI_Controllerクラスはありません。CRONジョブはそのファイルのみをロードするため、CI_Controller. CI_CONTROLLERクラス定義の前にクラスを含める必要があります

このようなもの

<?php

require_once('path_to_CI_controller');

class Scripts extends CI_Controller
{
    ...
于 2012-12-14T00:07:34.093 に答える