【Laravel】自作のartisanコマンドに付ける名前悩んでいませんか?正解が判りました。

2021年10月18日

こんにちは。突然ですが皆さん、Laravelのartisanコマンドを作成したことはありますか?その際に、コマンドの名前をどのように付けるか悩んだことはありませんか?私は毎回悩んでいました。今回はどのように命名するのが最適なのか自分なりに結論づけることができたので紹介したいと思います。

名前づけに正解は無い

Googleで一生懸命調べましたがartisanコマンドの命名ルールに正解はなさそうです。artisanコマンドの命名というとコロンで区切るのが定番です。コロンの前と後で何を書いたら良いのか迷うことが多かったので調べてみたのですが、コレといった答えが出てきませんでした。そこで、元々存在するartisanコマンドの名前に何か規則性が無いか確かめてみました。

  • artisan serve
  • artisan make:controller
  • artisan make:model
  • artisan config:cache
  • artisan migrate

このように一覧にすることで、少しだけ規則性が見えてきました。まず、コロンは必ず使う必要がありません。artisan serveやmigrateはコロンが無いからです。

一方、明確な操作対象があるものはコロンで区切って書いています。make系は作成する対象が明確に分かれているのでmake:[対象]となります。config:cacheも同様です。これはconfigをcacheするという意味です。[対象]:cacheの形になります。先程のmakeとは動詞の位置が逆です。うーん、動詞の位置は規則があるわけではなさそうです。

なんとなく単語が2つになる場合はコロンで区切っているだけのようです。

オススメの命名

特に規約が無いことがわかったところで、オススメの命名を考えてみました。

私は「動詞:操作対象」で統一することをオススメします。なぜ「動詞:操作対象」にするのか「操作対象:動詞」ではいけないのでしょうか。

動詞を前に持ってくるのには訳があります。操作対象が特に無いものは「動詞」のみで命名するからです。動詞のみのコマンドがあるので、動詞は常に前に持ってきたほうがコマンドを覚えやすくなると考えました。

大切なのは統一感

名前をつけるものに関しては何でもそうですが、統一感が大切だと考えています。統一感があると検索しやすく、ファイル名も覚えやすくなります。今回提案した命名ルールも、統一感を意識しています。

よろしければこのルールをプロジェクトに適用してみてください。ほんの些細なことではありますが、悩みがなくなると思います。

Laravel

Posted by kobainmac