Symfony勉強会#8に参加してきた

Symfony勉強会#8に参加してきました。

Symfony勉強会#8では、Symfony初心者向けのハンズオンセミナーが開催されました。Webアプリケーションフレームワークのハンズオンセミナー、私は受講者側でしか経験がありませんが、ハマりどころが無数にあり、主催者の苦労が偲ばれます。

私自身、Symfonyは一応インストール(というかぶっちゃけ、ダウンロードだけ…)はしておいたものの、動作確認はしていませんでした。案の定、会場で動かしてみると動作せず。。。Macで動かすのは諦めてVMのCentOSに環境構築。それでもApacheが上手く動かず、TAの方にPHPのビルトインサーバーの起動方法を教えてもらい、それで何とか動きました。

丁寧にサポートしていただいたTAの方に感謝です。というか、動作確認くらいしておくべきでした。。。

OS、普段はMac + CentOSで事足りてるんですが、新し目のフレームワークを触るときには、標準リポジトリがPHP5.4対応しているOSを使うべきですね(CentOS、サポート期間が長いのは非常に有り難いんだけど、PHP 5.3.3 / MySQL 5.1は古すぎ…)。あと、yumの代替リポジトリ登録で古い情報つかんでハマったので、ソースからmakeしてインストールする練習もしておかないと。

また、sshで接続してvimで編集してたらソースコードのコピペ時にインデントが崩れまくったので、CyberduckでSFTP接続してSublime Textで編集に切り替えました。意外な落とし穴。

本題のSymfonyに関しては、symfony 1とSymfony2は全く別物ということが実感できました。フルスタックのMVCフレームワークという特徴と、フレームワークの名前、開発リーダーくらいしか共通点がありません。

ディレクトリ構造も全然違いますし、symfony 1でお馴染みのsymfonyコマンドは、Symfony2では app/console です。

symfony 1は普通のフルスタックMVCフレームワークですが、Symfony2は、一部モジュールだけを取り出してマイクロフレームワークを作ったり、モジュール単位でライブラリとしての利用も可能です。

Symfony2は、名前空間等のPHP5.3の機能をフル活用し、根本的な設計変更を行なっています。

感心したのは「依存性の注入(DI, Dependency Injection)」という概念。クラスごとの結びつきは最低限にとどめておいて、設定ファイルで実際の動きを制御する。動きを変えたいときは、ソースコードを変えなくても設定ファイルを変えればよいので、変更に強くなります。

今回のSymfony勉強会をきっかけにSymfony2を使うようになるかというと、そうはなりそうにないですね。。。新しいフレームワークを覚えるよりも先に、知識の基礎固めが必要でしょう。しかしSymfony2、コードも洗練されてるし、開発用の機能も豊富。そして、Symfonyユーザー会の方々もカッコ良い。いずれはSymfony2で開発したいな、と思いました。

私家版電子書籍ストアランキング(技術書中心)

何か唐突にまとめたくなったので。利用したことのある電子書籍ストアをランキング。

1. O’Reilly Media

書籍は充実しており、DRM Freeでpdf/ePub/mobi等、多様なフォーマットに対応。隙は無いが、無敵とは言い切れない(後述)。

買った本: Regural Expressions Cookbook 2nd edition, Programming PHP 3rd edition

2. オライリー・ジャパン

O’Reilly Mediaと別枠なのは、対応フォーマットがほぼpdfのみだから(一部ePub対応しているが、紙版の出ている書籍はpdfのみ)。オライリー判型の本をiPad miniで読むのはつらい。

買った本:初めてのRuby、JavaScriptパターン、Apacheクックブック第2版、初めてのPHP5増補改訂版、カンフーマック

3. 達人出版会

電子書籍専門ストア。ePub/pdf。新し目の技術や、対象読者は狭いが興味深い技術など、とんがったラインナップが魅力。

買った本:初めてのフレームワークとしてのFuelPHP

4. Gihyo Digital Publishing

技術評論社の電子書籍ストア。DRM Free。pdfがメインだがePubも有る模様。ラインナップが若干しょっぱい。

買った本:スタートアップRuby

5. Kindle Store

DRM付きだし、日本の電子書籍ストアの本はPCでは読めない。したがってコピペもできず、技術書としては利便性に劣る(画像スキャンしただけの本だと、検索すらできない)。現状では技術書の数も少ない。

しかし、蔵書をクラウドで管理し、複数端末間で進捗共有ができるのは、非常に便利。現状、技術書ストアとしては制約が多いためこの位置だが、O’Reilly Mediaの地位を脅かすポテンシャルを秘めている。

買った本:Learning Unix for Mac OS X Mountain Lion

6. App Store

iOSアプリの電子書籍ストア。以前はオライリーのアプリが充実していたが、撤退してしまったため、現在は魅力に乏しい。

買った本:jQuery Cookbook, Essential ActionScript 3.0, CSS CookBook

7. Google Play Books

順位としては7位だが、満足度はぶっちぎりの最下位。商品の説明が非常に分かりにくく、買ってみるまで仕様が分からない。

買った本:10日で覚えるLinux

番外:オーム社eStore

買ったことがないのでランクには入れていないが、書籍のラインナップは充実。pdfのみ。