Symfony2を学び始めて日が浅い者です.
今まではCakePHPを簡単ではありますが学んだことがあります.だからこそSymfony2の仕組みが分からず立ち止まっております.Symfony2はCakePHPのMVCの上位概念とのことですが,Symfony2においてどこが「M (Model)」で「V (View)」で「C (Controller)」なのか….ここで悩んでる私にとって更にBundleというものが出てきててんやわんやになっております.
クライアントがサーバにアクセスした時,Symfony2のtwigファイルがhtmlファイルとしてクライアントに渡すまでの流れを教えていただければと思います.(とにかく流れがわからない感じです)
CakePHPの場合は
- app/View/~.ctpが呼びだされて
- 紐付いているapp/Controller/~Controller.phpがapp/Model/~.phpを呼び出す
- そのときにモデルがデータベースにクエリを発行してその結果をー
といった感じだと思います.
Symfony2の場合ではどのような感じなのでしょうか?
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
0
ここで悩んでる私にとって更にBundleというものが出てきててんやわんやになっております.
Bundleはプラグイン
に近いイメージです。
Symfony2はコアのフレームワークから自身で書くソースコードまですべてバンドルで構成されています。
詳しくは公式に書いてあります。
The Bundle System
http://symfony.com/doc/current/book/bundles.html
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
Symfony2の大まかな流れはこんな感じですね。
Browser
-> Request
-> Bootstrap(app.php)
-> Controller
-> Template(twig)
-> Response
具体的なファイルと見ていくと
- app/config/routing.yml ルーティングに従ってコントローラが呼び出される
- src/AppBundle/Controller/~Controller.php
2.1. src/AppBundle/Entity/~.php エンティティを呼び出してなんかする。
2.2. EntityManagerでクエリを発行してコントローラで結果を受け取る
2.3. クエリ結果を引数としてビューに渡す - src/AppBundle/Resources/views/~/index.html.twig ビューの表示
うまく説明できたかわからないですが、こんな回答で大丈夫でしょうか。。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
Symfony2はCakePHPのMVCの上位概念とのことですが,Symfony2においてどこが「M (Model)」で「V (View)」で「C (Controller)」なのか…
M -> Entity/~.php
V -> Resources/views/*.html.twig
C -> Controller/~.php
Symfony2の場合はModel(モデル)
じゃなくてEntity(エンティティ)
という名称になりますね。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.35%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2016/03/23 10:54
src/ には複数のBundleが存在する場合があるとは思いますが,1つのアプリケーションを構築するのに使われている複数のBundleらはどのようにつながっているのでしょうか?Bundle ≒ プラグインだとするとそのプラグインはどこで読み込まれる(どのファイルに刺さっている)のでしょうか?
2016/03/23 11:19
アーキテクチャ
http://docs.symfony.gr.jp/symfony2/quick_tour/the_architecture.html
名前空間の使用法: エイリアス/インポート
http://php.net/manual/ja/language.namespaces.importing.php
2016/03/23 17:03
戴いたヒントを元にもう少し理解を進めてみます.
壁にあたった時にはまた稚拙な質問をしてしまうとは思いますが,その時はよろしくお願いいたします.
2016/03/23 21:19
一つの投稿にたくさん質問があると見づらくなってしまいますので。
また見かけたら回答しにきますね〜