YAML è una notazione nata nel 2001 per la serializzazione standard dei dati come XML ed è la notazione pricipale per Symfony.
YAML significa ‘YAML Ain’t Markup Language’ cioè è una notazione senza marker, infatti a differenza di XML non presenta marker, ma la struttura dei dati è mostrata tramite l’indentazione (l’utilizzo degli spazi e dell’andare a capo). Vediamo di seguito degli esempi pratici.
OGGETTO PHP
$house = array( 'family' => array( 'name' => 'Doe', 'parents' => array('John', 'Jane'), 'children' => array('Paul', 'Mark', 'Simone') ), 'address' => array( 'number' => 34, 'street' => 'Main Street', 'city' => 'Nowheretown', 'zipcode' => '12345' ) );
YAML sintassi lunga
house: family: name: Doe parents: - John - Jane children: - Paul - Mark - Simone address: number: 34 street: Main Street city: Nowheretown zipcode: "12345"
YAML sentassi breve
house: family: { name: Doe, parents: [John, Jane], children: [Paul, Mark, Simone] } address: { number: 34, street: Main Street, city: Nowheretown, zipcode: "12345" }
Notare per gli array [], per gli hash {}
Un altro esempio comparativo YAMS XML JSON
XML
<people> <person> <firstName>Charles</firstName> <lastName>Schulz</lastName> </person> <person> <firstName>Walt</firstName> <middleName>Elias</middleName> <lastName>Disney</lastName> </person> <person> <firstName>Gary</firstName> <lastName>Larson</lastName> </person> </people>
JSON
{ “people”: [ { “person”: { “firstName”: “Charles”, “lastName”: “Schulz” } }, { “person”: { “firstName”: “Walt”, “middleName”: “Elias”, “lastName”: “Disney” } }, { “person”: { “firstName”: “Gary”, “lastName”: “Larson” } } ] }
YAML
people: - person: {firstName: Charles, lastName: Schulz } - person: firstName: Walt middleName: Elias lastName: Disney characters: [ Mickey, Donald, Goofy ] - person: firstName: Gary lastName: Larson