Viewレイヤーはview.yml設定ファイルを編集することで設定できます。
はじめの章で説明したように、view.ymlファイルはコンフィギュレーションカスケードのメカニズムが有効で、定数を格納することができます。
caution
アクションから呼び出されるテンプレートもしくはメソッドで直接使われるヘルパーのためにたいていの場合この設定ファイルは非推奨です。
view.yml設定ファイルはビュー設定のリストを格納できます:
VIEW_NAME_1: # configuration VIEW_NAME_2: # configuration # ...
note
view.yml設定ファイルはPHPファイルとしてキャッシュされます;
処理はsfViewConfigHandlerクラスによって自動的に管理されます。
layout
デフォルトコンフィギュレーション:
default: has_layout: on layout: layout
view.yml設定ファイルはアプリケーションによって使われるデフォルトのlayoutを定義します。
デフォルトでは、名前はlayoutで、symfonyはアプリケーションのtemplates/ディレクトリでlayout.phpファイルですべてのページをデコレートします。
has_layoutエントリをfalseにセットすることでデコレーションプロセスを一緒に無効にすることもできます。
tip
viewに対して明示的にセットしない限り、layoutはXML、HTTPリクエストと非HTMLのContent-Typeに対して自動的に無効にされます。
stylesheets
デフォルトコンフィギュレーション:
default: stylesheets: [main.css]
stylesheetsエントリーは現在のビューで使うスタイルシートの配列を定義します。
note
view.ymlで定義されるスタイルシートのインクルードはinclude_stylesheets()ヘルパーによる手動もしくはcommonフィルターで自動的に行われます。
複数のフィルターが定義されている場合、symfonyは定義と同じ順序でこれらをインクルードします:
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()ヘルパーで手動、もしくはcommonフィルターで自動的に行われます。
多くのファイルが定義されている場合、symfonyは定義と同じ順序でこれらをインクルードします:
javascripts: [foo.js, bar.js]
.js拡張子を省略することもできます:
javascripts: [foo, bar]
use_javascript()ヘルパーのためにこの設定は非推奨です:
<?php use_javascript('foo.js') ?>
note
foo.jsのように相対パスを使うとき、symfonyはこれらの前に/js/をつけます。
metasとhttp_metas
デフォルトコンフィギュレーション:
default:
http_metas:
content-type: text/html
metas:
#title: symfony project
#description: symfony project
#keywords: symfony, project
#language: en
#robots: index, follow
http_metasとmetas設定はレイアウトにインクルードするメタタグの定義を可能にします。
note
view.ymlで定義されるメタタグのインクルードはinclude_metas()とinclude_http_metas()ヘルパーで手動で行うことができます。
静的なメタ情報(Content-Typeなど)に対するレイアウトのHTMを純粋に保つ、もしくは動的なメタ情報(タイトルや説明)のためのスロットのためにこれらの設定は非推奨です。
tip
効果があるとき、settings.yml設定ファイルで定義された文字集合をインクルードするためにHTTPのContent-Typeのメタ情報は自動的に修正されます。
This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.