コーディング規約の必要性とPHPの主な規約とは。確認方法も紹介

プログラム全体のコードを見やすく統一するためのルールであるコーディング規約は、PHPにもあります。具体的にどのような規約があるのでしょうか? 代表的な規約とその特徴を見ていきましょう。また、規約違反がないかチェックするツールも紹介します。

Offers」は、時代の変化や環境にあわせてスキルを磨きたい、そんな人にぴったりのサービスです。「副業・複業」で、本業では経験できない、新しい環境/開発スタイルを経験しよう!

→「Offers」をもっと詳しくみる! かんたん60秒で副業を始めてみる

コーディング規約とは

エンジニアがコードを書くときに準拠すべきルールがコーディング規約です。具体的にどのようなルールが、どういった理由で設けられているのでしょうか?

変数名などルールを統一するガイド

プロジェクトによっては、複数のエンジニアで一つのプログラムを作りあげることがあります。複数人で作業しつつ、同時にコードの読みやすさを高めるためには、何らかの統一した書き方のルールが必要になります。これがコーディング規約が設定されている理由です。

コーディング規約では、『命名規則』『コーディングスタイル』『禁止事項』などを定めることで、誰が書いても同じように読みやすいコードに仕上がるよう決まりを設けています。

同じ動作をさせるためにも、コードはさまざまです。そのため、知らず知らずのうちに、エンジニアのクセが出てしまう可能性があります。そうならないよう、事前にルールを定めているのです。

コーディング規約が必要な理由

複数のエンジニアが携わっているプロジェクトで、全員がそれぞれ違う書き方でコードを書いていると、仕上がりがとても分かりにくくなってしまいます。

分かりにくいコードのシステムは、メンテナンスや新バージョンの作成をしようと思うと、担当者の手間が多く、内容を把握するだけでも時間がかかってしまいます。

そのため、できるだけ見やすいコード作成のためには規約が必要になります。

また、ルールを守ってコードを書くことは、バグの予防にもなります。バグの原因となる複雑なコードを制限できるからです。

複雑なコードは、最初は問題がなかったとしても、システムの追加や変更でバグを生む可能性もあります。

コーディング規約の優先順位

同じPHPのコーディング規約でも、さまざまな種類があります。そのため、プロジェクトに参加するときには、必ず優先順位の高い規約に準拠してコードを書きましょう。

例えば、WordPressのプラグイン開発をPHPで実施する場合、PHPではなくWordPressが設けているルールを参照するのが適当と考えられるのです。

プロジェクト独自の規約が設けられている場合も、それを最優先にしましょう。もしも複数の規約があり優先順位が分からない場合には、確認してから作業に入るとスムーズです。

優先すべき規約がはっきりしたら、自分のやり方と違う部分があったとしても、必ずルールを守りましょう。

主なPHPのコーディング規約

コーディング規約は言語ごとに定められています。PHPの規約にも種類があり、それぞれ違った特徴を持っているのです。

では、具体的にどのようなルールが設けられているのでしょうか?それぞれの特徴を解説します。

WordPress PHPコーディング規約

オープンソースのブログソフトである『WordPress』は、PHPで作成されています。そのため、PHPのコーディング規約があるのです。

コアのプログラムはもちろん、プラグインやテーマを作成するときにも、規約に準拠してコードを書きます。この規約では、例えば下記のルールが定められています。

  • 行頭をそろえるのにはインデントを使う
  • 制御構文や関数呼び出しをするときのかっこの内側にスペースを入れる
  • 関数の引数に使うフラグ値は意味のあるものを使用する
WordPressに特化した規約のため、最もオーソドックスなPHPの規約である『PSR-2』とは方向性が違っているのも特徴です。

PSR-2 Coding Style Guide

フレームワークごとに規約が違うPHPですが、その違いを超えて共通して使えるルールとして作られたのが『PSR-2 Coding Style Guide』です。さまざまな規約の中でも、最もスタンダードなルールといえます。

PSR-2に準拠したコードを書くには、まずPSR-1の規約に従うことが前提です。その上で、下記のルールが追加されています。

  • 行頭にはスペースを4個使う
  • 1行の文字数は120文字以下が望ましく、できれば80文字以下にする
  • クラスやメソッドの波かっこの前に改行を入れる
  • 制御構文開始の波かっこの前には改行を入れない
  • 制御構文のかっこの内側にはスペースを入れない

参考サイト

CakePHP コーディング規約

