In this article we assume that you are familiar with The YAML Format and Configuration File Principles.
The view.yml configuration file can be used to configure the View layer.
When an application is created, symfony generates a default view.yml file in the application config/ directory which configures the view for the whole application (under the default key).
The default view configuration can be overridden for a module by creating a view.yml file in the config/ directory of the module.
view_name: has_layout: <true | false> layout: layout_name http_metas: list_of_http_metas metas: list_of_metas stylesheets: [-*, css_file1, css_file2, ...] javascripts: [js_file1, js_file2, ...]
If view.yml is in the config/ directory of the module, then view_name key can specify one of the following:
If view.yml is in the application config/ directory which describes the view settings for the whole application, view_name key must be set to 'default'. Eg.:
default: http_metas: ... metas: ...
Specifies whether or not to enable the page decoration with layout. The layout is automatically disabled for XML HTTP requests and non-HTML content types, unless explicitly set for the view. Possible values: <true | false> Default: true
Defines the default layout used by the application. By default, symfony decorates every page with the layout.php file, found in the application templates/ directory. You can also set a layout in the model actions class, eg:
class modelActions extends sfActions { public function executeIndex(sfWebRequest $request) { $this->setLayout('new_layout'); // set new layout $this->setLayout(false); // disable layout $this->setLayout(null); // revert the layout to the one in the view.yml } }
Default: layout
Defines http meta tags to be included in the layout. For example:
default: http_metas: content-type: text/html
The inclusion of the http meta tags defined in view.yml can be done manually with the include_http_metas() helper. Note that it is preferred to add meta tags directly to the layout for static metas (like the content type), or use a slot for dynamic metas (like the title or the description).
Defines meta tags to be included in the layout. For example:
default: metas: title: symfony project description: symfony project keywords: symfony, project language: en robots: index, follow
The inclusion of the meta tags defined in view.yml can be done manually with the include_metas() helper. Note that it is preferred to add meta tags directly to the layout for static metas (like the content type), or use a slot for dynamic metas (like the title or the description).
view_name > stylesheets
Defines an array of stylesheets to use for the current view. Symfony includes files in the same order as they are defined. You can also omit the .css suffix and change the media attribute:
stylesheets: [main, style1.css, style2.css, print.css: { media: print }]
For removing, previous css:
stylesheets: [-*]
Note that it is preferred to use use_stylesheet() helper instead of stylesheets setting:
<?php use_stylesheet('main.css') ?>
Default: [main.css]
view_name > javascripts
Defines an array of JavaScript files to use for the current view. Symfony includes files in the same order as they are defined. You can also omit the .js suffix:
javascripts: [script1, script2.js]
Note that it is preferred to use use_javascript() helper instead of javascripts setting:
<?php use_javascript('script.js') ?>