Example #1
0
 /**
  * @param array
  * @return null
  */
 private function setupInjectorEvents($pathParams)
 {
     $injector = $this->injector;
     $this->eventManager->on(Injector::EVENT_CREATE_INSTANCE_AFTER, function ($className, $instance) use($injector, $pathParams) {
         if ($instance instanceof Request) {
             $request = $instance;
             if ($injector->hasDependency(Request::class)) {
                 throw new \Exception("Only one instance of " . Request::class . " is allowed");
             }
             $this->setupRequest($request, $pathParams);
             $injector->setDependency($request, Request::class);
         }
     });
     $this->eventManager->on(Injector::EVENT_CREATE_INSTANCE_AFTER, function ($className, $instance) {
         if ($instance instanceof Response) {
             $response = $instance;
             $this->setupResponse($response);
         }
     });
     $this->eventManager->on(Injector::EVENT_CREATE_INSTANCE_AFTER, function ($className, $instance) use($injector) {
         if ($instance instanceof Session) {
             $session = $instance;
             if ($injector->hasDependency(Session::class)) {
                 throw new \Exception("Only one instance of " . Session::class . " is allowed");
             }
             if (!$injector->hasDependency(Request::class)) {
                 throw new \Exception(Request::class . " must be injected before " . Session::class);
             }
             $request = $injector->getDependency(Request::class);
             $this->setupSession($session, $request);
             $injector->setDependency($session, Session::class);
         }
     });
 }
Example #2
0
 private function trigger($name, $parameters)
 {
     $name = "websocket-" . $name;
     $this->eventManager->trigger($name, $parameters);
 }