[FuelPHP]task作成時、指定可能なクラス名・ファイル名の組み合わせとは?

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以下では)タスクはサブフォルダに置けない仕様
*1の部分は、エラー「Uncaught exception Oil\Exception: Task “test01” does not exist. Did you mean “Test01”?」が出力されます。

クラス名をCamelCaseしても動作するようですが、FuelPHPのコーディング標準には準拠していないので、やめておいた方が良いです。
http://fuelphp.jp/docs/1.7/general/coding_standards.html

あと、Windowsではファイル名の大文字・小文字を見ていないようでです。
なので、Test_Task.phpといったファイル名にすると、Windowsだと実行可能だけど、Linux上にコピーすると動作しないという、気づきづらいバグに悩まされてしまいます。

というわけで、まとめると以下のような感じです。
・クラス名は先頭大文字で、複数単語で構成される場合は、アンダーバーでつなぐ。
・ファイル名は全て小文字にする。
・php oil refineで実行するときのコマンド名は、大文字小文字の区別がない。



関連記事

コメントを残す

メールアドレスが公開されることはありません。