いろいろ~備忘録~

WEBエンジニアによる記録

勉強になったことを記録

【FuelPHP】task(タスク)を実装

タスクとは

コマンドラインから実行されるかまたは cron ジョブとしてセットアップされるクラス

・ fuel/app/tasks ディレクトリに配置

・定期的に処理を実行したい時に使用

http://fuelphp.jp/docs/1.8/general/tasks.html:公式リファレンス

robotsを起動

fuelプロジェクトのディレクトリ直下に移動したらoilコマンドを実行します。

$php oil refine robots
 
                    "KILL ALL HUMANS!"
                      _____     /
                     /_____\
                ____[\*---*/]____
               /\ #\ \_____/ /# /\
              /  \# \_.---._/ #/  \
             /   /|\  |   |  /|\   \
            /___/ | | |   | | | \___\
            |  |  | | |---| | |  |  |
            |__|  \_| |_#_| |_/  |__|
            //\\  <\ _//^\\_ />  //\\
            \||/  |\//// \\\\/|  \||/
                  |   |   |   |
                  |---|   |---|
                  |---|   |---|
                  |   |   |   |
                  |___|   |___|
                  /   \   /   \
                 |_____| |_____|
                 |HHHHH| |HHHHH|

アスキーアートのロボットが表示されます。

実際にタスクを実装

まず、 fuel/app/tasks 配下に任意のファイルを作成します。
今回はtest.phpを作成します。

タスククラスの書き方は fuel/app/tasks ディレクトリに、namespace “Fuel\Tasks” を指定したクラスを定義します。
処理は、タスククラスのインスタンスメソッドに実装します。

<?php

namespace Fuel\Tasks;

class Test
{
    public function run()
    {
        echo "hello!";
    }

    public function set_user($name)
    {
        echo "hello!".$name;
    }
}

この例では、run メソッドと set_user というメソッドを実装します。


以下のコマンドでタスク名だけを用いると、メソッド "run()" を参照します。

$php oil refine test
 hello!


次にset_user メソッドを実行します。
set_user メソッドはパラメータを渡すことができます。

$php oil refine test:set_user "world!"
 hello!world!

上記のようにコマンドを叩くと指定したパラメータが渡されます。

まとめ

  1. php oil refine クラス:ファンクション でタスクを実行可能
  2. タスクには引数を与える事が可能
  3. タスクファイルは fuel/app/tasks で管理される