Symfony のこれまで 〜 Symfony Advent Calender 2011 JP - 初日 -

しわっす。

今日から Symfony Advent Calender 2011 ということで、symfony/Symfony に関するブログを24日間お届けします。

初日は 日本Symfonyユーザー会の前田@brtriver が担当します。

Symfonyとは

初日ということで、Symfonyそのものについて簡単にお話しようかと思います。
SymfonyPHPフルスタックのWebアプリケーションフレームワークの1つで、Fabienさんが中心となり活発に開発が行われています。
名前空間クロージャーを活用しているためPHP5.3以上の環境が必要というのがとんがった特徴でしたが、今となってはごく自然に最新のPHPを最大限に活用できているフレームワークと言えると思います。
そして、今年の7月に待望のSymfony2系がリリースされ、ようやくSymfony2系で開発を行うことも問題ないレベルになってきました。
また、2011/12/1現在で、githubで最もウォッチされているPHPのプロジェクトであり、プロジェクトへの貢献者(コントリビュータ)は289人にも及びます。
日本国内には、日本Symfonyユーザー会という組織があるのが特徴的です。勉強会の開催やUstでのオンライン居酒屋座談会、そしてメンバーによって多くのドキュメントの翻訳作業などが行われています。

このようなSymfonyですが、一番最初に公開されたのは2005年なので6年も前のことです。

symfony1.0がリリースされるまで

Symfonyが最初に公開された2005年ごろはPHP4がまだまだバリバリ現役で開発現場で利用されている時代であり、PHPだとMojaviというフレームワークがかなり有名だったころだと思います。そして、SymfonyはPHP5用のMojaviであるMojavi3のforkとしてスタートしました。つまりはMojaviの親戚です。そして、Agaviとも親戚です。
なので、symfony1系のときは"return sfView::SUCCESS"のようなMojaviらしいコードが随所にありました。

私はこのころにsymfonyと出会い、大量の英語のドキュメントを読むついでにひどい日本語に置き換えて野良公開するという作業をしていました。

また、Symfonyという名前ですが、wikipediaによると

Symfonyのスポンサーはフランスの Sensio Labs である。
このため、初期の名称は「Sensio Framework」であった[4]。
そして、各クラス名には「Sensio Framework」の頭文字である"sf" というプレフィックスが付いているが、
オープンソースのフレームワークにすることが決まり、
議論の結果プレフィックスをそのまま生かせる 「Symfony」 に改称された

と解説があります。そういえば、2年前にFabienさんが東京にこられたときに、聞いた気がします。

symfony 1.0のリリースと日本語書籍出現

symfony1.0がリリースされたのは2007年1月でした。そしてこのころに日本語の書籍"symfony×PHP"(アシアルさん)と"symfony徹底攻略"が発刊されました。

