読者です 読者をやめる 読者になる 読者になる

はやくPHPでアノテーション使いたい

日記 PHP

PHPはいつになったらクラスローダーとアノテーションをサポートしてくれるのか。普段.NETとかJavaとかで当たり前のように使っているので、オブジェクト指向言語*1で今更これがないとかひっくりかえるわ。

とりあえずはDoctrine Commonを使ってその辺をカバーしてみたけど、こんなコア機能、いつ仕様が変わるかわからないようなサードパーティのライブラリに依存したくない。なんかPSR-0と呼ばれる規約を今策定しているようで、早くてもそれが固まり次第だよねえ。PHP6的なものまで登場しないかも。

10年前にPHPで書いて今でも現役で動いているWebサイトがあるんだけど、.NETで書き直したい病をぐっとこらえて(書き直しはやっちゃダメって偉い人も言っているので)、部分的にモダンな作りに置き換えようと思ったら結局上記理由で萎える、的な。

なので現実逃避的にPHP版のDataAnnotations*2みたいなのを実装しはじめました。人生初のオープンソース

ymkn / DataAnnotations.PHP / overview — Bitbucket

大々的な宣伝はもう少し使える状態になってからとするつもりだけどとりあえずそっと公開。

なぜGitHubじゃなくてBitbucketなのかは、昔Gitがはやり始めたときWindows版のまともなクライアントがなくて面倒な思いをしたから。ToritoiseHgは当時すでにあってインストールも一発で楽だった。つーか今調べたらTortoiseGitってあるのね。ボタン一発ポンで使えるところまでいけるんだろうか。

*1:PHPがそうかは若干疑問だが、目指してはいるはず

*2:.NETのSystem.ComponentModel.DataAnnotations名前空間のこと