Повици за емитување
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Повици за емитување
Референца за `yaml.callbacks.emit.php` со подобрена типографија и навигација.
Повици за емитување
Повиците за емитување се повикуваат кога инстанца на регистрирана класа се емитува од yaml_emit() or
yaml_emit_file(). На повикот му се предава објектот што треба да се емитува. Повикот мора да врати низа што има два клуч: "tag" и "data". Вредноста поврзана со клучот "tag" мора да биде низа што ќе се користи како YAML ознака во излезот. Вредноста поврзана со клучот "data" ќе биде кодирана како YAML и ќе се емитува наместо пресретнатиот објект.
Пример #1 Пример за повик за емитување
<?php
class EmitExample {
public $data; // data may be in any pecl/yaml suitable type
public function __construct ($d) {
$this->data = $d;
}
/**
* Yaml emit callback function, referred on yaml_emit call by class name.
*
* Expected to return an array with 2 values:
* - 'tag': custom tag for this serialization
* - 'data': value to convert to yaml (array, string, bool, number)
*
* @param object $obj Object to be emitted
* @return array Tag and surrogate data to emit
*/
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);
?>Горниот пример ќе прикаже нешто слично на:
string(43) "--- example: !example/emit - a - b - c ... "