php

FuelPHPでコマンド実行



FuelPHPではコマンドライン上で使えるようにサポートされているので今回はFuelPHPでのコマンドライン実行の方法をまとめました。

Oilの用意

自分の環境を確認してFuelPHPのoilファイルが入っているかの確認をしてください。
入ってない場合は、以下からダウンロードすればOK。
FuelPHP公式
GitHub:Fuel

タスクの確認・実行

Oilを使って有効なタスクの確認
※実行はoilファイルとの場所で実行
php oil refine
実行結果
Usage:
    php oil [r|refine] 

Description:
    Tasks are classes that can be run through the the command line or set up as a cron job.

Available tasks:
    php oil refine robots
    php oil refine robots:protect
    php oil refine fromdb
    php oil refine fromdb:help
    php oil refine fromdb:scaffold
    php oil refine fromdb:model
    php oil refine install
    php oil refine migrate:help
    php oil refine session
    php oil refine session:create
    php oil refine session:remove
    php oil refine session:clear
    php oil refine session:help

Documentation:
    http://docs.fuelphp.com/packages/oil/refine.html
Availabel tasksに実行可能なタスクの一覧が表示されます。
基本的な使い方は「php oil refine PHPファイル名:メソッド名 引数」となっています。
メソッド名の指定がない場合は指定されたPHPファイル内の「run」ファンクションが実行されます。

テスト

FuelPHPにはサンプルとして最初からtaskが入っていますので、実行してみましょう。
実行コマンド
php oil refine robots
実行結果
                                        "KILL ALL HUMANS!"
                                  _____     /
                                 /_____\
                            ____[\*---*/]____
                           /\ #\ \_____/ /# /\
                          /  \# \_.---._/ #/  \
                         /   /|\  |   |  /|\   \
                        /___/ | | |   | | | \___\
                        |  |  | | |---| | |  |  |
                        |__|  \_| |_#_| |_/  |__|
                        //\\  <\ _//^\\_ />  //\\
                        \||/  |\//// \\\\/|  \||/
                              |   |   |   |
                              |---|   |---|
                              |---|   |---|
                              |   |   |   |
                              |___|   |___|
                              /   \   /   \
                             |_____| |_____|
                             |HHHHH| |HHHHH|

今度はrobotの中のメソッドを指定して実行。
実行コマンド
php oil refine robots:protect
実行結果
                                        "PROTECT ALL HUMANS"
                                  _____     /
                                 /_____\
                            ____[\*---*/]____
                           /\ #\ \_____/ /# /\
                          /  \# \_.---._/ #/  \
                         /   /|\  |   |  /|\   \
                        /___/ | | |   | | | \___\
                        |  |  | | |---| | |  |  |
                        |__|  \_| |_#_| |_/  |__|
                        //\\  <\ _//^\\_ />  //\\
                        \||/  |\//// \\\\/|  \||/
                              |   |   |   |
                              |---|   |---|
                              |---|   |---|
                              |   |   |   |
                              |___|   |___|
                              /   \   /   \
                             |_____| |_____|
                             |HHHHH| |HHHHH|
ロボットの発言が変わりましたね。

実行されたファイルは以下になります。
・fuel/app/tasks/robots.php
上記のファイルが実行されています。

taskの作成

サンプルを元に新たにtaskを作成してみます。

ファイル作成

サンプル用PHPファイル
・fuel/app/tasks/hoge.php
ファイル内容
<?php
namespace Fuel\Tasks;
class Hoge
{
	public static function run($speech = null)
	{
		return "hogehoge";
	}
}

task確認・実行

ファイルの作成が完了したら、taskの追加確認を行います。
実行コマンド
php oil refine
実行結果
・・・
Available tasks:
    php oil refine hoge

・・・

新たなtask、hogeが追加されているのを確認したら実行を行っています。
php oil refine hoge
コマンド実行結果
hogehoge
「hogehoge」と表示されたら成功です。
これでコマンドの実行が出来るようになりました。


昔は全て、OSのバッチファイルだったようですが最近はフレームワーク内でバッチファイルを作ることを前提とした作りをしてるみたいです。


コメントを残す