[ZendBundle] added an option to register zend logger as an error handler
This commit is contained in:
parent
e4b3d7c9c8
commit
d40d1746e0
10
src/Symfony/Bundle/ZendBundle/DependencyInjection/ZendExtension.php
Normal file → Executable file
10
src/Symfony/Bundle/ZendBundle/DependencyInjection/ZendExtension.php
Normal file → Executable file
@ -52,6 +52,16 @@ class ZendExtension extends Extension
|
|||||||
if (isset($config['path'])) {
|
if (isset($config['path'])) {
|
||||||
$container->setParameter('zend.logger.path', $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');
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
1
src/Symfony/Bundle/ZendBundle/Resources/config/logger.xml
Normal file → Executable file
1
src/Symfony/Bundle/ZendBundle/Resources/config/logger.xml
Normal file → Executable file
@ -7,6 +7,7 @@
|
|||||||
<parameters>
|
<parameters>
|
||||||
<parameter key="zend.logger.class">Symfony\Bundle\ZendBundle\Logger\Logger</parameter>
|
<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.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.debug.class">Symfony\Bundle\ZendBundle\Logger\DebugLogger</parameter>
|
||||||
<parameter key="zend.logger.writer.filesystem.class">Zend\Log\Writer\Stream</parameter>
|
<parameter key="zend.logger.writer.filesystem.class">Zend\Log\Writer\Stream</parameter>
|
||||||
<parameter key="zend.formatter.filesystem.class">Zend\Log\Formatter\Simple</parameter>
|
<parameter key="zend.formatter.filesystem.class">Zend\Log\Formatter\Simple</parameter>
|
||||||
|
37
src/Symfony/Component/DependencyInjection/Definition.php
Normal file → Executable file
37
src/Symfony/Component/DependencyInjection/Definition.php
Normal file → Executable file
@ -185,6 +185,43 @@ class Definition
|
|||||||
return $this;
|
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.
|
* Gets the methods to call after service initialization.
|
||||||
*
|
*
|
||||||
|
Reference in New Issue
Block a user