スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

symfony の実行順序(前半)

フレームワークについて、オブジェクト指向についてと長い前置きになってしまいました。
今回からはいよいよsymfonyの中身を見ていきます。

私がsymfonyを見始めて最初に混乱したのが、多くのファイル同士がどう関連しているか、どういう順序で処理されているのかがわかりづらい!ということでした。symfonyがどのような順序でファイルを読み込みのかが頭に入っているかいないかで、その後の大分理解度が変わってくると思います。
というわけで今回はsymfonyの中でどういう順序で処理が行われているのか見ていきたいと思います。

まず、symfonyの基本の一つである「MVCモデル」についてです。
「MVCモデル」というのは、symfony独自の考え方ではなく、アプリケーションを3つに分けて設計・実装をする、という一般的にある考え方です。その3つとは以下のとおり。

Model(モデル)
そのアプリケーションがもつ情報(データ)と、それに関連する処理のまとまり。データベースに関連すること、というとイメージが付きやすいと思います。
View(ビュー)
クライアントの目に見えるものとして出力する部分。モデルやコントローラーで処理された情報を、画面にレイアウトしてユーザーの眼に見える形に整形します。
Controller(コントローラー)
クライアントからのリクエストに応答し、モデルやビューにどのような処理をするか決める部分。いわば受付&アプリケーションのディレクターともいえますね。

絵にしてみるとこんな感じでしょうか。
mvc-model


ちなみに、ここでいうクライアントとは一般的にウェブブラウザ(=ユーザーが情報を得るために使うもの)を指します。
そして、この
クライアントからのリクエスト→アプリケーションの内部処理→レスポンスを返す
という一連の流れはどんなウェブサイトでも共通です。(アプリケーションの内部処理の部分が変わります。)
これがしっくりこない場合は、webブラウザの仕組み をざっと勉強してみると良いと思います。(実際に私がそうでした;)
ちなみに、私はインターネットの仕組みを勉強するのに「小悪魔女子大生のサーバエンジニア日記」にお世話になってます(・ω・)ノ






後半では、簡単なウェブサイトを例に、symfonyのそれぞれのファイルがどの役割に当たるかということを考えてみたいと思います。
スポンサーサイト

symfonyってなんだろう?

symfonyって?
一言でいうなら、「php向けのwebアプリケーションフレームワーク」といったところでしょうか。
ん??いきなり解りづらいですね。一句ずつ考えていきましょう。

PHP
まずphp、これは読者の皆さんならほとんどのみなさんがよくわかると思いますので省略します。(phpについて、よくわからないという方はGoogle先生に聞いてみるか、↓の本でざっとさらってみることをオススメします。)

初めてのPHP5初めてのPHP5
(2005/10/27)
David Sklar

商品詳細を見る


「webアプリケーション」とは
具体的な例を挙げてみましょう。ショッピングサイト, wikipedia, インターネットショッピング etc.. と言われると大分イメージできるのではないでしょうか? きっと使ったことのあるものばかりですよね!
「webサイト」と何が違うんだろう?という疑問がわくかもしれません。IBM developer Worksの記事によると、webサイトの主体は情報を伝えること、webアプリケーションの主体は対話であるとされています。webアプリケーションにもwebサイトとしての情報を伝達する機能があることには変わりありませんが、ユーザーが積極的にサイトに参加する(twitter、facebookやネットゲームなど)という側面が異なっているのですね。

「フレームワーク」とは
骨組み・土台という意味です。たとえば、一冊の本を作るとして考えてみましょう。
本を作る場合、どんな本でも共通している部分がありますよね?例えば複数のページがまとめられている、表紙・裏表紙・背表紙がある、ISBNを記載する等々・・そういったどんな本にでもある共通の部分を「骨組み」としてまとめてしまい、新しく本を作るときに効率をよくしよう、という考え方です。

こうしてみると、大分分かってきたのではないでしょうか?
分かりやすくまとめると、phpで開発するwebアプリケーションに必要な作業の部分部分を自動化、またはパターン化して効率を良くしてくれるものです。

symfonyの用途?
ここまで解ると、symfonyを使うとどんなサイトが作れるんだろう?というところが気になると思います。
ほかのPHPフレームワークと比べて、symfony大規模なサイトに適していると言われています。たとえば、Yahoo! answersdelicious(ブックマーク共有サイト)、Dailymotionなどのサイトがsymfonyで開発されました。
詳しい比較はこちらをどうぞ。



symfony成り立ちや、紹介しきれなかったsymfonyの機能紹介については、 公式サイトを参考にしてみてくださいね;)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。