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で開発したいな、と思いました。

コメントをどうぞ

コメントを残す