PHPカンファレンス2019 開催

PHPカンファレンス2019参加レポート[前編]

この記事を読むのに必要な時間:およそ 4 分

Sebastian Bergmannさん「PHPUnit: Past, Present and Future/Sebastian Bergmann」

PHPUnitの生みの親である,ゲストスピーカーのSebastian Bergmannさんは,PHPとPHPUnitの歴史そして今後について話しました。

Sebastian Bergmannさん(撮影:松浦麻奈未)

画像

プログラミングとの出会い

Sebastianさんは,8歳のときに映画『ウォー・ゲーム』⁠原題:WarGames)に触発されてコンピュータの仕組みやプログラミングを学びたいと思い,紙とペンでプログラミングをはじめました。12歳でBASIC言語を,13歳のときにはAmiga 1200でC言語と,Assembly言語で2D・3Dグラフィックのプログラミングをするようになります。当時のプログラミングではよくコンピュータをクラッシュさせていました。

大学1年生のとき初めてX86ベースのパソコンを手に入れてAmiga Demosceneのアーティストと交流を持ち,そのアーティストをきっかけにPHPと出会います。1999年には本格的にPHPを使い始め,PHPのコミュニティにも参加するようになります。2000年にはPHPへのコントリビュートもはじめます。

PHPUnitの歴史

2000年当時PHPを使ったプロジェクトに関わる中で,ビジネスロジックに対するテストが全く書けないことにフラストレーションを抱えていました。SourceForgeにはすでにPHPUnitという名前のプロジェクトが存在していて,何とか動かそうと調査したり,開発者に問い合わせたり,フォーラムに投稿してサポートを求めたものの全く機能するものではありませんでした。

最初にSebastianさんがPHPUnitを公開したのは2001年11月で,JUnit3のソースコードをコピーして一行ずつPHPに書き換えただけのたった6ファイルのコードで,たくさんバグもありました。ごく初期のPHPUnitはテストを書くためのフレームワークで,テストランナーも存在しておらず,ユーザーが自分でテストランナーを書かないといけませんでした。

JUnitはExceptionを捕捉することでテストの失敗を表現していますが,PHP4にはExceptionの機能がありませんでした。初期のPHPUnitではPHP4でExceptionをエミュレートすることで実現していましたが,サポートするのはとても骨が折れるものでした。2004年にPHP5が言語としてExceptionをサポートしてくれたことは本当に嬉しかったと,当時を振り返りました。そしてPHP5の公開と同日に,テストランナーを備え,Exceptionのエミュレートをしなくて済むようになったPHPUnit2を公開しました。

PHPUnitの歴史を語る上で欠かせないのはXdebug作者であるデリックとの交流だと言います。2006年当時同じ会社に勤めており,住まいも近所だったので頻繁に意見交換をしてモックの考えなどをPHPUnitに取り入れるきっかけになったそうです。2006年はSymfony1.0がオープンソースとして公開されるなど,フレームワークが台頭して今日あるようなエコシステムが確立されるようになった年でもあります。

2017年,PHPUnit6ではnamespaceに対応しました。多くのユーザーからテストのファイルを書き直さなくてはいけなくなってしまったという意見を受け取り,⁠そのことについては申し訳なく思っている」とコメントしていました。PHPUnitは毎年メジャーバージョンアップをしていますが,新しい機能が毎年追加されているというわけではありません。年に1回のバージョンアップで使われなくなったコードの削除など改善のきっかけにしています。

PHPUnitの今後

2,3年前からPHPUnitにコントリビュートしたい人を集めて,新機能の開発やバグの修正方法をコーチングするコード・スプリントというイベントをヨーロッパで始めています。

Sebastianさんは最後に,次のように話し,発表を締めくくりました。

「20年という歴史を持つPHPUnitですが,まだまだ改善していきたいことはたくさんあります。PHPUnit自体の改善に加えて,ドキュメントの翻訳などPHPUnitにコントリビュートしてくれるすべての人にありがとうと伝えたいです。

2020年にPHPUnitは20周年を迎えます。PHPUnit9に向けて開発を続けているので,是非フィードバックをしてください。また,PHPUnitやPHPに対する質問には何でも答えたいと思っていますので気軽に話しかけてください。私は20年前,PHPのテストができないという問題を解決しようと思い立ち,解決策を探しているうちにたまたま自分で開発することになり,オープンソースコードとして公開した普通の人なのですから」⁠Sebastianさん)

著者プロフィール

田添春樹(たぞえはるき)

広島工業大学所属。広島でLaravel.hiroshimaという勉強会を主催。普段はLaravelを使い,個人開発を行なっている。ユーザーの役に立てるサービスを作りたいと思い日々頑張っている。

Twitter:@jdkfx


花井宏行(はないひろゆき)

スタディプラス株式会社所属。日本Symfonyユーザー会メンバー。PHPカンファレンスには2015年から参加。

Twitter:hanahiro_aze


中村慎吾(なかむらしんご)

仕事でPHPを使うようになって10数年。楽しいと思ったことには何でもやってみている。趣味が講じて(拗らせて?)会社も作りました。最近はAEMなどのニッチな方面ばかりやっていました。そろそろPHPが恋しい。

Twitter:@n416
URLhttp://kisaragi-system.co.jp