[CodeIgniter3] CRONでコントローラーのメソッドを呼び出す
スポンサーリンク
CodeIgniter3でCRONを使い、コントローラーのメソッドを呼び出す方法のメモ。基本的には2の時と同じなのだけど、コマンドラインからの呼び出しかどうかを判定するメソッド$this->input->is_cli_request()
が非推奨になり、is_cli()
が代わりに使われるようになった。
<?php class Foo extends CI_Controller { public function bar ($to = 'World' ) { echo "Hello {$to}!"; } }
上のようなコントローラーを用意した場合、cronの設定は以下の通り。
* * * * * php /var/html/codeigniter3/index.php foo bar
CodeIgniterを設置したディレクトリのindex.phpを呼び出し、その後にスペースを空けてコントローラーの名前とメソッド名を書く。
メソッドの引数に値を渡したい場合は、メソッド名の後ろに値を続けて書く。
* * * * * php /var/html/codeigniter3/index.php foo bar "hoge"
CRONからの呼び出しでのみメソッドを起動し、それ以外の通常のアクセスは除外したい場合はis_cli()
を使う。
<?php class Foo extends CI_Controller { public function bar ($to = 'World' ) { if ( is_cli() ) {// URLからのアクセスを拒否 // 略 } } }
CodeIgniter2で使われていた$this->input->is_cli_request()
は非推奨となった。Ver3.1で除去される予定。今後はis_cli()
関数を使う。
スポンサーリンク
CodeIgniterカテゴリーの投稿
- [CodeIgniter3] クエリービルダーのINSERTでエスケープを行わない
- [CodeIgniter3] さくらレンタルサーバー設置時の.htaccess
- [CodeIgniter3] ControllerとViewを作成
- [CodeIgniter3] xampp開発環境へのインストール
- [CodeIgniter2] サイトマップを作る
- [CodeIgniter2] form_open()のメソッドをGETにする
- [CodeIgniter2] 多言語化時にオートロードで任意言語ファイルを読み込む
- [CodeIgniter2] ActiveRecordクラスjoinメソッド
- [CodeIgniter2] アクティブレコードでReplace文を使う
- [CodeIgniter2] アクティブレコードで複雑なWHERE句を生成する