For Want Of A Better Word

Symfony2をつかってみる③ URLとcontrolerとViewの関係

      2015/04/19

Symfony2の出だしがなんかわかった。

前提

Symfonyで開発する場合、本番モードと開発モードがある。

  • (1)フロントコントローラーに「app_dev.php」を指定した場合。開発モード。
    • Viewの修正をしたらキャッシュをすぐに更新してくれる。キャッシュは「app/cach/dev」領域。
    • URLにフロントコントローラー名が表示されたまま。
    • (例)
  • (2)フロントコントローラーに「app.php」を指定した場合が本番モード
    • Viewの修正をしてもキャッシュをすぐに更新してくれない。キャッシュは「app/cach/prod」領域。
  • URLにフロントコントローラー名は表示されない。(含めて設定しても、URLは書き直される。)
    • (例)

(単純に各プログラムの記述内容の話なので、書き換えれば挙動は変更できる。)

バンドルしたsrcは下記ファイルに登録される。
この中でも、dev testという条件で特別にBundleしているものがある。
– app/AppKernel.php

で以下たとえば。。
generatorから下記コマンドでBundleを新規作成したとする。

app/console generate:bundle –namespace=Sample/MemoBundle –format=yml

そうすると

  • app/AppKernel.phpにBundle対象が追加される。
    • 「new Sample\MemoBundle\SampleMemoBundle(),」
  • app/config/routing.ymlに以下の項目が追加される。

sample_memo:# sample_memoバンドルの設定(URLとは関係ない)
resource: “@SampleMemoBundle/Resources/config/routing.yml”# SampleMemoBundleのrouting.ymlを参照しなさいということ
prefix: / # prefix(フロントコントローラーの後に必要なURL1階層/カテゴリ)

  • src/Sample/MemoBundle以下にプログラム・設定ファイルが作成される。
  • srcバンドルディレクトリ以下のrouting.ymlは下記のような設定

ample_memo_homepage:
pattern:/memo/{name}# マッチするURLパターン(フロントコントローラー以下)
defaults: { _controller: SampleMemoBundle:Default:index } # 稼働させるコントローラー(Default)とアクション(index)

となる。

そして、「_controller: SampleMemoBundle:Default:index」に紐づくテンプレートは
「src/Sample/MemoBundle/Resources/views/Default/index.html.twig」
である。

そして、URLは

/http:///symfony/web/app.php/prefix/urlパターン/

で、キャッシュをクリアする場合は、「app/console cache:clear」を実行する。
※フロントコントローラーをapp_devでアクセスすれば、即時に更新される。

 - 未分類

  関連記事

no image
(インストール)

http://homepage3.nifty.com/renoiv/php/ph …

no image
mtvモデルって?

何のことはない。MVCモデルの違う呼び方ってだけらしい。 Djangoとかがそう …

no image
SVNとGITとMercurialのコマンド対応表

ここに良い物が乗ってました。 http://japan.blogs.atlass …

no image
DAO(プログラミングの問題)

Data Access Object(DAO)とは、ある種のデータベースや永続性 …

no image
[その他][用語]ソフト- プログラム – アプリの違い

ソフトウェアとはコンピュータを動作させる手順・命令をコンピュータが理解できる形式 …