Funções de retorno de emissão

Funções de emissão são chamadas quando uma instância de uma classe registrada é emitida pelas funções yaml_emit() ou yaml_emit_file(). A função recebe o objeto a ser emitido. A função deve retornar um array com duas chaves: "tag" e "data". O valor associado à chave "tag" deve ser uma string a ser usada como a etiqueta YAML no resultado. O valor associado à chave "data" será codificado como YAML e emitido no lugar do objeto interceptado.

Exemplo #1 Exemplo de função de emissão

<?php
class EmitExample {
public
$data; // os dados podem estar em qualquer tipo adequado de pecl/yaml

public function __construct ($d) {
$this->data = $d;
}

/**
* Função de emissão Yaml, referida na chamada a yaml_emit por nome de classe.
*
* Esperado retornar um array com dois valores:
* - 'tag': etiqueta personalizada para esta serialização
* - 'data': valor a ser convertido para yaml (array, string, booleano, número)
*
* @param object $obj Objeto a ser emitido
* @return array Etiqueta e dados substitutos a serem emitidos
*/
public static function yamlEmit (EmitExample $obj) {
return array(
'tag' => '!example/emit',
'data' => $obj->data,
);
}
}

$emit_callbacks = array(
'EmitExample' => array('EmitExample', 'yamlEmit')
);

$t = new EmitExample(array('a','b','c'));
$yaml = yaml_emit(
array(
'example' => $t,
),
YAML_ANY_ENCODING,
YAML_ANY_BREAK,
$emit_callbacks
);
var_dump($yaml);
?>

O exemplo acima produzirá algo semelhante a:

string(43) "---
example: !example/emit
- a
- b
- c
...
"
adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top