『基本からしっかり学ぶSymfony2入門』を読んだ

基本からしっかり学ぶ Symfony2入門

本書は、PHPフレームワークSymfonyの入門書。

Symfonyとは

Symfonyは、PHP製のWebアプリケーション・フレームワーク。PHPのフレームワークの中でも、PHPコミュニティに対する影響力の大きさという点で特筆に値する。コンポーネントの疎結合化とDIコンテナによるコンポーネントの統合、Composerによる各コンポーネントの管理など、PHP 5.3以降のPHPフレームワークの多くで取り入れられている要素は、Symfonyに端を発している(※)。

※:Symfonyが採用している設計思想はSymfonyオリジナルのものではないけれど、Symfonyはこれらの設計思想に基づいたコンポーネントを使いやすい形で提供することで、コミュニティに影響を与えている。

また、コンポーネント単位の再利用が可能であることから、Drupal等のCMSや、コマンドラインツール、さらにはSymfonyコンポーネントの上に作ったフレームワーク(Laravel)まで、Symfonyコンポーネントを利用したプロダクトも多数登場している。

Symfonyの難しさ

Symfonyは、上述したように、影響力の大きさや、コンポーネント単位での再利用のしやすさ等の良さがある一方で、重量級のフルスタックフレームワークにありがちな、機能が多いがゆえの難しさもある。

Symfonyのドキュメントはかなり充実しているが、元々の機能が多い上、柔軟性を高めるために複雑になっている機能もあり(特にSecurityコンポーネント)、初心者が簡単に使い始められるようにはなっていない。

自分としては、Symfonyを学ぶ最短ルートは以下のようになると思っている。

  1. The Symfony Bookを通読する
  2. Symfony Best Practicesを通読する

これらの分量を合わせると約250ページ程度で、フレームワークの入門資料としては適度な分量のように思える。ただ、日本人の開発者にとって問題なのは、これらのドキュメントが全て英語で書かれていることである。日本語ドキュメントは存在するが、対応バージョンが古いのが難点。少なくとも、ドキュメントを読んで理解できる程度の英語力が無いのであれば、Symfonyを採用すべきではない。悩ましいのは、たとえ英語が読める人でも、日本語を読むのに比べると英語を読む速度はかなり落ちるということ。

入門段階から英語力が必須になる点が、Symfonyを学ぶ上での大きな課題だと感じていたところに、『基本からしっかり学ぶSymfony2入門』が出た。

『基本からしっかり学ぶSymfony2入門』の概要

『基本からしっかり学ぶSymfony2入門』は、日本語で書かれた、Symfony 2.7の入門書。主著者の後藤 秀宣(@hidenorigoto)氏は、知る人ぞ知る日本Symfonyユーザ会のグル(導師)。そんな後藤さんの本ということで、事前の期待度は高かったのだけど、期待は裏切られなかった。

対応バージョンについて

Symfonyはつい先日2.8と3.0が出たばかりなので、「2.7なんて古いバージョンじゃん!」と思うかもしれないが、Symfonyの最近のバージョンは安定してきているので、2.7と3.0では、メジャーバージョンアップとしてふつうイメージするほどの違いはない。そうはいっても、3.0では一部のディレクトリ構造が変わっていたりするので(app/consoleがbin/consoleに移動する等)、本書の「写経」をする場合は、2.7の利用をおすすめする。

なお、Symfony 2.7はLTS(Long Term Support)と呼ばれるバージョンであり、そのサポートは2018年5月まで続く。本書の「賞味期限」も、同じくらいは持つのでは、と思っている。

構成

Symfony製のWebアプリケーションの作成を通して、Symfonyの使い方を学べるようになっている。Symfony公式ドキュメントにはWebアプリケーションを作るようなチュートリアルが存在せず、非公式の「ブログチュートリアル」の類も、対応バージョンが古いという問題を抱えているものが多かった。

その点、本書は2.7という十分に新しいバージョンで、丁寧なチュートリアルが行われている。

項目の面からも、初心者がまず知るべきトピックは網羅されている。

  • ルーティングとアクション
  • テンプレートエンジンTwig
  • ORマッパーDoctrine
  • ログイン機能
  • Form
  • 外部プラグイン(SymfonyではBundleと呼ぶ)
  • DIコンテナ(Symfonyではサービスコンテナと呼ぶ)
  • 設定ファイル
  • コンソールアプリケーション
  • ユニットテスト・機能テスト

内容

詳しさでは、The Symfony Bookには一歩譲るし、Symfony Best Practicesの内容が全て網羅されているわけでもない。そういう意味で、公式ドキュメントの代替になるわけではない。

しかし、公式ドキュメントの通読に比べて、本書は圧倒的に速く読める。それでいて、Symfonyを使いはじめるのに必要な点はきっちり網羅されているので、Symfony入門の敷居を劇的に引き下げている。

自分がSymfonyを学び始めた今年の7月頃に、この本が出ていれば…と思わざるをえない。これからSymfonyを学ぼうとしている人には、本書を強くおすすめする。

コメントを残す