private function initController() { $this->frontController = new FrontController(); // Create the database interface objects and their proxies and register // them with the FrontController. $configuration = new Configuration($this->dbConnector); $entries = new Entries($this->dbConnector); $authenticator = new Authenticator($this->dbConnector); $captchaAuth = new CaptchaAuth($this->dbConnector); $authenticator->setMethodHandler(AuthMethods::CAPTCHA, new CaptchaAuthHandler($captchaAuth)); $resolvers = array(new DirectClassResolver('configuration', $configuration, array('getAll' => array(), 'getByName' => array(Types::STRING))), new DirectClassResolver('entries', $entries, array('getEntryCount' => array(), 'getAllIds' => array(Types::STRING), 'getIdsForRange' => array(Types::STRING, Types::INT, Types::INT), 'getEntryById' => array(Types::INT), 'addEntry' => array(Types::STRING, Types::STRING, Types::STRING))), new ClassResolver('auth', new AuthServer($authenticator)), new ClassResolver('captchaAuth', new CaptchaAuthServer($captchaAuth)), new CaptchaImageResolver($captchaAuth)); foreach ($resolvers as $resolver) { $this->frontController->addResolver(new AuthResolverProxy($resolver, $authenticator)); } }