FuelPHPでtaskを作ったとき、実行が可能なファイル名とクラス名の組合わせです。
良く忘れるので忘備録代わりに置いておきます。
特に大文字小文字と、アンダーバーの組み合わせで、何がOKなのかよく忘れてしまいます…
まずは、テスト結果から。
クラス名 |
ファイル名 |
コマンド |
実行 |
説明 |
---|---|---|---|---|
Test |
test.php |
php oil refine test |
OK |
これが基本形 |
Test |
test.php |
php oil refine Test |
OK |
コマンドは大文字小文字関係ない |
Test |
test.php |
php oil refine tESt |
OK |
コマンドは大文字小文字関係ない |
TeSt |
test.php |
php oil refine test |
OK |
クラス名の途中に大文字が入ってもOK (CamelCaseはOK) |
Test |
Test.php |
php oil refine test |
NG |
ファイル名に大文字が入るのはNG(*1) |
Test |
Test.php |
php oil refine Test |
NG |
ファイル名に合わせて、コマンドを大文字にしてもNG(*1) |
Test_Task |
test_task.php |
php oil refine test_task |
OK |
アンダーバーでつなぐのはOK |
Test_Task |
Test_Task.php |
php oil refine test_task |
NG |
アンダーバーを入れても、ファイル名に大文字が入るのはNG |
Test_Task |
test/task.php |
php oil refine test_task |
NG |
(FuelPHP1.8以下では)タスクはサブフォルダに置けない仕様 |
クラス名をCamelCaseしても動作するようですが、FuelPHPのコーディング標準には準拠していないので、やめておいた方が良いです。
http://fuelphp.jp/docs/1.7/general/coding_standards.html
あと、Windowsではファイル名の大文字・小文字を見ていないようでです。
なので、Test_Task.phpといったファイル名にすると、Windowsだと実行可能だけど、Linux上にコピーすると動作しないという、気づきづらいバグに悩まされてしまいます。
というわけで、まとめると以下のような感じです。
・クラス名は先頭大文字で、複数単語で構成される場合は、アンダーバーでつなぐ。
・ファイル名は全て小文字にする。
・php oil refineで実行するときのコマンド名は、大文字小文字の区別がない。
関連記事
コメントを残す