Add support for detection of Zend OPcache as an accelerator

This commit is contained in:
Andrew Udvare 2013-04-14 21:00:45 -07:00
parent 46efc9b4ac
commit 8e9cb3b0a7
3 changed files with 33 additions and 16 deletions

View File

@ -171,6 +171,10 @@
<th>APC</th> <th>APC</th>
<td>{{ collector.hasapc ? 'enabled' : 'disabled' }}</td> <td>{{ collector.hasapc ? 'enabled' : 'disabled' }}</td>
</tr> </tr>
<tr>
<th>Zend OPcache</th>
<td>{{ collector.haszendopcache ? 'enabled' : 'disabled' }}</td>
</tr>
<tr> <tr>
<th>EAccelerator</th> <th>EAccelerator</th>
<td>{{ collector.haseaccelerator ? 'enabled' : 'disabled' }}</td> <td>{{ collector.haseaccelerator ? 'enabled' : 'disabled' }}</td>

View File

@ -56,21 +56,22 @@ class ConfigDataCollector extends DataCollector
public function collect(Request $request, Response $response, \Exception $exception = null) public function collect(Request $request, Response $response, \Exception $exception = null)
{ {
$this->data = array( $this->data = array(
'app_name' => $this->name, 'app_name' => $this->name,
'app_version' => $this->version, 'app_version' => $this->version,
'token' => $response->headers->get('X-Debug-Token'), 'token' => $response->headers->get('X-Debug-Token'),
'symfony_version' => Kernel::VERSION, 'symfony_version' => Kernel::VERSION,
'name' => isset($this->kernel) ? $this->kernel->getName() : 'n/a', 'name' => isset($this->kernel) ? $this->kernel->getName() : 'n/a',
'env' => isset($this->kernel) ? $this->kernel->getEnvironment() : 'n/a', 'env' => isset($this->kernel) ? $this->kernel->getEnvironment() : 'n/a',
'debug' => isset($this->kernel) ? $this->kernel->isDebug() : 'n/a', 'debug' => isset($this->kernel) ? $this->kernel->isDebug() : 'n/a',
'php_version' => PHP_VERSION, 'php_version' => PHP_VERSION,
'xdebug_enabled' => extension_loaded('xdebug'), 'xdebug_enabled' => extension_loaded('xdebug'),
'eaccel_enabled' => extension_loaded('eaccelerator') && ini_get('eaccelerator.enable'), 'eaccel_enabled' => extension_loaded('eaccelerator') && ini_get('eaccelerator.enable'),
'apc_enabled' => extension_loaded('apc') && ini_get('apc.enabled'), 'apc_enabled' => extension_loaded('apc') && ini_get('apc.enabled'),
'xcache_enabled' => extension_loaded('xcache') && ini_get('xcache.cacher'), 'xcache_enabled' => extension_loaded('xcache') && ini_get('xcache.cacher'),
'wincache_enabled' => extension_loaded('wincache') && ini_get('wincache.ocenabled'), 'wincache_enabled' => extension_loaded('wincache') && ini_get('wincache.ocenabled'),
'bundles' => array(), 'zend_opcache_enabled' => extension_loaded('Zend OPcache') && ini_get('opcache.enable'),
'sapi_name' => php_sapi_name() 'bundles' => array(),
'sapi_name' => php_sapi_name()
); );
if (isset($this->kernel)) { if (isset($this->kernel)) {
@ -180,6 +181,16 @@ class ConfigDataCollector extends DataCollector
return $this->data['apc_enabled']; return $this->data['apc_enabled'];
} }
/**
* Returns true if Zend OPcache is enabled
*
* @return Boolean true if Zend OPcache is enabled, false otherwise
*/
public function hasZendOpcache()
{
return $this->data['zend_opcache_enabled'];
}
/** /**
* Returns true if XCache is enabled. * Returns true if XCache is enabled.
* *
@ -207,7 +218,7 @@ class ConfigDataCollector extends DataCollector
*/ */
public function hasAccelerator() public function hasAccelerator()
{ {
return $this->hasApc() || $this->hasEAccelerator() || $this->hasXCache() || $this->hasWinCache(); return $this->hasApc() || $this->hasZendOpcache() || $this->hasEAccelerator() || $this->hasXCache() || $this->hasWinCache();
} }
public function getBundles() public function getBundles()

View File

@ -53,6 +53,8 @@ class ConfigDataCollectorTest extends \PHPUnit_Framework_TestCase
|| ||
(extension_loaded('apc') && ini_get('apc.enabled')) (extension_loaded('apc') && ini_get('apc.enabled'))
|| ||
(extension_loaded('Zend OPcache') && ini_get('opcache.enable'))
||
(extension_loaded('xcache') && ini_get('xcache.cacher')) (extension_loaded('xcache') && ini_get('xcache.cacher'))
|| ||
(extension_loaded('wincache') && ini_get('wincache.ocenabled')))) { (extension_loaded('wincache') && ini_get('wincache.ocenabled')))) {