Example #1
0
 public function registerMiddleware($route)
 {
     if (isset($route['middleware'])) {
         foreach ($route['middleware'] as $middleware) {
             if (empty($middleware)) {
                 continue;
             }
             $reflector = new Reflector('App\\Middlewares\\' . $middleware);
             $reflector->inject([], $this->app);
             $middleware = $reflector->resolve();
             $middleware->register();
         }
     }
 }
Example #2
0
 public function fire($event, $params = [])
 {
     $eventObj = $this->getListener($event);
     if (!$eventObj) {
         return;
     }
     if (!array_key_exists('object', $eventObj)) {
         foreach ($eventObj as $ev_name => $ev) {
             $this->fire($event . '.' . $ev_name, $params);
         }
         return;
     }
     $event_dispatch = new Reflector($eventObj['object'], $eventObj['method']);
     if ($event_dispatch->isExists()) {
         $event_dispatch->inject($params, $this->container);
         $event_dispatch->resolve();
     }
 }
Example #3
0
 public function dispatch()
 {
     if ($this->response->isRedirection() || $this->response->isForbidden()) {
         return;
     }
     if (!$this->isDispatchable()) {
         return $this->notFound();
     }
     View::addGlobal('__current_parent', $this->current->getParent());
     View::addGlobal('__current', $this->current->getIdentifier());
     try {
         list($controller, $parameters) = $this->current->dispatch();
         $reflector = new Reflector($controller);
         $reflector->inject($parameters, $this);
         ob_start();
         $object = $reflector->resolve();
         $result = ob_get_clean();
         if (!$object && !$result) {
             return;
         }
         if ($object instanceof ViewContract) {
             $result = $object->render();
         }
         if (strlen($result) === 0) {
             $this->response->setContent($object);
         } else {
             $this->response->setContent($result);
         }
         $this->response->prepare($this->request);
         return;
     } catch (\Exception $e) {
         if ($this->config->get('app.debug', false)) {
             throw $e;
         }
     }
 }