Através dos métodos da classe sfYAML, pode-se facilmente converter um array para o formato YAML ou vice-versa.
Os métodos são os seguintes:
- sfYAML::load($yaml) – converte um arquivo ou uma string no formato YAML para um array PHP
- sfYAML::dump($array) – converte um array PHP para o formato YAML
Exemplos de utilização:
Carregando o arquivo settings.yml localizado em myProject/apps/myApp/config para um array:
$app = 'myApp';
$appConfigPath = SF_ROOT_DIR.DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.$app.
DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR;
$file = "settings.yml";
$yamlToArray = $appConfigPath . $file;
if(file_exists($yamlToArray)) $yaml = sfYaml::load($yamlToArray);
Array para YAML – sfYaml::dump();
Criando o arquivo myconfig.yml a partir do array $arrayToYaml no diretório myProject/apps/myApp/config:
$arrayToYaml = array("prod"=>array(".settings"=>array("no_script_name"=>"false",
"charset"=>"iso-8859-1")));
$yaml = sfYaml::dump($arrayToYaml);
file_put_contents($appConfigPath.'myconfig.yml', $yaml);