最も正解率が低かったのは「実際のPHPプロジェクトに対して統計調査を行っている」という問題
今回、
一方、
PSRについて誤解をしている方も多いと思うので、
PSRの成り立ちと内容をおさらいする
各問題の解説に入る前に、
数年前までは、
- PEAR
- Zend
- CakePHP
- Symfony
タブ派とスペース派の戦いなど、
そこでPHPの各種フレームワークやOSSプロダクトの開発者がメンバーとなって作られたのが、
そして、
- PSR-0
- オートロードのためのクラス名やファイル名に関する内容
- PSR-1
- 高レベルで機能を連携させるコーディングスタイルに関する内容
- PSR-2
- 標準化されたコードが目指すべきスタイルガイド
- PSR-3
- ロガーのインターフェースに関する内容
PSR自体は、
namespaceは<?phpの後ろに空行を入れずに記述──問1
問1.は、
PHP5.
<?php
namespace Vendor\Package;
useは1つ1つに記述──問2
問2.はuseの書き方。これもPSR-2で触れられている内容です。
useは、
use FooClass;
use BarClass;
余談ですが、
<?php
namespace Vendor\Package;
use FooClass;
use BarClass;
プロパティはvarで定義しない──問3
問3.のプロパティも、
クラスのプロパティは、
class ClassName
{
public $foo = null;
}
functionでは明示的にアクセス権を定義──問4
問4.はfunctionに関するものです。これもPSR-2で触れられています。
functionでは以下のように、
public function fooBar()
{
// ...メソッドの内容...
}
publicなどを省略しても同様の定義となりますが、
functionにはprivateを意味するようなプレフィックスは付けない──問5
続く問5.もfunctionに関する問題です。
PHPでは、
private function fooBar()
{
// ...メソッドの内容...
}
PSRはPHP公式のものではないが、準拠したほうがいい──問6
最後の問6.は、
- (1) ⇒ ×
- 今後、
従わなくてはいけないコーディング規約である - (2) ⇒ ○
- (PHPで開発されているフレームワークやCMSのプロジェクト、
それらに関わる開発者の意見や意図が反映されている) - (3) ⇒ ○
- (実際のPHPプロジェクトに対して統計調査を行っている)
1点覚えておかなければいけないことは、
ですが、
PSRは、
PSRのその他の詳しい内容については、