static function create($options, $extensions) { if (isset($options->cache)) { $cache = $options->cache . 'cache.tmp'; if ($www = @fs\read($cache)) { $www = unserialize($www); } else { $www = new www($options); fs\write($cache, serialize($www)); } $www->locale->setup($options->language, $options->country); } else { $www = new www($options); } foreach ($www->templaters as $name => $templater) { $templater->extend(isset($extensions[$name]) ? $extensions[$name] : []); } return $www; }
static function create($options) { if (isset($options->cache)) { $cache = $options->cache . 'cache.tmp'; if ($www = @fs\read($cache)) { $www = unserialize($www); } else { $www = new www($options); fs\write($cache, serialize($www)); } } else { $www = new www($options); } $www->router->bind($options->access->method->bindTo($www, $www)); $www->bind(); if (isset($options->access)) { $www->resolve = $options->access->resolve->bindTo($www, $www); } return $www; }
case 'solr': if (!isset($datasources[$procedure->datasource])) { $datasources[$procedure->datasource] = new solr($datasource->server, $datasource->port, $datasource->url, $datasource->username, $datasource->password); } $order_by = []; if (isset($procedure->order_by)) { foreach ($procedure->order_by as $name => $order) { $mode = (object) ['type' => isset($order->type) ? $order->type : 'normal', 'order' => $order->order]; if (isset($order->point)) { $mode->point = $order->point; } $order_by[$name] = $mode; } } $collection->attach($procedure->name, new solr_procedure($procedure->name, $params, !isset($procedure->required) or $procedure->required !== 'false', isset($procedure->result) ? $procedure->result : 'array', isset($procedure->output) ? $procedure->output : null, $datasources[$procedure->datasource], $procedure->core, $procedure->method, $procedure->body, $order_by, isset($procedure->offset) ? $procedure->offset : 0, isset($procedure->count) ? $procedure->count : 10), $procedure->static); break; } } } } $this->dispatcher->attach($options->name, $collection); } foreach ($config->resources as $resource) { foreach ($resource->methods as $method) { $this->router->attach($method->type, new method($resource->uri, $method->access, new script($this, $method->script))); } } foreach ($config->schemas as $name => $schema) { $this->schemas[$name] = json\schema::load($schema->src); fs\write($schema->solr, $this->schemas[$name]->solr()); }