コード例 #1
0
 /**
  * @param  Request      $request
  * @return JsonResponse
  */
 public function logAction(Request $request)
 {
     if ($request->request->has('log')) {
         $data = $request->request->get('log');
         $log = new Log();
         $log->setTopic($data['topic'])->setValue($data['value']);
         $this->entityManager->persist($log);
         $this->entityManager->flush($log);
     }
     return JsonResponse::create();
 }
コード例 #2
0
 /**
  * Persist logs to database on a defined period basis
  */
 private function persistLogs()
 {
     if (time() - $this->startTime > self::PERSISTENCE_PERIOD) {
         foreach ($this->logs as $topic => $data) {
             $log = new Log();
             $log->setTopic($topic);
             if (is_numeric($data[0])) {
                 $log->setValue(round(array_sum($data) / count($data), 2));
             } else {
                 $countValues = array_count_values($data);
                 arsort($countValues);
                 $log->setValue(key($countValues));
                 $countValues = [];
             }
             $this->getEntityManager()->persist($log);
         }
         $this->flush();
         $this->logs = [];
         $this->startTime = time();
     }
 }