Exemplo n.º 1
0
 function query($name, $args, $document)
 {
     $procedure = $this->get($name, $args);
     if ($permission = $procedure->permission()) {
         $this->access->query(vars::apply_assoc($permission, $args, true)) or runtime_error('Procedure ' . $name . ' doesn\'t meet permission ' . $permission);
     }
     if ($procedure->cache()) {
         $mangled = procedure::mangle_values($name, $args);
         if (!isset($this->cache[$mangled])) {
             $this->cache[$mangled] = $procedure->query($args, $document);
         }
         return $this->cache[$mangled];
     } else {
         return $procedure->query($args, $document);
     }
 }