yaml-php-callbacks-php-parse-5

  • Callbacks
  • Parse callbacks

  • Parse callbacks
  • Parse callbacks

    Parse callbacks

    Parse callbacks are invoked by
    yaml_parse(), yaml_parse_file() or yaml_parse_url() functions when a registered
    YAML tag is encountered. The callback is passed the tagged entity’s
    value, the tag, and flags indicating the scalar entity style. The
    callback must return the data that the YAML parser should emit for
    this entity.

    Example #1 Parse callback example

    <?php
    /**
     * Parsing callback for yaml tag.
     * @param mixed $value Data from yaml file
     * @param string $tag Tag that triggered callback
     * @param int $flags Scalar entity style (see YAML_*_SCALAR_STYLE)
     * @return mixed Value that YAML parser should emit for the given value
     */
    function tag_callback ($value$tag$flags) {
      
    var_dump(func_get_args()); // debugging
      
    return "Hello {$value}";
    }

    $yaml = <<<YAML
    greeting: !example/hello World
    YAML;

    $result yaml_parse($yaml0$ndocs, array(
        
    '!example/hello' => 'tag_callback',
      ));

    var_dump($result);
    ?>

    The above example will output something similar to:

    array(3) {
      [0]=>
      string(5) "World"
      [1]=>
      string(14) "!example/hello"
      [2]=>
      int(1)
    }
    array(1) {
      ["greeting"]=>
      string(11) "Hello World"
    }