Ejemplo n.º 1
0
<?php

require_once www_root . 'xml/document.php';
$config = xml\document::load($filename);
$result = (object) ['batch' => $config['@batch'], 'schema' => $config['@schema'], 'documentation' => $config['@documentation'], 'datasources' => [], 'collections' => [], 'resources' => [], 'schemas' => []];
if (isset($config['@vars'])) {
    $result->vars = $config['@vars'];
}
foreach ($config->query('/config/datasources//datasource[@name and @type]') as $datasource) {
    $name = $datasource['@name'];
    unset($datasource['@name']);
    $result->datasources[$name] = (object) iterator_to_array($datasource->attributes());
}
foreach ($config->query('/config//collection[@name]') as $collection) {
    $procedures = [];
    foreach ($collection->query('.//procedure[@name and @datasource]') as $procedure) {
        $params = [];
        $output = [];
        if (isset($procedure['@params'])) {
            foreach (explode(',', $procedure['@params']) as $param) {
                $options = (object) [];
                $name = trim($param);
                $filter = explode('|', $name);
                if (count($filter) == 2) {
                    $name = trim($filter[0]);
                    $options->filter = trim($filter[1]);
                }
                $params[$name] = $options;
            }
        }
        if ($attrib = isset($procedure['@output']) ? $procedure['@output'] : (isset($collection['@output']) ? $collection['@output'] : null)) {