コード例 #1
0
ファイル: www_initialize.php プロジェクト: nyan-cat/easyweb
<?php

$this->batch = $config->batch;
$this->schema = $config->schema;
$this->documentation = $config->documentation;
if (isset($config->vars)) {
    $this->vars = json\decode(fs\read($config->vars));
}
$datasources = [];
foreach ($config->collections as $options) {
    $collection = new collection($options->name, $options->key);
    foreach ($options->procedures as $procedure) {
        $params = $procedure->params;
        if ($procedure->datasource == 'php') {
            $collection->attach($procedure->name, new php_procedure($procedure->name, $params, !isset($procedure->required) or $procedure->required !== 'false', isset($procedure->result) ? $procedure->result : 'array', new script($this, $procedure->body)), $procedure->static);
        } else {
            $datasource = $config->datasources[$procedure->datasource];
            if (in_array($datasource->type, array_keys(sql::drivers()))) {
                $drivers = sql::drivers();
                if (!isset($datasources[$procedure->datasource])) {
                    $datasources[$procedure->datasource] = new sql($datasource->type, $datasource->server, $datasource->username, $datasource->password, $datasource->database, $datasource->charset);
                }
                $collection->attach($procedure->name, new sql_procedure($procedure->name, $params, !isset($procedure->required) or $procedure->required !== 'false', isset($procedure->result) ? $procedure->result : 'array', isset($procedure->output) ? $procedure->output : null, $procedure->body, $datasources[$procedure->datasource]), $procedure->static);
            } else {
                switch ($datasource->type) {
                    case 'foursquare':
                        if (!isset($datasources[$procedure->datasource])) {
                            $datasources[$procedure->datasource] = new foursquare($datasources->client_id, $datasources->client_secret);
                        }
                        $collection->attach($procedure->name, new foursquare_procedure($procedure->name, $procedure->method, !isset($procedure->required) or $procedure->required !== 'false', isset($procedure->result) ? $procedure->result : 'array', $datasources[$procedure->datasource]), $procedure->static);
                        break;