Example #1
0
 /**
  * Turns off the lights.
  *
  * @param array $options Array of options for disabling certain things during shutdown
  *      Add `'jobs' => true` to disable scheduled jobs
  *      Add `'log_queries' => true` to disable query logging
  */
 public function shutdown($options = array())
 {
     \Events::dispatch('on_shutdown');
     $config = $this['config'];
     if ($this->isInstalled()) {
         if (!isset($options['jobs']) || $options['jobs'] == false) {
             $this->handleScheduledJobs();
         }
         $logger = new Logger();
         $r = Request::getInstance();
         if ($config->get('concrete.log.queries.log') && (!isset($options['log_queries']) || $options['log_queries'] == false)) {
             $connection = Database::getActiveConnection();
             if ($logger->shouldLogQueries($r)) {
                 $loggers = array();
                 $configuration = $connection->getConfiguration();
                 $loggers[] = $configuration->getSQLLogger();
                 $configuration->setSQLLogger(null);
                 if ($config->get('concrete.log.queries.clear_on_reload')) {
                     $logger->clearQueryLog();
                 }
                 $logger->write($loggers);
             }
         }
         foreach (\Database::getConnections() as $connection) {
             $connection->close();
         }
     }
     if ($config->get('concrete.cache.overrides')) {
         Environment::saveCachedEnvironmentObject();
     } else {
         $env = Environment::get();
         $env->clearOverrideCache();
     }
     exit;
 }