Je vais avoir la question suivante:YAML - Escape guillemets
symfony Classic 2 projet, PHPUnit 5.1.7.
Dans un fichier de configuration YML J'ai quelque chose comme ceci:
mobile_detect:
service:
mobile_detector: mobile_detect.mobile_detector.default
twig_extension_class: "SunCat\MobileDetectBundle\Twig\Extension\MobileDetectExtension"
je lance des tests sur ma machine locale (ubuntu) et tout fonctionne très bien.
Ensuite, je déploie du code (environnement aws) et j'essaie d'exécuter des tests. Tout échoue avec l'erreur:
"Unescaped character \M".
Je vois que yaml guillemets doubles parser des chaînes si \ M est en effet un caractère indéfini. Ma question est ... Pourquoi travaille-t-il sur le fichier local?
De plus, le code fonctionne correctement lorsque j'essaie d'accéder normalement (via apache-browser). Pourquoi cela fonctionne aussi bien?
Je suppose que l'approche correcte serait de remplacer toutes les guillemets doubles par des guillemets simples, mais cela prendrait beaucoup de temps (ne peut pas remplacer toutes les raisons dans certains cas en les utilisant comme cela a pu être prévu). Y at-il un moyen de faire des tests sur la machine de tests pour interpréter yml comme ils le font sur les machines locales?
comment déployez-vous le code sur l'environnement aws? Vérifiez si les paramètres d'encodage sur le processus de transfert peuvent être – Matteo
C'était aussi ma première estimation, mais l'encodage est correct, j'ai aussi écrit le fichier manuellement sur le test env (le même problème est survenu). Je devine que c'est une chose de phpunit parce que le code fonctionne bien si des demandes normales sont faites. – zozo
A propos du déploiement (j'ai oublié de le mentionner) J'utilise un haricot élastique pour le déploiement. Il crée essentiellement une image avec votre code, réécrit l'environnement à partir d'une image spécifique, puis copie l'image de code sur celui-ci. Après cela, il exécute composer et appelle certains scripts personnalisés (cela ne devrait pas affecter le problème actuel). – zozo