public function postModule(PostModuleEvent $event) { $pageModuleWrapper = $event->getModuleWrapper(); $queryCount = $event->getExtra('module_profiler.query_count'); $time = microtime(true) - $event->getExtra('module_profiler.time'); $userTime = Helper::getCpuTime('u') - $event->getExtra('module_profiler.user_time'); $systemTime = Helper::getCpuTime('s') - $event->getExtra('module_profiler.system_time'); $memoryUsage = memory_get_usage(true) - $event->getExtra('module_profiler.memory_usage'); $sqlQueries = $queryCount !== null ? Propel::getQueryCount() - $queryCount : null; if ($userTime + $systemTime > $this->cpuLimit || $time > $this->timeLimit) { $this->logger->warning('Module generation time exceeded limit'); } if ($memoryUsage > $this->memoryLimit) { $this->logger->warning('Module memory usage exceeded limit'); } if ($sqlQueries > $this->sqlLimit) { $this->logger->warning('Module sql query count exceeded limit'); } // add module debug info $this->moduleDebugInfo[] = array($pageModuleWrapper->getName(), $pageModuleWrapper->getClassName(), $pageModuleWrapper->getTemplate(), $pageModuleWrapper->getTarget(), (bool) $event->getExtra('module_cacher.cached'), round($time * 1000.0), round(($userTime + $systemTime) * 1000.0), Helper::humanReadableBytes($memoryUsage), Helper::humanReadableBytes(memory_get_peak_usage(true)), $sqlQueries !== null ? $sqlQueries : 'n/a'); // Remove values to prevent caching $extras = $event->getExtras(); unset($extras['module_profiler.time']); unset($extras['module_profiler.query_count']); unset($extras['module_profiler.user_time']); unset($extras['module_profiler.system_time']); unset($extras['module_profiler.memory_usage']); $event->setExtras($extras); }
public function postModule(PostModuleEvent $event) { if (!$event->getExtra('module_cacher.cached')) { /** @var \Curry\Module\CacheProperties $cacheProperties */ $cacheProperties = $event->getExtra('module_cacher.properties'); if ($cacheProperties !== null) { $cacheName = $event->getExtra('module_cacher.name'); $cache = array('content' => $event->getContent(), 'extra' => $event->getExtras()); $this->cache->save($cache, $cacheName, array(), $cacheProperties->getLifetime()); } } }