Web開発をスピーディーにできるよう作られたフレームワークである『CakePHP』は、求められる質問に答えていく形式で必要項目を入力していくだけで、PHPのプログラムを自動生成します。

生成されたプログラムをもとに作業を進めれば、素早く開発ができるのです。

CakePHPでは、基本的にPSR-2に準拠してコードを書きます。ただし、全てが同じわけではなく、いくつか追加のルールがあることに注意しましょう。

  • 1行の文字数は100文字以内を推奨し、120文字以内を必須とする
  • 三項演算子のネストは使わない
  • 比較は可能な限り厳格な比較を使用する

これらの特徴を踏まえた上でコードを書くと、スムーズに進められるでしょう。

チェックツールで準拠しているか確認

書いたコードが規約に正しく準拠しているか確認するには、チェックツールの利用が便利です。目視では確認しきれない部分も、正確にスピーディーにチェックできます。

PhpStormの利用

『PhpStorm』は、コードを自動でチェックするツールです。インストール後に設定することで、指定の規約に準拠しているかを調べられます。設定の手順は下記の通りです。

  1.  Preferencesを開いて『(Project Settings内の)Inspections』を選ぶ
  2.  PHP Code Sniffer varidationをチェック
  3.  PHP Code Sniffer pathを『/opt/local/bin/phpcs』に設定
  4.  Coding standardで指定したい規約を選択する

プログラムを書いている途中でも、規約違反になっている箇所を随時指摘してくれるツールのため、すぐに修正できます。

PhpStorm 2019.1 株式会社サムライズム

チェックツールの利用

その他にも便利なチェックツールがあります。使い勝手のよいツールを選び、チェックの手間を省きましょう。

『php-cs-fixer』は、PSRの規約に準拠しているかチェックし、調整するためのツールです。どこをどのように修正するか、一つずつ指定できるのが特徴といえます。

『PHP_CodeSniffer』は、PEAR・PHPCS・PSR-1・PSR-2・Squiz・Zendといった規約にのっとってコードが書かれているかチェックするツールです。

それぞれチェックできる規約が違うため、準拠すべき規約に合ったものを選びましょう。

まとめ

PHPのコーディング規約には、『WordPress PHPコーディング規約』『PSR-2 Coding Style Guide』『CakePHP コーディング規約』などがあります。

最優先で準拠すべき決まりはどれなのか、はっきりさせた上でコードを書き始めることが大切です。

コードに正しく準拠できているかは、チェックツールを使うと、素早く正確に確認できます。使用する規約に合ったツールを使い、チェックが効率よくできるようにしましょう。

Offers」は、時代の変化や環境にあわせてスキルを磨きたい、そんな人にぴったりのサービスです。

いくつもの転職媒体を使って、企業を探し回るのはもう終わり。「副業」から始まる新しい働き方を実現します!

本業では経験できない、新しい環境/開発スタイルを経験しよう!



この記事をシェア

関連記事


副業・フリーランス

プログラミング

インタビュー

Rubyエンジニア2名の爆速採用に成功!2ヶ月で30倍の事業拡大を支える農業ITスタートアップの複業活用法

野菜や米、果物などの生産者と消費者を繋ぐオンライン直販所『食べチョク』を運営するビビッドガーデン。在宅時間をより充実させたい消費者が集まり、事業が急成長している。そこで課題となったのがエンジニア...

オンライン面談のみでテックリードクラスを複数採用!注目ベンチャー企業のwithコロナ時代に向けた採用術とは

日本で唯一のeKYC対応のデジタル身分証アプリを提供するTRUSTDOCK。今後、身分証がデジタルに置き換わるであろう不可逆な未来を実現するためにもエンジニアが必要だった。同社にはコロナ禍にも関...

mrubyを採用したソフトウェアを広げた第一人者・松本亮介が、面倒を感じながらもC言語を愛する理由とは?

世の中にはさまざまなプログラミング言語が存在します。そして、人によってはただならぬ愛着を持つ人も。そこで本企画では、このプログラミング言語にフォーカス。お気に入りのプログラミング言語のことを中心...

エンジニアとして、社会に新しい価値を提供し続けたい。カンカク志甫氏が考える本業と副業のバランス術

本業と数々の副業を両立させてきた志甫氏。副業を受ける決め手や本業と副業を両立させるコツ、これからのエンジニアのチャンスの掴み方について伺った。

デザイン

お金

採用・組織

グルメ