Caution: You are browsing the legacy symfony 1.x part of this website.
SymfonyWorld Online 2020
100% online
30+ talks + workshops
Live + Replay watch talks later

view.yml 設定ファイル

1.4
Symfony version
1.2
Language

ビューレイヤーのコンフィギュレーションは view.yml ファイルのなかで変更できます。

設定ファイルの原則の章で述べたように、view.yml ファイルでは、コンフィギュレーションカスケードのメカニズムがはたらいており、定数を定義することができます。

caution

アクションから呼び出されるテンプレートもしくはメソッドによって直接使われるヘルパーのほうが望ましいので、この設定ファイルの変更は推奨されていません。

ビュー設定のリストは view.yml ファイルに用意されています。

VIEW_NAME_1:
  # コンフィギュレーション
 
VIEW_NAME_2:
  # コンフィギュレーション
 
# ...

note

view.yml ファイルのキャッシュは PHP ファイルとして保存されます。処理は sfViewConfigHandler クラスにゆだねられます。

layout

デフォルトコンフィギュレーション:

default:
  has_layout: true
  layout:     layout

アプリケーションによって使われるデフォルトの layoutview.yml ファイルのなかで定義されます。デフォルトの名前は layout で、すべてのページはアプリケーションの templates/ ディレクトリに配置されている layout.php ファイルによってデコレートされます。has_layout エントリに false をセットすれば、デコレーション処理を完全に無効にすることもできます。

tip

view に対して layout が明確にセットされていないかぎり、XML、HTTP リクエストおよび HTML ではない Content-Type に対して自動的に無効になります。

stylesheets

デフォルトコンフィギュレーション:

default:
  stylesheets: [main.css]

stylesheets エントリは現在のビューで使われるスタイルシートの配列を定義します。

note

include_stylesheets() ヘルパーを使えば、view.yml ファイルで定義されているスタイルシートを手動でインクルードできます。

複数のファイルが定義されている場合、定義と同じ順番でインクルードされます。

stylesheets: [main.css, foo.css, bar.css]

media 属性を変更もしくは .css 拡張子を省略することもできます。

stylesheets: [main, foo.css, bar.css, print.css: { media: print }]

use_stylesheet() ヘルパーを使うやりかたのほうが望ましいので、この設定を変更することは推奨されていません

<?php use_stylesheet('main.css') ?>

note

デフォルトの view.yml ファイルでは、参照されるファイルは main.css であり /css/main.css ではありません。実際のところ、symfony は相対パスの前に /css/ をつけるので、両方の定義は同じです。

javascripts

デフォルトコンフィギュレーション:

default:
  javascripts: []

javascripts エントリは現在のビューに使う JavaScript ファイルの配列を定義します。

note

view.yml 設定ファイルで定義されている JavaScript ファイルを手動でインクルードするには、include_javascripts() ヘルパーを使います。

複数のファイルが定義されている場合、定義と同じ順番でこれらのファイルがインクルードされます。

javascripts: [foo.js, bar.js]

.js 拡張子を省略することもできます。

javascripts: [foo, bar]

use_javascript() ヘルパーを使うやりかたのほうが望ましいので、この設定を変更することは推奨されていません

<?php use_javascript('foo.js') ?>

note

foo.js のような相対パスを使うと、パスの前に /js/ がつきます。

metashttp_metas

デフォルトコンフィギュレーション:

default:
  http_metas:
    content-type: text/html
 
  metas:
    #title:        symfony project
    #description:  symfony project
    #keywords:     symfony, project
    #language:     en
    #robots:       index, follow

レイアウトのなかでインクルードするメタタグは http_metasmetas 設定によって定義できます。

note

view.yml ファイルで定義されているメタタグを手動でインクルードするには、include_metas()include_http_metas() ヘルパーを使います。

変化しないメタ情報 (Content-Type など) のためにレイアウトのなかで HTML を純粋に保つため、もしくは動的なメタ情報 (タイトルや説明) のスロットのほうが望ましいので、これらの設定は推奨されていません

tip

設定が反映されるとき、settings.yml ファイルで定義されている文字集合をインクルードするために、Content-Type ヘッダーのメタ情報は自動的に修正されます。