/** * sets a delegate class to receive events as the application runs * * @param string $delegate name of delegate class * @return \Sonic\App */ public function setDelegate($delegate) { $this->includeFile('Sonic/App/Delegate.php'); $this->autoloader($delegate); $delegate = new $delegate(); if (!$delegate instanceof App\Delegate) { throw new \Exception('app delegate of class ' . get_class($delegate) . ' must be instance of \\Sonic\\App\\Delegate'); } $this->_delegate = $delegate; $this->_delegate->setApp($this); return $this; }