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.2
Symfony version
1.4
Language

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/をつけます。

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など)に対するレイアウトのHTMを純粋に保つ、もしくは動的なメタ情報(タイトルや説明)のためのスロットのためにこれらの設定は非推奨です。

tip

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