Согласно вашей информации об ошибке The reserved indicator "@" cannot start a plain scalar; you need to quote the scalar
, она была вызвана символом @
, который является зарезервированным индикатором в YAML 1.2.Пожалуйста, обратитесь к официальной спецификации YAML , чтобы узнать его через поиск @
в браузере.Более подробная информация об использовании Symfony YAML (3.4) для анализа файла YAML приведена в Формат YAML на официальном сайте Symfony, а ниже приведена краткая справка.
Строки, содержащие любой из следующих символов, должны быть заключены в кавычки.Хотя вы можете использовать двойные кавычки, для этих символов удобнее использовать одинарные кавычки, что исключает необходимость экранирования от обратной косой черты:
:, {,}, [,], ,, &, *, #,?, |, -, <,>, =,!,%, @ , `
Стиль в двойных кавычках обеспечивает способ выражения произвольных строк с помощью \ для выходаперсонажи и последовательности.Например, это очень полезно, когда вам нужно вставить в строку символ \ n или Unicode.
В вашем описании я не вижу никаких @
в вашем коде, поэтомучто я не могу предоставить какой-либо код, чтобы помочь исправить ошибку.Но я воспроизвожу информацию об ошибке через простой код и надеюсь, что она поможет.
<?php
include_once('vendor/autoload.php');
use Symfony\Component\Yaml\Yaml;
$value = Yaml::parse("hello: @world");
printf($value);
?>
Первый символ @
из hello
вызывает ту же ошибку.Возможно, такая же проблема произошла, когда вы ссылаетесь на переменную в Config.yml
.Если вы можете обновить свой код для более недостающих деталей, полезно помочь исправить.
Любая проблема, пожалуйста, дайте мне знать.