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

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

【2022年最新】 Offersで人気の副業・業務委託案件・求人!
  • 【1位】GCP、TypeScript、ReactによるSaaSソフトウェアエンジニア
    週10~40時間、業務委託からスタートもOK!ITサービスの導入支援を効率化!
  • 【2位】テクノロジーでペットライフを豊かにするバックエンドエンジニア募集
    時給4,000円~5,000円!IPOに向けて走っていく1->10フェーズ、業務委託(副業)からOK
  • 【3位】 【フルリモート】ラストワンマイル領域の変革を目指すサーバーサイドエンジニア
    市場規模2.5兆円の巨大なマーケットに挑む、急成長中のテックドリブンな物流Techベンチャー企業
  • 今すぐ副業求人・案件を探す!

    コーディング規約とは

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

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

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

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

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

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

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

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

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

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

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

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

    同じ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」は、時代の変化や環境にあわせてスキルを磨きたい、そんな人にぴったりのサービスです。

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

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



    この記事をシェア

    関連記事


    副業・フリーランス

    プログラミング

    インタビュー

    医療・介護系SaaSの開発組織をOffersで構築へ!エピグノが実践する業務委託の採用手法とは?

    医療・介護機関向け人材マネジメント領域において、「エピタルHR」「エピタク」「エピオペ」という3プロダクトを展開する株式会社エピグノ。2021年に資金調達を行い、同領域におけるデジタルトランスフ...

    3回の面談を経てTech Leadを採用!タレントプールとしてOffersを活用するサイカの採用術

    データサイエンスを駆使したマーケティングソリューションを提供するサイカ。2020年に「モノづくりビジョン」を定義し、時代や社会にインパクトを与えるプロダクトを生み出すべく、開発組織の構築を進めて...

    MLエンジニアを2名採用。1年間ずっと出会えなかった層にOffersですぐ出会えました

    SO Technologiesは広告会社支援SaaS「ATOM」や店舗集客支援サービス「ライクル」、ネット広告仕入・提案・ 運用支援サービス「AG Boost」、Webマーケティングのノウハウメ...

    『実践TypeScript』の著者・吉井健文が考えるTypeScriptの魅力と可能性

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

    デザイン

    お金

    採用・組織