[ZendBundle] added an option to register zend logger as an error handler

This commit is contained in:
Noël GUILBERT 2010-08-30 13:51:19 +02:00 committed by Fabien Potencier
parent e4b3d7c9c8
commit d40d1746e0
3 changed files with 48 additions and 0 deletions

View File

@ -52,6 +52,16 @@ class ZendExtension extends Extension
if (isset($config['path'])) {
$container->setParameter('zend.logger.path', $config['path']);
}
if (isset($config['log_errors'])) {
$definition = $container->findDefinition('zend.logger');
if (false === $config['log_errors'] && $definition->hasMethodCall('registerErrorHandler')) {
$container->findDefinition('zend.logger')->removeMethodCall('registerErrorHandler');
}
else {
$container->findDefinition('zend.logger')->addMethodCall('registerErrorHandler');
}
}
}
/**

View File

@ -7,6 +7,7 @@
<parameters>
<parameter key="zend.logger.class">Symfony\Bundle\ZendBundle\Logger\Logger</parameter>
<parameter key="zend.logger.priority" type="constant">Zend\Log\Logger::CRIT</parameter>
<parameter key="zend.logger.log_errors">true</parameter>
<parameter key="zend.logger.writer.debug.class">Symfony\Bundle\ZendBundle\Logger\DebugLogger</parameter>
<parameter key="zend.logger.writer.filesystem.class">Zend\Log\Writer\Stream</parameter>
<parameter key="zend.formatter.filesystem.class">Zend\Log\Formatter\Simple</parameter>

View File

@ -185,6 +185,43 @@ class Definition
return $this;
}
/**
* Removes a method to call after service initialization.
*
* @param string $method The method name to remove
*
* @return Definition The current instance
*/
public function removeMethodCall($method)
{
foreach ($this->calls as $i => $call) {
if ($call[0] === $method) {
unset($this->calls[$i]);
break;
}
}
return $this;
}
/**
* Check if the current definition has a given method to call after service initialization.
*
* @param string $method The method name to search for
*
* @return boolean
*/
public function hasMethodCall($method)
{
foreach ($this->calls as $i => $call) {
if ($call[0] === $method) {
return true;
}
}
return false;
}
/**
* Gets the methods to call after service initialization.
*