appName = 'contacts'; parent::__construct($this->appName, $params); $this->container = $this->getContainer(); $this->server = $this->container->getServer(); $this->app = new App($this->container->query('API')->getUserId()); $this->registerServices(); $this->container->registerMiddleware('HttpMiddleware'); } public function registerServices() { $app = $this->app; $appName = $this->appName; $this->container->registerService('HttpMiddleware', function($container) { return new HttpMiddleware(); }); $this->container->registerService('PageController', function(IAppContainer $container) use($app, $appName) { $request = $container->query('Request'); return new PageController($appName, $request); }); $this->container->registerService('AddressBookController', function(IAppContainer $container) use($app, $appName) { $request = $container->query('Request'); $api = $container->query('API'); return new AddressBookController($appName, $request, $app, $api); }); $this->container->registerService('BackendController', function(IAppContainer $container) use($app, $appName) { $request = $container->query('Request'); return new BackendController($container, $request, $app); }); $this->container->registerService('GroupController', function(IAppContainer $container) use($app, $appName) { $request = $container->query('Request'); $tags = $container->getServer()->getTagManager()->load('contact', array(), true); return new GroupController($appName, $request, $app, $tags); }); $this->container->registerService('ContactController', function(IAppContainer $container) use($app, $appName) { $request = $container->query('Request'); return new ContactController($appName, $request, $app); }); $this->container->registerService('ContactPhotoController', function(IAppContainer $container) use($app, $appName) { $request = $container->query('Request'); $cache = $container->getServer()->getCache(); return new ContactPhotoController($appName, $request, $app, $cache); }); $this->container->registerService('SettingsController', function(IAppContainer $container) use($app, $appName) { $request = $container->query('Request'); return new SettingsController($appName, $request, $app); }); $this->container->registerService('ImportController', function(IAppContainer $container) use($app, $appName) { $request = $container->query('Request'); $cache = $container->getServer()->getCache(); $tags = $container->getServer()->getTagManager()->load('contact'); return new ImportController($appName, $request, $app, $cache, $tags); }); $this->container->registerService('ExportController', function(IAppContainer $container) use($app, $appName) { $request = $container->query('Request'); return new ExportController($appName, $request, $app); }); } }