У меня следующий вопрос:YAML - Побег в двойных кавычках
Классический проект Symfony 2, PHPUnit 5.1.7.
В одном конфигурационном файле YML у меня есть что-то вроде этого:
mobile_detect:
service:
mobile_detector: mobile_detect.mobile_detector.default
twig_extension_class: "SunCat\MobileDetectBundle\Twig\Extension\MobileDetectExtension"
Я запускать тесты на моей локальной машине (Ubuntu) и все работает нормально.
Затем я развертываю код (среда aws) и пытаюсь запустить тесты. Все с ошибкой:
"Unescaped character \M".
Я вижу, что в YAML двойные кавычки разбора строк так \ M действительно неопределенный характер. Мой вопрос ... Почему это рабочий файл на локальном?
Кроме того, код работает нормально, когда я пытаюсь получить доступ к нормальному (через apache-браузер). Почему так хорошо работает?
Я предполагаю, что правильный подход состоял бы в том, чтобы заменить все двойные кавычки одиночными кавычками, но это было бы действительно трудоемким (не может заменить все beacause, в некоторых случаях их использование может быть предназначено). Есть ли способ сделать тесты на тестовой машине интерпретировать yml так же, как на локальных машинах?
как вы развертываете код в среде aws? Проверьте, могут ли быть параметры кодирования в процессе передачи. – Matteo
Это была моя первая догадка, но кодировка в порядке, я также написал файл вручную на тестовом env (то же самое происходило). Я предполагаю, что это phpunit, потому что код работает нормально, если сделаны обычные запросы. – zozo
О развертывании (забыл упомянуть об этом) Я использую эластичный beanstalk для развертывания. Он в основном создает изображение с вашим кодом, переписывает среду с определенного изображения, а затем копирует на нее изображение кода. После этого он запускает композитор и вызывает некоторые пользовательские сценарии (которые не должны влиять на текущую проблему). – zozo