private function registerServices() { $this['db'] = $this->share(function ($app) { return DriverManager::getConnection(array('driver' => 'pdo_mysql', 'host' => $app['db_host'], 'dbname' => $app['db_name'], 'user' => $app['db_user'], 'password' => $app['db_password'])); }); $this['project_list'] = $this->share(function () { return new ProjectList(); }); $this['run_storage'] = $this->share(function ($app) { return new MysqlStorage($app['db'], __DIR__ . '/../../../data/output_files'); }); $this['workspace'] = $this->share(function ($app) { return new Workspace($app['project_list'], $app['run_storage']); }); $this['template_loader'] = $this->share(function ($app) { $loader = new TemplateLoader(); $loader->addDirectory(__DIR__ . '/../../../assets/templates'); return $loader; }); $this->extend('twig', function ($twig, $app) { $twig->addExtension(new DateExtension($app['translator'])); $twig->addExtension(new \Twig_Extension_StringLoader()); return $twig; }); $this->extend('form.extensions', function ($extensions, $app) { $extensions[] = new BehatLauncherExtension(); return $extensions; }); }