2010-10-28 9 views
0

J'écris une API XML reposante pour une affectation universitaire, la spécification ne nécessite aucune interface HTML.Comment changer le format par défaut en XML dans Symfony?

Il ne semble y avoir aucune documentation (ou fonctionnalité devinable) concernant la façon de changer le format par défaut? Alors que jusqu'ici j'ai créé tous les modèles comme ...Success.xml.php, il serait plus facile de simplement utiliser les réguliers et de les définir globalement; Je m'attendais vraiment à ce que cette fonctionnalité soit configurable à partir de YAML .. pourtant j'ai trouvé quelques références codées en dur au format HTML. Le problème principal que je rencontre est que la partie de l'évaluation renvoie un 404 d'une certaine manière (pas comme un 404: /), mais surtout il doit toujours retourner XML, et la configuration par défaut d'un itinéraire manquant est un HTML 404 non XML (donc cela fonctionne seulement quand j'utilise forward404 d'une action s'exécutant par l'intermédiaire d'une route XML

Donc en résumé, est-il un moyen de faire ceci/quelle (s) classe (s) dois-je remplacer? ?

Répondre

2

Essayez de mettre cela dans factories.yml

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

Cela nécessitera quand même que les noms de modèles changent. Cela signifie simplement que les URL qui ne spécifient pas de format reviendront à xml au lieu de html.

Vous pouvez sous-classe sfPHPView et remplacer la méthode d'initialisation d'affecter cette (copier-coller la méthode d'initialisation à partir sfView) - les lignes de ce type doivent changer:

if ('html' != $format) 

Vous devez ensuite changer la classe d'affichage utilisée. .. essayez ceci:

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

+0

Après avoir pensé à ce sujet, il semble que beaucoup de travail pour sauver 3 caractères dans un nom de fichier .... mais chacun à leur propre! – benlumley

+0

C'était moins l'inquiétude, plus sur le défaut de HTML sur n'importe quelle route inégalée. – Steve

+0

C'était simplement le default_format dans yaml que vous avez suggéré pour faire le travail. – Steve

Questions connexes