|
@@ -22,9 +22,8 @@ use Symfony\Component\DependencyInjection\Compiler\PassConfig;
|
|
|
class Compiler
|
|
|
{
|
|
|
private $passConfig;
|
|
|
- private $currentPass;
|
|
|
- private $currentStartTime;
|
|
|
private $log;
|
|
|
+ private $loggingFormatter;
|
|
|
private $serviceReferenceGraph;
|
|
|
|
|
|
/**
|
|
@@ -34,6 +33,7 @@ class Compiler
|
|
|
{
|
|
|
$this->passConfig = new PassConfig();
|
|
|
$this->serviceReferenceGraph = new ServiceReferenceGraph();
|
|
|
+ $this->loggingFormatter = new LoggingFormatter();
|
|
|
$this->log = array();
|
|
|
}
|
|
|
|
|
@@ -57,6 +57,16 @@ class Compiler
|
|
|
return $this->serviceReferenceGraph;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Returns the logging formatter which can be used by compilation passes.
|
|
|
+ *
|
|
|
+ * @return LoggingFormatter
|
|
|
+ */
|
|
|
+ public function getLoggingFormatter()
|
|
|
+ {
|
|
|
+ return $this->loggingFormatter;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* Adds a pass to the PassConfig.
|
|
|
*
|
|
@@ -71,7 +81,7 @@ class Compiler
|
|
|
/**
|
|
|
* Adds a log message.
|
|
|
*
|
|
|
- * @param string $string The log message
|
|
|
+ * @param string $string The log message
|
|
|
*/
|
|
|
public function addLogMessage($string)
|
|
|
{
|
|
@@ -91,36 +101,15 @@ class Compiler
|
|
|
/**
|
|
|
* Run the Compiler and process all Passes.
|
|
|
*
|
|
|
- * @param ContainerBuilder $container
|
|
|
+ * @param ContainerBuilder $container
|
|
|
*/
|
|
|
public function compile(ContainerBuilder $container)
|
|
|
{
|
|
|
+ $start = microtime(true);
|
|
|
foreach ($this->passConfig->getPasses() as $pass) {
|
|
|
- $this->startPass($pass);
|
|
|
$pass->process($container);
|
|
|
- $this->endPass($pass);
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- /**
|
|
|
- * Starts an individual pass.
|
|
|
- *
|
|
|
- * @param CompilerPassInterface $pass The pass to start
|
|
|
- */
|
|
|
- private function startPass(CompilerPassInterface $pass)
|
|
|
- {
|
|
|
- $this->currentPass = $pass;
|
|
|
- $this->currentStartTime = microtime(true);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Ends an individual pass.
|
|
|
- *
|
|
|
- * @param CompilerPassInterface $pass The compiler pass
|
|
|
- */
|
|
|
- private function endPass(CompilerPassInterface $pass)
|
|
|
- {
|
|
|
- $this->currentPass = null;
|
|
|
- $this->addLogMessage(sprintf('%s finished in %.3fs', get_class($pass), microtime(true) - $this->currentStartTime));
|
|
|
+ $this->addLogMessage(sprintf('Compilation finished in %.3fs.', microtime(true) - $start));
|
|
|
}
|
|
|
}
|