ここ数年は CakePHP のコミュニティでウロウロする事が多かったオレですが、縁あって「CakePHP2実践入門」の「第9章:CakeEmailクラスを使ったメール送信」を執筆させて頂きました。えぇ、ホントにこの章だけのピンポイントです。
しかも、執筆企画が進んで、既に他の著者原稿ができはじめているところでの途中参加。「著者に混ぜてもらった」感が強いのですが、ちょっと思い入れの深い部分を担当したので、なるべく「実践」できるように書いたつもりです。
よろしければ手にとって読んでみて頂けると嬉しいです。
なお、オレが書いたところ以外は、いずれも CakePHP 界隈で第一線で活躍している方々が執筆しています。内容については推して知るべし、という感じですよね。
ということで、オレの思い入れ部分をここに記します。
CakePHPに初めて触れたのは、バージョン1.1〜1.2の頃だったと思いますが、「こういうフレームワークがあるんだ!」と驚きつつも、Emailコンポーネントの実装に悪い意味で驚愕した記憶が残ってます。バージョン1.3になって、直った不具合もありましたが、マルチバイト文字を意識していない実装に見えたので、「日本語メールで利用できるか?」などの実験や調査もしてました。
この時に見つけた不具合は(翻訳サイトにかなりお世話になりつつ)英語でバグレポートを送っていました。
しばらくして、CakePHP2のベータ版が出た頃、またもやメール関係の実装を追ってみました。
CakePHP2系では「コントローラから使う前提のEmailコンポーネント」から、「アプリのどこからでも使えるCakeEmailユーティリティ」に生まれ変わっていたので、かなりコードが変わっていましたが、、、そこにも問題点を発見してしまいました。
「これ、なんとかしたいなぁ」と思っていたので、PHPMatsuri 2011 の為に来日していた Graham さん(CakePHPのコアデベロッパ。「本書によせて」に言葉を頂いた)が参加されてたので、(なんとか)英語で書いたスライドを見せながら、(ろくに話せない)英語で問題点を直談判して修正案を提出しました。
この時は、PHPMatsuri 終了後にパッチを Graham さんへ送って、本家へ取り込んでもらいました。
更にその後にも修正すべき点があるのを発見したので、修正案をコーディングし、今度は GitHub から pull request を投げて、本家へ取り込んで貰いました。
このように、僕にとっての CakePHP とは、CakeEmail (Email コンポーネント)との付き合いが中心であり、その中心的な付き合いに関する文章を本として残せたことには、ちょっと嬉しかったり、こそばゆい感じだったり。
また、エンジニアとしてのオレにとっても「バグレポートを送る → パッチを送る → pull request を送る」というように CakePHP との関わりと共に(わずかではあるにせよ)成長しているのを実感できるのが嬉しいところです。