PHPのフレームワークとして人気のあるフレームワーク「symfony」を中心となって開発している仏Sensio Labs社。社長でありプログラマでもある、symfonyプロジェクトの中心人物ファビアン・プートンシェ(Fabien Potencier)氏に、「symfony」誕生のきっかけや現状、今後について聞いた。
昨年末、欧州最大のウェブカンファレンス「Le Web '08」に参加する機会があったのですが、せっかくパリに来たのだから、パリを拠点にしたPHPのあの企業に行ってみよう、と連絡しました。
PHPのフレームワークとして、Zend FrameworkやCakePHPと並び人気のあるフレームワークsymfonyを中心となって開発しているSensio Labsです。
Sensio社の入居する大きなオフィスビル(左)、オフィスビル内の案内板(右)
社長でありプログラマでもある、symfonyプロジェクトの中心人物ファビアン・プートンシェ(Fabien Potencier)氏にお話を聞くことができました。
Sensio Labs社 設立者のFabien Potencier氏
symfonyとオープンソース
秋元
symfonyを作られたきっかけは?
ファビアン
Sensioでは、2004年頃にPHP4からPHP5への移行をすることにしました。その際にPHP5で使えるフレームワークを探したのですがよいものが見当たらず、
mojavi
(
注1)と
propel
(
注2)を参考にしながら自社フレームワークを作ることになったのです。
秋元
symfonyをオープンソースとして公開したのはなぜですか?
ファビアン
Sensio社がウェブ制作をしてきたクライアントの大企業から要求されたのがきっかけです。彼ら大企業は、Sensioという製作会社がどうなるかとは無関係に、このフレームワークを使い続けたいと考えました。しかし、Sensioとしても、作ったフレームワークを彼らに売ってしまうと次の開発が大変です。そこで、2005年の10月にsymfonyフレームワークとしてオープンソース化し、公開しました。
秋元
symfonyの特徴は?
ファビアン
symfonyは顧客の要求駆動でしか機能を付け加えないという方針を守り続けています。実際に必要とされる機能しかフレームワークに追加することはありません。唯一の例外はAjax
対応で、この機能だけはsymfonyのマーケティングに必要という観点でつけました。オープンソースのフレームワークとしては珍しい方ですが、それぞれのバージョンにはっきりしたメンテナンス期間を設けています。これも顧客のことを考えた上でのことです。
注1
mojavi
:PHP4時代の人気フレームワーク。現在もmojavi3としてプロジェクトは継続中。
注2
propel
:PHP用のORM(Object-Relational-Mapper)。symfonyでは当初はデフォルトのORMとして、現在は2つの選択肢(propel、 Doctorine)の1つとして採用されている。
Sensio Labs社について
秋元
Sensio LabsはPHP/symfony専業の会社なのでしょうか?
ファビアン
いいえ、必要性やクライアントからの要求に応じて、他の道具も使っています。例えば、Zend Framework
やPython
+Django
などです。データベースも、MySQL
、PostgreSQL
、そしてまれにOracle
も使います。
秋元
社員数を教えてください。
ファビアン
現在の社員数は50人です。ここ数年、倍々で増えているので来年には100人になっているかもしれませんね。ここフランス以外にも、カナダのモントリオールとアメリカのアトランタにも事務所を開きました。それぞれの国でPHPやsymfonyのトレーニングやコンサルティングを行なっています。また、最近の大きなトピックとしては、ORマッピングライブラリ「Doctrine」の作者Jonathan Wage氏がSensio Labsに入社したことがあります。
symfonyの今後について
秋元
symfonyのバージョンを上げるとアプリケーションが動かなくなる、という話を聞きますが。
ファビアン
symfony1.0からバージョン1.1への移行が複雑だったことは認めます。しかし、その時にバージョンを上げるときの仕組み自体を改良したので、1.1から1.2、そしてこの先の1.2から1.3の移行はずっと簡単なものになるでしょう。
秋元
1.3の先はどうなりますか?
ファビアン
バージョン2.0では、完全な作り直しを行います。理由(
注3)としては
- パフォーマンスをさらに高速にする
- 巨大なエンタープライズシステムが作れるようにする
- symfony以外で作られた既存のPHPアプリケーションを簡単に移行できるようにする
という目的を達成するためです。バージョン2.0で、現在は小文字で始まっているフレームワーク名「symfony」の「s」の字はついに大文字になります。つまり「
Symfony」です。
注3
その後、公式ブログではDIコンテナの採用などSymfony2.0に関する構想の発表が続いています。