rui live note

WordPress、PHP、子育て、ブログ、将棋、コワーキング、子育て、群馬等に関する日々感じたことを書いているブログです

*

CodeIgniterのCLIでバッチ処理を実行してみる

      2015/12/10   CodeIgniter, 開発 ,

  • このエントリーをはてなブックマークに追加
  • Pocket

着火

※この記事は CodeIgniter Advent Calendar 2015 の9日目です。

Web アプリケーション用のフレームワークという印象の CodeIgniter ですが、CLI(コマンドラインインターフェース)でバッチ処理を実行したいといった場合にもちゃんと対応しています。

以下、簡単なバッチ処理のサンプルを作って試してみましょう。

ちなみに確認環境は最新バージョン 3.0.3 です。

サンプルプログラム

まず、このようなシンプルなコントローラを作ってみます。

application/controllers/Batch.php

このコントローラをコマンドラインから実行してみましょう。

まず CodeIgniter がインストールされたディレクトリ(index.php がある場所)に移動します。

$ cd /path/to/CodeIgniter

そして、次のように php コマンドを実行します。(php index.php [コントローラ名] [メソッド名])

$ php index.php batch sample
done!

はい、ちゃんと実行できましたね。

通常のコントローラと仕組みは同じなので、もちろん引数を渡すようにもできます。

引数を渡す場合はコマンドの最後に指定して実行します。(php index.php [コントローラ名] [メソッド名] [引数1] [引数n])

$ php index.php batch sample Hideki Matsui
Hello Hideki Matsui!
done!

ちなみにこのコントローラをブラウザから呼び出すと、当たり前ですが処理が行われてこのように結果も表示されます。

CodeIgniter

でもバッチ処理で何かする場合って、一般的にブラウザからの実行は制限をかけたいケースの方が多いと思います。というわけで、コマンドラインからしか実行できないよう条件を加えてみます。

上のコード内にある is_cli() 関数を使うと、コマンドラインからの実行かどうか判定することができます。

このコントローラをブラウザから実行してみると・・・、ちゃんと制限がかかっていることが確認できました。

CodeIgniter

以上、簡単ですがバッチ処理のサンプルでした。

終わりに

業務システムを作るような場合、月末締め処理、バックアップ、外部システムとのデータ同期など、バッチ処理が求められることが必ずと言っていいほどありますが、CodeIgniter はそういった要件にもちゃんと対応できて安心ですね。

最後に私事ですが、今年は CodeIgniter を趣味のツール(「将棋メーカー」「将棋ウォーズ対局履歴取得ツール」)をいくつか作る程度しか使わずじまいでした。2016年はもっとガリガリ使う機会が増えるといいなあと思います。

CodeIgniter Advent Calendar 2015」明日は tomcat0090 さんです。みなさんお楽しみに!

ad

この記事が気に入ったらシェアしてもらえると嬉しいです!

  • このエントリーをはてなブックマークに追加
  • Pocket
  • follow us in feedly
  • RSS

  関連記事

CodeIgniterと将棋
将棋ウォーズ対局履歴取得ツールをCodeIgniterで作り直してみました

下記の記事で紹介した将棋ウォーズ対局履歴取得ツールですが、先日新しいバージョン( …

5585aa8d9493d
「将棋メーカー」という将棋の駒画像ジェネレーターサイトを作りました

仕事が忙しいからとか何やら自分に言い訳をして、気が付けば前回ブログを更新してから …