さてたまには PHP のことも書いてみようと思います。一応 PHP をメインにしている会社ですからね! あ、申し遅れました @riaf です。
ところで、みなさん PSR はご存知かと思いますが、最近どうなってるか知っていますか? (もう今更 PSR とは?みたいな話はしないぞ!!)
あー、はいはい。PSR ね。あの autoload とかのやつでしょ。
とかいう認識だとちょー置いていかれる感満載の状態です。 軽くまとめてみましょう。(2016/02/29現在)
STATUS | NUM | TITLE |
---|---|---|
DEPRECATED | 0 | Autoloading Standard |
ACCEPTED | 1 | Basic Coding Standard |
ACCEPTED | 2 | Coding Style Guide |
ACCEPTED | 3 | Logger Interface |
ACCEPTED | 4 | Autoloading Standard |
DRAFT | 5 | PHPDoc Standard |
ACCEPTED | 6 | Caching Interface |
ACCEPTED | 7 | HTTP Message Interface |
DRAFT | 8 | Huggable Interface |
DRAFT | 9 | Security Disclosure |
DRAFT | 10 | Security Advisories |
DRAFT | 11 | Container Interface |
DRAFT | 12 | Extended Coding Style Guide |
DRAFT | 13 | Hypermedia Links |
はい。Draft 含めると PSR-13 まであって、 PSR-0 は既に Deprecated ですからね。
Draft の方に目をやると、PSR-2 が PSR-12 に置き換えられようとしていたり、今や主要フレームワークにはだいたい入ってる DI コンテナのインタフェースが PSR-11 で定義されようとしていたり、近頃 RESTful API とともに扱われることの多い Hypermedia に関するものなんかも PSR-13 で出てきていますね。
PSR-8 は...うん。そんなに面白くないと思うんだけど...。
いくつかの PSR ではライブラリの振る舞いを定義しているので、それに対応しているライブラリもちょっとまとめてみました。多分全然足りてないので、もしリストに追加したほうがいいライブラリをご存知の方はこちらからおしらせください (:p。
PSR-3 Logger Interface
(Logger は現状 monolog 1択感...他にもあるけど monolog を避ける理由もないしねえ)
PSR-6 Caching Interface
zend-cache に PSR-6 Adapter の PR が出てたり、世の中のものが対応してくるまではもう少しかかりそう?
PSR-7 HTTP Message Interaface
ACCEPTED のものを拾うとこんな感じですかね。
え、少ないって?だから追加したほうがいいライブラリをご存知の方は... って書いたじゃないですか〜あ。
ということで、PHP に迫り来る Immutable の波のお話でした。 (ブログ内に "2/29" を入れるために無理やりな記事になったことは否めない感じです / 素直に閏年の話題をしなさいっていう話ですね)
最後に、大事なことなのでもう一度。