symfony×PHP [LLフレームワークBooks] (LLフレームワークBOOKS # 3)

symfony×PHP [LLフレームワークBooks] (LLフレームワークBOOKS # 3)

symfony徹底攻略 [PHP徹底攻略シリーズ]

symfony徹底攻略 [PHP徹底攻略シリーズ]

私は"symfony徹底攻略"を執筆したのですが、執筆中はまだバージョンが0.8ぐらいで試行錯誤しながら書いていたのを覚えています。もう4年も前のことなんですね。
このころは今以上に検索しても日本語情報は無かった時代でした。

symfony 1.1 そして sfFormの登場。 symfony勉強会の開催

2008年3月にディノさんの会場で初めてのsymfony勉強会が行われました。
http://events.php.gr.jp/events/show/40
ちなみに、このころはまだ1.0のバージョンがメインで1.1はリリースされていませんでした。この後に1.1がリリースされ、理解が大変だったsfFormが登場します。

そして、2008年10月に第2回symfony勉強会が行われ、発表内容を見てみると1.2がリリースされる直前で注目は1.2の内容になっていることがわかります。
http://events.php.gr.jp/events/show/56
また、発表者名にkatsuhiroとあったのですが、小川さんの名前ですね。このころはアカウント名ではなかったんですね。

symfony 1.2 Doctrineが標準ORMに

この1.2へのバージョンアップでsymfonyは大きく進化しました。
1.1まではPropelが標準のORMだったのですが、人気におされDoctrineが標準ORMになりました。
ルーティング機能が強化され、objectRougint機能が追加されました。これでアクションの記述がよりすっきりすることができるようになりました。
アドミンジェネレータも書き換えられ上記ルーティングの機能を活用できるように書き換えられました。

そして、1.2のメンテナンス期間が1.0よりも短いということが判明したり色々あったり。
http://d.hatena.ne.jp/brtRiver/20081211/1229029487
このころに"こんな短い期間だとsymfony2.0がリリースされるまでにsymfony1.5ぐらいまで行きそうなのですね。。"とか書いてますがあながち間違いではなかった。。。

この頃に開催された勉強会を振り返ってみると...

* 2009年5月 symfony勉強会/懇親会
** sfWebDebugToolbarを拡張してみる (fivestar)
** symfony1.2のイベントを使ってみた (brtriver)
** ルーティングを使ってシンプルなアプリケーション開発を (海老原昂輔)

タイトルみただけでどういった内容か推測できる人は立派なsymfonyanです。

Fabienさんの来日と More With Symfony

この年の9月にFabienさんがPHPカンファレンスのゲストとして初来日され、生Fabienさんに会うことができました。
また、翌日に東京観光ツアーが開催され、夜に中華料理屋でFabienさんからSymfony2のコンセプトについて話を聞いたのをはっきりと覚えています。
http://akimoto.jp/blog/2009/09/02/tokyo-one-day-sightseeing-with-symfony-fabien-potencier/

たしか、このときに@ganchikuさんや@hidenorigotoさんと初めて会った記憶が。

また、このときにFabienさんから"今年もアドベントカレンダーをやるんだけど、翻訳して同日公開したいから協力してくれないか?"との話があり、
その場にいたメンバーで"やろう!"ということで本家のMLとも絡みながら作業を行いました。
これが"More With Symfony"でした。

More with Symfony 1.3 & 1.4

More with Symfony 1.3 & 1.4

symfony 1.3, 1.4 そして Symfony2の開発開始

2009年12月に 新しい機能を詰め込んだ後方互換機能を含む1.3と後方互換を含まない1.4がリリースされました。
このころか一部の熱狂的ファンの間では興味はSymfony2に移っていきます。

また、symfony勉強会はファーストロジックさんのところで開催されるようになります。
http://events.php.gr.jp/events/show/89

日本Symfonyユーザー会設立

2010年6月 More With Symfonyの翻訳活動から始まった有志の集まりからユーザー会を正式に設立しました。
http://www.symfony.gr.jp/

PHPMatsuri 2010 で Kris さん来日

2010年10月にアメリカからsymfony1系のメンテナである Kris さんが来日されSymfony2ミニワークショップを開催しました。
Textmate名前空間を補完なしにがっつり神コーディングしていく姿はとても印象的でした。
http://www.symfony.gr.jp/blog/20101005-php-matsuri-2010

クレイジーなSymfony2勉強会

2010年11月にまだstableが出ていないのに、Symfony2勉強会をジンガジャパンさんで開催しました。
このときから@hidenorigotoさんのスパルタワークショップ伝説が始まりました。
また、ほんとうはこの頃にSymfony2がリリースされると予想していたのが見事に外れたというのもありました。

Symfony1.4本の発刊

"Symfony2がもうすぐリリースされるからこそ、このタイミングで良いsymfony1系の本を!"ということで
ユーザー会のメンバーで"オープンソース徹底活用 symfony1.4によるWebアプリケーション開発"を執筆しました。

オープンソース徹底活用symfony1.4によるWebアプリケーション開発

オープンソース徹底活用symfony1.4によるWebアプリケーション開発

Symfony2 リリース

2011年7月にようやく、よーやく、よーーーやくSymfony2がリリースされました。

PHPMatsuri 2011 で Fabienさん再来日

2年ぶりにFabienさんが来日し、PHPMatsuriでSymfony2についてお話いただきました。やっぱり男前でした。

今年もあらためて More With Symfony

そして、今週末(12/4(日))にも Symfony勉強会/忘年会/前夜祭/ミニハッカソンが開催されます。
まだ席には余裕があらいますので、興味がある方は是非参加してみてください。
http://www.symfony.gr.jp/events/20111114-symfony-study5

あらためて振り返ってみると、色々ありました。そして、なかなか濃い歴史でもありますね!


明日は koyhogeさんです!
お楽しみに!