クマのブログ

つまづいたところ、学びを書いていきます

PSRを読もう

前提

背景

  • 会社の研修中、PHPの基礎講座を受講

  • 今の会社に就職前に独学でPHPを学習していたが、初めて知ったことがあったので、アウトプット

事象(やりたいこと)

  • 可読性の高いコーディング能力を身に着けたい

困ったこと

  • 何を基準にコードを書けばいいかわからない

  • 現場に入れば、「コーディング規約」なるものがあるので、それに準拠する。

  • とはいえ、その規約も何を基準に作られているんだ?会社ごとの過去の実績?と思って、先輩に聞いてみた

結論

  • PSR(PHP Standard Recomendations)というPHPを書く上でのルールが存在し、これをベースにコーディング規約を作成する

  • テーマごとに規約が番号で分かれている

内容

全部を網羅するのは現実的に難しいので、駆け出しエンジニアである自分にとって

特に気を付けなくてはいけない規約をピックアップ

PSR-1

www.php-fig.org

概要(Overview)

Files MUST use only <?php and <?= tags.

  • <?php<?=を使用しなくてはいけない」

Class names MUST be declared in StudlyCaps.

  • クラス名はStudlyCaps記法で書く

Class constants MUST be declared in all upper case with underscore separators.

  • クラス定数は全て大文字、かつ文字と文字の間はアンダースコアで分ける

Method names MUST be declared in camelCase.

  • メソッド名は全てcamelCaseで書く

ファイル(Files)

A file SHOULD declare new symbols (classes, functions, constants, etc.) and cause no other side effects, or it SHOULD execute logic with side effects, but SHOULD NOT do both.

  • 副作用を起こさない

The phrase "side effects" means execution of logic not directly related to declaring classes, functions, constants, etc., merely from including the file.

※副作用:クラス、関数、定数とは直接関係ない、かつファイルを取り込んだだけで、処理を実行してしまう記述が処理されること

PSRの例に倣うと非推奨は以下の記法。

<?php
// side effect: change ini settings
ini_set('error_reporting', E_ALL);

// side effect: loads a file
include "file.php";

// side effect: generates output
echo "<html>\n";

// declaration
function foo()
{
    // function body
}

ここでいう「ファイルを取り込んだだけで、処理を実行してしまう記述」というのは以下のコード。 クラスや関数が呼び出されなくても各々が勝手に処理を実行します。

ini_set('error_reporting', E_ALL);

include "file.php";

echo "<html>\n";

所感

  • 非常に当たり前のことであるが、実現場ではどんなコーディング運用がされるかわからないので、大切だと思った

  • 特にクラス名、メソッド名、クラス定数の記法はプログラミングを学びたての人はばらつきがちだと思うので、大事。 かつ、自分はこのように規約で決まっていること自体知らなかったので、自分のコードに自信を持てる要素が増えた点は嬉しい。