- /** @var ICanHandleRequests $module */
- return $this->dice->create($module_class, $module_parameters);
+ $stamp = microtime(true);
+
+ try {
+ /** @var ICanHandleRequests $module */
+ return $this->dice->create($module_class, $module_parameters);
+ } finally {
+ if ($this->dice_profiler_threshold > 0) {
+ $dur = floatval(microtime(true) - $stamp);
+ if ($dur >= $this->dice_profiler_threshold) {
+ $this->logger->warning('Dice module creation lasts too long.', ['duration' => round($dur, 3), 'module' => $module_class, 'parameters' => $module_parameters]);
+ }
+ }
+ }