Symfoware

Symfowareについての考察blog

CodeIgniter 3 コマンドラインからの実行(General Topics - Running via the CLI)

CodeIgniter User Guide

General TopicsのRunning via the CLIについて調べてみます。
Running via the CLI


Running via the CLI



コントローラークラスは、ブラウザーからの実行以外に
コマンドライン・インターフェース(CLI)からも実行できます。



What is the CLI?



CLIとは、Linuxでいうとbash等、Windowsでいうとコマンドプロンプトでしょうか。



Why run via the command-line?



コントローラーをコマンドラインから実行したい理由はたくさんあります。
いくつか理由があります。


・cronで定期実行したいとき、wgetやcurlでgetしなくてよい。
・is_cli()の戻り値で、cronジョブから実行された場合のみ処理できる。
・バックアップ処理などを自動化できる。
・他の言語、例えばC++などからも実行できる。




Let’s try it: Hello World!



簡単なサンプルをコマンドラインから実行してみます。

こんなコントローラーを作成しました。


  1. <?php
  2. class Tools extends CI_Controller {
  3.     
  4.     public function message($to = 'World') {
  5.         
  6.         echo "Hello {$to}!".PHP_EOL;
  7.     }
  8.     
  9. }



ブラウザでの表示はこのようになります。

540_01.png


同じプログラムをコマンドラインから実行してみます。


※php-fpmしかインストールしていない場合、phpコマンドが使えません。
apt-getでphp5-cliをインストールします。


# apt-get install php5-cli




プロジェクトのフォームディレクトリ(index.phpがあるフォルダ)に移動します。
私の場合、/usr/share/nginx/www/ci3です。


# cd /usr/share/nginx/www/ci3




phpコマンドの引数にindex.php [コントローラー] [メソッド] [メソッド引数]のように指定します。


# php index.php tools message "symfo"
Hello symfo!




ブラウザの表示と同じ結果が得られました。





コマンドラインからの実行のみ許可する



ついでに、is_cli()の動作を確認しておきました。


  1. <?php
  2. class Tools extends CI_Controller {
  3.     
  4.     public function message($to = 'World') {
  5.         
  6.         if (!is_cli()) {
  7.             echo "CLIアクセスじゃない";
  8.             return;
  9.         }
  10.         
  11.         echo "Hello {$to}!".PHP_EOL;
  12.     }
  13.     
  14. }





ブラウザで表示しようとすると、CLIアクセスじゃないと表示されます。

540_02.png


もちろん、コマンドラインからは修正前のソースと同様の結果が得られました。





CodeIgniter 3のユーザーガイド(User Guide)まとめ



関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2015/01/29(木) 00:45:04|
  2. PHP
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<CodeIgniter 3 アプリケーションの配置方法(General Topics - Managing your Applications) | ホーム | CodeIgniter 3 アプリケーションのプロファイル、ベンチマーク(General Topics - Profiling Your Application)>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1615-71ec5eee
この記事にトラックバックする(FC2ブログユーザー)