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,9 +43,11 @@ class MonologServiceProvider implements ServiceProviderInterface, BootableProvid ...@@ -43,9 +43,11 @@ class MonologServiceProvider implements ServiceProviderInterface, BootableProvid
return new DebugHandler($level); return new DebugHandler($level);
}; };
$app['monolog.not_found_activation_strategy'] = function () use ($app) { if (isset($app['request_stack'])) {
return new NotFoundActivationStrategy($app['request_stack'], array('^/'), $app['monolog.level']); $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'; $app['monolog.logger.class'] = $bridge ? 'Symfony\Bridge\Monolog\Logger' : 'Monolog\Logger';
...@@ -60,6 +62,10 @@ class MonologServiceProvider implements ServiceProviderInterface, BootableProvid ...@@ -60,6 +62,10 @@ class MonologServiceProvider implements ServiceProviderInterface, BootableProvid
$log->pushHandler($handler); $log->pushHandler($handler);
if ($app['debug'] && isset($app['monolog.handler.debug'])) {
$log->pushHandler($app['monolog.handler.debug']);
}
return $log; return $log;
}; };
...@@ -67,7 +73,7 @@ class MonologServiceProvider implements ServiceProviderInterface, BootableProvid ...@@ -67,7 +73,7 @@ class MonologServiceProvider implements ServiceProviderInterface, BootableProvid
return new LineFormatter(); return new LineFormatter();
}; };
$app['monolog.handler'] = function () use ($app) { $app['monolog.handler'] = $defaultHandler = function () use ($app) {
$level = MonologServiceProvider::translateLevel($app['monolog.level']); $level = MonologServiceProvider::translateLevel($app['monolog.level']);
$handler = new Handler\StreamHandler($app['monolog.logfile'], $level, $app['monolog.bubble'], $app['monolog.permission']); $handler = new Handler\StreamHandler($app['monolog.logfile'], $level, $app['monolog.bubble'], $app['monolog.permission']);
...@@ -76,17 +82,14 @@ class MonologServiceProvider implements ServiceProviderInterface, BootableProvid ...@@ -76,17 +82,14 @@ class MonologServiceProvider implements ServiceProviderInterface, BootableProvid
return $handler; return $handler;
}; };
$app['monolog.handlers'] = function () use ($app) { $app['monolog.handlers'] = function () use ($app, $defaultHandler) {
$handlers = array(); $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']; $handlers[] = $app['monolog.handler'];
} }
if ($app['debug'] && isset($app['monolog.handler.debug'])) {
$handlers[] = $app['monolog.handler.debug'];
}
return $handlers; return $handlers;
}; };
......
...@@ -54,9 +54,11 @@ class TranslationServiceProvider implements ServiceProviderInterface, EventListe ...@@ -54,9 +54,11 @@ class TranslationServiceProvider implements ServiceProviderInterface, EventListe
return $translator; return $translator;
}; };
$app['translator.listener'] = function ($app) { if (isset($app['request_stack'])) {
return new TranslatorListener($app['translator'], $app['request_stack']); $app['translator.listener'] = function ($app) {
}; return new TranslatorListener($app['translator'], $app['request_stack']);
};
}
$app['translator.message_selector'] = function () { $app['translator.message_selector'] = function () {
return new MessageSelector(); return new MessageSelector();
...@@ -73,6 +75,8 @@ class TranslationServiceProvider implements ServiceProviderInterface, EventListe ...@@ -73,6 +75,8 @@ class TranslationServiceProvider implements ServiceProviderInterface, EventListe
public function subscribe(Container $app, EventDispatcherInterface $dispatcher) public function subscribe(Container $app, EventDispatcherInterface $dispatcher)
{ {
$dispatcher->addSubscriber($app['translator.listener']); if (isset($app['translator.listener'])) {
$dispatcher->addSubscriber($app['translator.listener']);
}
} }
} }
...@@ -44,7 +44,9 @@ class TwigServiceProvider implements ServiceProviderInterface ...@@ -44,7 +44,9 @@ class TwigServiceProvider implements ServiceProviderInterface
if (isset($app['security.token_storage'])) { if (isset($app['security.token_storage'])) {
$var->setTokenStorage($app['security.token_storage']); $var->setTokenStorage($app['security.token_storage']);
} }
$var->setRequestStack($app['request_stack']); if (isset($app['request_stack'])) {
$var->setRequestStack($app['request_stack']);
}
$var->setDebug($app['debug']); $var->setDebug($app['debug']);
return $var; return $var;
...@@ -67,8 +69,10 @@ class TwigServiceProvider implements ServiceProviderInterface ...@@ -67,8 +69,10 @@ class TwigServiceProvider implements ServiceProviderInterface
} }
if (class_exists('Symfony\Bridge\Twig\Extension\RoutingExtension')) { if (class_exists('Symfony\Bridge\Twig\Extension\RoutingExtension')) {
$twig->addExtension(new HttpFoundationExtension($app['request_stack'])); if (isset($app['request_stack'])) {
$twig->addExtension(new RoutingExtension($app['url_generator'])); $twig->addExtension(new HttpFoundationExtension($app['request_stack']));
$twig->addExtension(new RoutingExtension($app['url_generator']));
}
if (isset($app['translator'])) { if (isset($app['translator'])) {
$twig->addExtension(new TranslationExtension($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