class TraceableContainer in Devel 4.x
Same name and namespace in other branches
- 8.3 webprofiler/src/DependencyInjection/TraceableContainer.php \Drupal\webprofiler\DependencyInjection\TraceableContainer
- 8 webprofiler/src/DependencyInjection/TraceableContainer.php \Drupal\webprofiler\DependencyInjection\TraceableContainer
- 8.2 webprofiler/src/DependencyInjection/TraceableContainer.php \Drupal\webprofiler\DependencyInjection\TraceableContainer
Extends the Drupal container class to trace service instantiations.
Hierarchy
- class \Drupal\Component\DependencyInjection\Container implements \Symfony\Component\DependencyInjection\ContainerInterface, \Symfony\Contracts\Service\ResetInterface
- class \Drupal\Core\DependencyInjection\Container
- class \Drupal\webprofiler\DependencyInjection\TraceableContainer
- class \Drupal\Core\DependencyInjection\Container
Expanded class hierarchy of TraceableContainer
1 file declares its use of TraceableContainer
- ServicesDataCollector.php in webprofiler/
src/ DataCollector/ ServicesDataCollector.php
File
- webprofiler/
src/ DependencyInjection/ TraceableContainer.php, line 11
Namespace
Drupal\webprofiler\DependencyInjectionView source
class TraceableContainer extends Container {
/**
* @var array
*/
protected $tracedData;
/**
* @var \Symfony\Component\Stopwatch\Stopwatch
*/
private $stopwatch = NULL;
/**
* @var bool
*/
private $hasStopwatch = FALSE;
/**
* @param string $id
* @param int $invalidBehavior
*
* @return object
*/
public function get($id, $invalidBehavior = self::EXCEPTION_ON_INVALID_REFERENCE) {
if (!$this->stopwatch && $this
->has('stopwatch')) {
$this->stopwatch = parent::get('stopwatch');
$this->stopwatch
->openSection();
$this->hasStopwatch = TRUE;
}
if ('stopwatch' === $id) {
return $this->stopwatch;
}
Timer::start($id);
if ($this->hasStopwatch) {
$e = $this->stopwatch
->start($id, 'service');
}
$service = parent::get($id, $invalidBehavior);
$this->tracedData[$id] = Timer::stop($id);
if ($this->hasStopwatch && $e
->isStarted()) {
$e
->stop();
}
return $service;
}
/**
* @return array
*/
public function getTracedData() {
return $this->tracedData;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
Container:: |
protected | property | The aliases of the container. | |
Container:: |
protected | property | Whether the container parameters can still be changed. | |
Container:: |
protected | property | The currently loading services. | |
Container:: |
protected | property | The parameters of the container. | |
Container:: |
protected | property | The instantiated private services. | |
Container:: |
protected | property | The service definitions of the container. | |
Container:: |
protected | property | The instantiated services. | |
Container:: |
protected | function | Creates a service from a service definition. | 1 |
Container:: |
protected | function | Provides alternatives for a given array and key. | |
Container:: |
public | function | ||
Container:: |
protected | function | Provides alternatives in case a parameter was not found. | |
Container:: |
protected | function | Provides alternatives in case a service was not found. | |
Container:: |
public | function | Gets all defined service IDs. | |
Container:: |
public | function | ||
Container:: |
public | function | ||
Container:: |
public | function | ||
Container:: |
public | function | Resets shared services from the container. | |
Container:: |
protected | function | Resolves arguments that represent services or variables to the real values. | 1 |
Container:: |
public | function |
Overrides Container:: |
|
Container:: |
public | function | ||
Container:: |
private | function | Ensure that cloning doesn't work. | |
Container:: |
public | function | Constructs a new Container instance. | 1 |
Container:: |
public | function | ||
TraceableContainer:: |
private | property | ||
TraceableContainer:: |
private | property | ||
TraceableContainer:: |
protected | property | ||
TraceableContainer:: |
public | function |
Overrides Container:: |
|
TraceableContainer:: |
public | function |