Fuelphp:タスクを使用したコマンドラインからの実行

fuelphpではタスクという機能を使用するとコマンドラインからプログラムを実行することができます。
コントローラと同じようにモデルやクラスを使用できるので、とても便利です。

また、タスクで作成したプログラムはcronで実行することができるので、定期的に実行したいプログラムがある場合などにも使用できます。
今回はfuelphpに最初から入っていた「robots.php」を実行した時の操作方法をメモします。


タスクを実行する(robots.php)

タスクを作成したファイルは下記の場所に格納します。

fuel/app/tasks/

実行する際は「oil」の「refine」を呼び出します。
タスクを実行するために「refine」を記述します。


タスク名のみ記載した場合は、「run()」を実行します。

# php oil refine robots

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

タスク名の後にスペースを入れ、その後に値を記述した場合、引数を渡すことができます。

# php oil refine robots HELLO

                                        "HELLO"
                                  _____     /
                                 /_____\
                            ____[\*---*/]____
                           /\ #\ \_____/ /# /\
                          /  \# \_.---._/ #/  \
                         /   /|\  |   |  /|\   \
                        /___/ | | |   | | | \___\
                        |  |  | | |---| | |  |  |
                        |__|  \_| |_#_| |_/  |__|
                        //\\  <\ _//^\\_ />  //\\
                        \||/  |\//// \\\\/|  \||/
                              |   |   |   |
                              |---|   |---|
                              |---|   |---|
                              |   |   |   |
                              |___|   |___|
                              /   \   /   \
                             |_____| |_____|
                             |HHHHH| |HHHHH|

タスク名の後に「:」でメソッドを呼び出すことができます。
下記は「robots.php」の「protectメソッド」を呼び出した時の例です。

# php oil refine robots:protect

                                        "PROTECT ALL HUMANS"
                                  _____     /
                                 /_____\
                            ____[\*---*/]____
                           /\ #\ \_____/ /# /\
                          /  \# \_.---._/ #/  \
                         /   /|\  |   |  /|\   \
                        /___/ | | |   | | | \___\
                        |  |  | | |---| | |  |  |
                        |__|  \_| |_#_| |_/  |__|
                        //\\  <\ _//^\\_ />  //\\
                        \||/  |\//// \\\\/|  \||/
                              |   |   |   |
                              |---|   |---|
                              |---|   |---|
                              |   |   |   |
                              |___|   |___|
                              /   \   /   \
                             |_____| |_____|
                             |HHHHH| |HHHHH|