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
PHPで配列間の共通値だけ取得したい(絞り込み検索をしたい) array_intersect array_diff

根っこは絞りこみ検索をしたい。 データの構造が、たとえば col1=1,2,3, …

no image
はてなブログに「style」タグを書いたらそこ以下表示されなくなって、上部の管理メニューも表示されなくなった。

タグはそのままHTMLとして解釈されちゃうから、そこ以降がstyleの中身扱いに …

no image
GoogleDocsのバージョン管理方法

使い方を見つけるまでちょっと探したのでメモ。 変更履歴も勝手にとってくれるし、旧 …

no image
OleDbConnectionオブジェクトの作成
no image
PPP、PPPoE,PPPoA

PPP (Point-to-Point Protocol) 2点間を接続してデー …