Как изменить формат по умолчанию на XML в Symfony? - PullRequest
0 голосов
/ 29 октября 2010

Я пишу спокойный XML API для университетского задания, спецификация не требует внешнего интерфейса HTML.

Кажется, что нет никакой документации (или предполагаемой функциональности) относительно того, как изменить формат по умолчанию?Пока что я создал все шаблоны как ...Success.xml.php, было бы проще просто использовать обычные и установить их глобально;Я действительно ожидал, что эта функциональность будет настраиваться из YAML ... но я нашел несколько жестко закодированных ссылок на формат HTML.

Основная проблема, с которой я сталкиваюсь, заключается в том, что часть оценки возвращает 404 вопределенным образом (не как 404: /), но важно, что он всегда должен возвращать XML, и настройка по умолчанию отсутствующего маршрута - это HTML 404, а не XML (поэтому он работает, только когда я использую forward404 из действия, выполняемого черезXML route.

Итак, в общем, есть ли способ сделать это / какие классы я должен переопределить?

1 Ответ

2 голосов
/ 29 октября 2010

Попробуйте поместить это в factory.yml

all:
  request:
    class: sfWebRequest
    param:
      default_format: xml

Это по-прежнему требует изменения имен шаблонов. Это будет просто означать, что URL-адреса, которые не задают формат, вернутся к xml вместо html.

Вы можете создать подкласс sfPHPView и переопределить метод инициализации, чтобы повлиять на это (скопируйте, вставьте метод инициализации из sfView) - строки, подобные этой, нужно изменить:

if ('html' != $format)

Затем вам нужно изменить используемый класс представления ... попробуйте это:

http://mirmodynamics.com/post/2009/02/23/symfony%3A-use-your-own-View-class

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...