示例#1
0
文件: app.php 项目: rabbl/pwx
$app->register(new Silex\Provider\ServiceControllerServiceProvider());
// Register DoctrineServiceProvider service
$app->register(new Silex\Provider\DoctrineServiceProvider(), $config);
// Register DoctrineOrmServiceProvider service
$app->register(new Dflydev\Silex\Provider\DoctrineOrm\DoctrineOrmServiceProvider(), $config);
// Register theme service & set user theme
$app['i18n_service'] = $app->share(function () {
    return new App\Service\I18nService();
});
// Register translation service
$app->register(new Silex\Provider\TranslationServiceProvider(), array('locale_fallbacks' => array('en'), 'locale' => $app['i18n_service']->getLocale($config['locale'])));
// Register the yaml translations
$app['translator'] = $app->share($app->extend('translator', function (Silex\Translator $translator, $app) {
    $translator->addLoader('yaml', new Symfony\Component\Translation\Loader\YamlFileLoader());
    foreach ($app['i18n_service']->getValidLocales() as $locale) {
        $translator->addResource('yaml', __DIR__ . '/locales/' . $locale . '.yml', $locale);
    }
    return $translator;
}));
// Register Credentials factory
$app['credentials_factory'] = $app->share(function () {
    return new App\Factory\CredentialsFactory();
});
// Register Credentials service
$app['credentials_service'] = $app->share(function () use($app, $config) {
    return new App\Service\CredentialsService($app['orm.em'], $app['credentials_factory'], $app['orm.em']->getRepository('App\\Entity\\Credentials'), $config);
});
// Register default controller
$app['app.default_controller'] = $app->share(function () use($app) {
    return new App\Controller\DefaultController($app, $app['twig'], $app['credentials_service']);
});