Example #1
0
 /**
  * Initialize application. Make all necessary components and put it in registry.
  *
  * @return $this
  */
 public function initialize()
 {
     $this->kit = $this->makeKit();
     //make basic components
     $this->registry = $this->kit->makeRegistry();
     $this->registry->setConfig($this->config)->setKit($this->kit)->setObserver($this->kit->makeObserver());
     //trigger event
     $event = $this->registry->getObserver()->trigger($this, 'beforeInitialize');
     if ($event->isDefaultPrevented()) {
         return;
     }
     $request = $this->makeRequest();
     //put components in registry
     $this->registry->setConnectionStorage($this->kit->makeConnectionStorage())->setRequest($request)->setResponse($this->makeResponse($request))->setFlashMessenger($this->kit->makeFlashMessenger());
     $this->setupConnectionForTableModels();
     $this->initialized = true;
     $this->frontController = $this->makeFrontController();
     return $this;
 }