Commit df291b12 authored by Fabien Potencier's avatar Fabien Potencier

feature #1239 Remove mandatory dependency on request_stack and some monolog improvements (Seldaek)

This PR was merged into the 2.0.x-dev branch.

Discussion
----------

Remove mandatory dependency on request_stack and some monolog improvements

This lets everything work with Silex which lacks a request_stack, and I also made a couple changes to the monolog bootstrapping so it's easier to just override the monolog.handler OR monolog.handlers, before you kinda had to redefine both to customize anything.

I also moved the monolog.handler.debug out of the GroupHandler which makes more sense I think because if it is in the group then it falls under the not_found_activation_strategy and therefore even in debug mode you won't get any logs unless you get an error-level record.

Commits
-------

50fbc38f Remove mandatory dependency on request_stack and some monolog improvements
parents 28ca6fec 50fbc38f
......@@ -43,10 +43,12 @@ class MonologServiceProvider implements ServiceProviderInterface, BootableProvid
return new DebugHandler($level);
};
if (isset($app['request_stack'])) {
$app['monolog.not_found_activation_strategy'] = function () use ($app) {
return new NotFoundActivationStrategy($app['request_stack'], array('^/'), $app['monolog.level']);
};
}
}
$app['monolog.logger.class'] = $bridge ? 'Symfony\Bridge\Monolog\Logger' : 'Monolog\Logger';
......@@ -60,6 +62,10 @@ class MonologServiceProvider implements ServiceProviderInterface, BootableProvid
$log->pushHandler($handler);
if ($app['debug'] && isset($app['monolog.handler.debug'])) {
$log->pushHandler($app['monolog.handler.debug']);
}
return $log;
};
......@@ -67,7 +73,7 @@ class MonologServiceProvider implements ServiceProviderInterface, BootableProvid
return new LineFormatter();
};
$app['monolog.handler'] = function () use ($app) {
$app['monolog.handler'] = $defaultHandler = function () use ($app) {
$level = MonologServiceProvider::translateLevel($app['monolog.level']);
$handler = new Handler\StreamHandler($app['monolog.logfile'], $level, $app['monolog.bubble'], $app['monolog.permission']);
......@@ -76,17 +82,14 @@ class MonologServiceProvider implements ServiceProviderInterface, BootableProvid
return $handler;
};
$app['monolog.handlers'] = function () use ($app) {
$app['monolog.handlers'] = function () use ($app, $defaultHandler) {
$handlers = array();
if ($app['monolog.logfile']) {
// enables the default handler if a logfile was set or the monolog.handler service was redefined
if ($app['monolog.logfile'] || $defaultHandler !== $app->raw('monolog.handler')) {
$handlers[] = $app['monolog.handler'];
}
if ($app['debug'] && isset($app['monolog.handler.debug'])) {
$handlers[] = $app['monolog.handler.debug'];
}
return $handlers;
};
......
......@@ -54,9 +54,11 @@ class TranslationServiceProvider implements ServiceProviderInterface, EventListe
return $translator;
};
if (isset($app['request_stack'])) {
$app['translator.listener'] = function ($app) {
return new TranslatorListener($app['translator'], $app['request_stack']);
};
}
$app['translator.message_selector'] = function () {
return new MessageSelector();
......@@ -73,6 +75,8 @@ class TranslationServiceProvider implements ServiceProviderInterface, EventListe
public function subscribe(Container $app, EventDispatcherInterface $dispatcher)
{
if (isset($app['translator.listener'])) {
$dispatcher->addSubscriber($app['translator.listener']);
}
}
}
......@@ -44,7 +44,9 @@ class TwigServiceProvider implements ServiceProviderInterface
if (isset($app['security.token_storage'])) {
$var->setTokenStorage($app['security.token_storage']);
}
if (isset($app['request_stack'])) {
$var->setRequestStack($app['request_stack']);
}
$var->setDebug($app['debug']);
return $var;
......@@ -67,8 +69,10 @@ class TwigServiceProvider implements ServiceProviderInterface
}
if (class_exists('Symfony\Bridge\Twig\Extension\RoutingExtension')) {
if (isset($app['request_stack'])) {
$twig->addExtension(new HttpFoundationExtension($app['request_stack']));
$twig->addExtension(new RoutingExtension($app['url_generator']));
}
if (isset($app['translator'])) {
$twig->addExtension(new TranslationExtension($app['translator']));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment