プログラミングに触れる方は、こんな疑問や不安を抱えている人も多いと思います。無料体験レッスンの詳細はこちらPHPの命名規則って、どうやって作ればいいのかな?そもそも命名規則って必要なのかな?こんにちは。HTMLやPHPの開発歴8年の著者が、PHPにおける命名規則について、その大切さと作成のコツをご紹介します。命名規則とは、変数や関数などに名前をつける時のルールのことです。変数名などはプログラマーが自由に決めてもシステム上は問題ないんですが、複数人での開発となると、結構問題になってきます。自分が作ったプログラムなら変数名を見るとどんな変数だったか分かりますが、人が作ったプログラムだと変数名だけを見ても何を意図して作られた変数なのか、すぐには判断できませんね。命名規則を設けると、その変数の意味がすぐに分かるようになります。クラス名などに対して策定されます。そのルールの厳密さはプロジェクトが求める内容によって様々です。人数が多ければ、結構しっかりとした規則が必要ですが、2〜3人なら簡単なルール付けくらいでも大丈夫でしょう。いう目的で命名規則を作るか、それを考えることが大切です。PHPの命名規則の種類PHPには既存の命名規則がいくつか存在します。色々な人が命名規則を考えてくれているんですね。PHPの標準的なコーディング規約にPSRというものがあります。この中に命名規則が書かれてあって、それを採用しているプロジェクトも多いでしょう。WordPressはPHPで作られているのですが、そこではWordPress用の規則が用いられています。WordPressのテンプレートページは世界中で開発されていますが、みんながその規則に則ってコーディングしてくれているので、誰が見ても内容が理解しやすく、開発の助けになっています。各プロジェクトによる独自の命名規則もあるでしょう。このように命名規則には、色々な種類があります。命名規則を作るときに気をつけることでは、命名規則を作成するときに気をつけることとはなんでしょうか?とにかく厳密にきっちり作るのが良いのでしょうか?命名規則を作るときに大切なことは、その目的を明確にすることです。目的が明確になっていないと、無意味に厳しい規則になって逆に開発効率を下げたり、規則がゆるゆるで規則として機能していなかったり、せっかくの規則が意味をなさないことになります。開発の人数、担当するプログラマーの経験値、プロジェクトの内容など、総合的に考えて命名規則を考える必要があります。PHPの命名規則を作ってみようではどのように命名規則を作ったらいいのか、変数名と関数名を例に挙げて考えてみましょう。それぞれ、どのようなポイントに注意して命名規則を策定すれば良いか、解説したいと思います。変数名の規則を作ってみようまずは変数名です。名前の記法にはいくつかの型があって、基本の形をそこから選択すると規則策定の助けになるでしょう。php-hensu-nameここで一つのポイントになるのが、変数は通常たくさん作られることです。その分名前をたくさん考えないといけなし、タイピングも多くなります。このことから、変数名にはタイピングしやすいパスカルケースやスネークケースが選ばれやすい傾向にあります。変数が全部大文字だとタイピングしにくいですよね。その変数の型を表すstrやintなどを先頭の単語にして、キャメルケースにする場合もあります。intAgeという変数を作ると、それがint型で年齢を入れる変数であることの想像がつくと思います。明示的に型が分かるようにするのはバグを防ぐのに有効です。型の間違いによる不具合を防げるからです。いうことで、変数の命名規則としては次のように策定してみましょう。「変数名はキャメルケースで、最初の単語はその変数の型を表すものとする。関数名の規則を作ってみよう関数名については、変数名がキャメルケースだったので違う形にしたいと思います。関数名も数多く定義されますので、やはりタイピングは優先した方が良いでしょう。変数と関数の違いをはっきりさせる上でも、関数名はキャメルケースではなくスネークケースにしてはどうでしょうか。calc_birth_year()というように関数が作成できます。変数名と関数名の記法を変えると、どのように視認性が変わるのでしょうか?例を挙げて考えてみましょう。先ほどの関数は引数を使ってcalc_birth_year($intAge)のよう書けますが、関数名も変数名と同じキャメルケースにしてしまうと、calcBirthYear($intAge)となって、少し視認性が低下してしまいます。いった、ちょっとした視認性の低下が意外と開発の効率に関わってきます。いうわけで、今回の関数名の規則は次の通りとしたいと思います。「関数名はスネークケースとして、単語の先頭は大文字にしない。簡単に変数名と関数名だけの命名規則を作ってみましたが、このようにごく簡単な規則でも開発効率が全然違ってきます。その他、クラス名やPHPファイル名の命名規則も、必要に応じで策定するといいでしょう。標準的な命名規則について命名規則に困ったら、標準とされている命名規則を参考にする方法もあります。いった標準の規則は結構色々なシーンで取り入れられているので、新しい人が開発メンバーに加わっても命名規則の共有がスムーズにできるメリットがあります。ここでは、冒頭に取り上げたPHPの標準的なコーディング規約のPSRと、WordPressで用いられている命名規約を簡単に紹介したいと思います。コーディング規約PSRの命名規則PSRの命名規則には次のものがあります。クラス名はパスカルケースで記述する。クラス定数名はコンスタントケースで記述する。関数名はキャメルケースで記述する。このように記述できます。違った記法を用いています。PSRには変数に関する命名規則がありません。変数に関する規則を設けないのも一つの方法で、あまり厳密に規則を作ってしまっても、逆に開発効率を落としてしまいます。PSRではその辺が考慮されているのか、一番よく使われる変数については規則を作っていないようです。詳しくはこちらの記事も参考にしてください。2019年6月1日WordPressの命名規則WordPressの命名規則には次のものがあります。変数と関数はスネークケースで、全て小文字にする。クラス名はスネークケースで、各単語の先頭を大文字にする。定数名はスネークケースで、全て大文字にする。このように記述できます。}}?>こちらはPSRとは打って変わって、記法が全てスネークケースです。何を大文字にするかだけで変数名、クラス名、定数名を分けています。することで、アンダーバーを入れるのか入れないのか、いちいち迷う必要がありません。単語の区切りにはアンダーバーを使うということが分かります。変数と関数は区別をつけないようです。使うものに関しては区別しないようにすると、命名規則を考える手間を省くことができます。このように、命名規則は考え方によって色々な手法があるということが分かったのではないでしょうか。まとめ今回は命名規則の大切さと策定する時の考え方などを紹介しました。標準的なコーディング規約PSRとWordPressの命名規則も簡単に紹介しましたね。どの規則が一番良いということはありません。大切なのは、命名規則を作る目的をしっかりと定め、共有することです。することでPHPの開発がスムーズになり、不要なバグを防ぐことができます。命名規則について一度考えてみていただければと思います。TweetPocket無料でSEからWebエンジニアへ転職しませんか?侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、システムエンジニアという職業だけどコードが書けない事務作業が多くスキルがないため将来が不安スクールに通うと完全未経験者と同じスタートになるからレベルが合わないという、すでに知識があるSEならではのお悩みがあることに気づきました。弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。こちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。無料体験レッスンを予約する書いた人Tatsuyaプログラム歴10年のシステムエンジニアです。経験のある言語はHTML,JavaScript,PHP,VB,VBAなど。WEB系の開発が得意です。