Architect Note


しがないPHPerのブログ

PHPのstream_socket_serverでテスト用HTTPサーバーを作る

これで何人目か知りませんが、PHP用のライセンスクリーンなオブジェクト指向ベースcURLライブラリが欲しくて車輪の再発明をしました。(結構昔に作ったんですが、書き溜めたスクリプト集を整理しようと思って名前を変えていっています) spindle/httpclient - Packagist spindle/spindle-httpclient - GitHub HTTPのクライアントライブラリなので、ユニットテストするにはHTTP Serverを用意して..


PHPの名前空間の効果的な使い方を考える

PHPは5.3から名前空間が導入され、名前の衝突を避けるため長いクラス名をつけることから解放されました。しかしながら、名前空間を使ったコードは、名前空間を使っていないものに比べて本当に読みやすくなっているのでしょうか? ここで例を挙げます。PHPの良質なソースコードと言えば、私はZend Framework(ZF)やSymfonyを思い浮かべるのですが、ZFのとあるクラスの冒頭を見てみましょう。 https://github.com/zendframework..


JSON SchemaとPHP

というタイトルで発表してきました。Engine Yardさま、いつも会場提供ありがとうございます。 ( 第72回 PHP勉強会@東京 : ATND ) JSON SchemaとPHP from Hiraku Nakano JSON Schemaというものがあって、すげー応用範囲が広くて、バリデーションなら大体これだけで出来ますよーという内容でした。 スライドはちょっとネタに走ってますが、書いてあることは割と本気です。「JSON Schemaは..


トランザクションは再利用の敵である

釣りっぽいタイトル。「RDBのトランザクションが絡むとアプリケーション側のプログラムが書きにくくなる」という話です。 もちろんですが、RDBのトランザクション機能は偉大であり、Webアプリケーションでも意識して使わなければならず、「トランザクションなんて使うな」と言いたいわけではありません。 合成できない関数 PHPで素のPDOから考えます。たとえば、以下の関数に問題はあるでしょうか? <?php /* * 古いデータをアーカイブテーブルに移す..


PHPのinterfaceとは何か

久しぶりの更新です。最近、修行だと思って色々な本を読み漁っているのですが、やっとこさPHPのinterfaceが分かるようになってきた感じがあるので、まとめてみます。 interfaceとは インターフェースは、クラスから"ユーザー定義型"の能力のみを分離した言語機構です。PHPのそれはJavaのinterfaceのパクリです。 "ユーザー定義型"という単語を使いました。動的型付き言語のことを「型のない言語」と言う人がたまにいるんですが、とんでもねー間違いです。..