Пример #1
0
 public function dispatch(RequestInterface $request)
 {
     $flow = new Flow($this->selectMiddleware($request));
     if (isset($this->logger)) {
         $flow->setLogger($this->logger);
     }
     return $flow->flow();
 }
Пример #2
0
 public function dispatch(RequestInterface $request)
 {
     if ($this->logger) {
         $this->logger->info(sprintf('Handling request "%s %s"', $request->getMethod(), $request->getUri()->getPath()));
     }
     $middleware = array();
     foreach (array_reverse($this->layers) as $layer) {
         if ($layerMiddleware = $layer->selectMiddleware($request)) {
             $middleware = array_merge($middleware, $layerMiddleware);
         }
     }
     $flow = new Flow($middleware);
     if (isset($this->logger)) {
         $flow->setLogger($this->logger);
     }
     return $flow->flow();
 }
Пример #3
0
 private static function renderTemplateAsync(Template $tpl)
 {
     $partial = $tpl->__toString();
     // render, but component will provide only placeholders
     $ret = Flow::run(self::$components);
     $html = preg_replace_callback('/\\x01(\\d+)\\x02/', function ($m) use($ret) {
         return $ret[$m[1]];
     }, $partial);
     return $html;
 }
Пример #4
0
 public function render()
 {
     if (Helpers::$async) {
         echo Helpers::addComponent($this);
         // output placeholder
     } else {
         echo Flow::run([$this])[0];
         // eager eval
     }
 }