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
javascriptの関数リテラル | 変数に無名関数をセットするやつ

【参考】http://news.mynavi.jp/column/js/001/ …

no image
ランチャー「nrLaunch」でフォルダを開く。

くるくるジェスチャーで起動する、「nrLaunch」を愛用しているのですが。 こ …

no image
レンダリングエンジン

タブレットのレンダリングエンジン アンドロイド端末のブラウザはその名も「ブラウザ …

no image
いまさらながらSQL難しい(多対多)

多対多のオブジェクトがある場合のテーブル構造とSQLの作り方。 http://c …

no image
インターネット BGP-4 フルルート

なんか、恰好よく感じた。 フルルートとは インターネット上の全経路数。 インター …