Как Symfony выбирает сам тип контента? - PullRequest
2 голосов
/ 16 февраля 2010
  txt:  text/plain
  js:   [application/javascript, application/x-javascript, text/javascript]
  css:  text/css
  json: [application/json, application/x-json]
  xml:  [text/xml, application/xml, application/x-xml]
  rdf:  application/rdf+xml
  atom: application/atom+xml

Используется каркасом для автоматически управлять типом контента ответа, основанного на запросе Расширение URI.

Как и выше, для расширения .js есть 3 различных типа контента. Как Symfony выбирает конечный тип контента?

Ответы [ 2 ]

1 голос
/ 19 февраля 2010

Ответ вернет первый элемент в списке, если тип контента специально не установлен.

С sfWebRequest:

public function getMimeType($format)
{
  return isset($this->formats[$format]) ? $this->formats[$format][0] : null;
}

$this->formats содержит список расширений для отображений типа mime, которые вы указали в своем вопросе, так как они указаны для объекта запроса.

0 голосов
/ 16 февраля 2010

Я думаю, что вы можете быть после этого (в этом примере используется таблица стилей, но принцип тот же):

// In the view.yml
indexSuccess:
  stylesheets: [main, paper: { media: print }]

// In the Action
$this->getResponse()->addStylesheet('paper', '', array('media' => 'print'));

// In the template
<?php use_stylesheet('paper', '', array('media' => 'print')) ?>

// Resulting View
<link rel="stylesheet" type="text/css" media="print" href="/css/paper.css" />

От: http://www.symfony -project.org / book / 1_2 / 07-Inside-the-View-Layer

...