/** * Creates the application. * * @return Synapse\Application */ public function createApplicationWithServices(array $services) { defined('WEBDIR') or define('WEBDIR', realpath(__DIR__)); defined('APPDIR') or define('APPDIR', realpath(WEBDIR . '/..')); defined('DATADIR') or define('DATADIR', APPDIR . '/data'); defined('TMPDIR') or define('TMPDIR', '/tmp'); date_default_timezone_set('UTC'); $applicationInitializer = new Synapse\ApplicationInitializer(); $app = $applicationInitializer->initialize(); $app->register(new \Silex\Provider\SecurityServiceProvider()); $app->register(new \Synapse\Controller\ControllerServiceProvider()); $app->register(new \Silex\Provider\UrlGeneratorServiceProvider()); $app['security.firewalls'] = $app->share(function () { return ['base.api' => ['pattern' => '^/', 'oauth' => true]]; }); $app['security.access_rules'] = $app->share(function () { return []; }); // synapse's default session provider doesn't allow for testing so override $sessionServiceProvider = new SessionServiceProvider(); $sessionServiceProvider->register($app); $app['debug'] = true; $app['session.test'] = true; $app['exception_handler']->disable(); foreach ($services as $service) { $app->register($service); } $this->setupOAuth2Provider($app); return $app; }
/** * Return the Silex application loaded with all routes and services * * @return Application */ protected function application() { // Initialize the Silex Application $applicationInitializer = new ApplicationInitializer(); $app = $applicationInitializer->initialize(); // Set the default services $defaultServices = new \Synapse\Application\Services(); $defaultServices->register($app); // Set the application-specific services $appServices = new \Application\Services(); $appServices->register($app); return $app; }