Exemplo n.º 1
0
 public function middleware($service, $args = [])
 {
     if (!is_string($service)) {
         $args = $service;
         $service = uniqid();
     }
     if (is_object($args) && !is_callable($args) && !$args instanceof Middleware) {
         throw new Exception('Middleware must be an instace of Tipsy\\Middleware');
     }
     if (!$this->_services[$service]) {
         $this->service($service, $args, true);
     }
     if ($this->_middlewares[$service]) {
         return $this->service($service);
     }
     $middleware = ['service' => $service, 'args' => $args, 'started' => $this->_middlewareStart];
     $this->_middlewares[$service] = $middleware;
     if ($this->_middlewareStart) {
         Middleware::_start($middleware, $this);
     }
     return $this->service($service);
 }