/** * Store a snapshot and then return its id. * * @param array $snapshot * @param array $stackTrace * @param array|null $additionalData * @return SnapshotStore */ protected function storeSnapshot(array $snapshot, array $stackTrace, $additionalData = null) { $data['snapshot'] = $snapshot; $data['snapshot']['additional_data'] = !is_null($additionalData) ? json_encode($additionalData) : null; $data['items'] = $this->transformStackTrace($stackTrace); return $this->store->capture($data); }
/** * Capture the current state of the application. */ public function capture() { $args = func_get_args(); $additionalData = []; $stackTrace = debug_backtrace(); $snapshot = $this->getSnapshotData($this->getCalledFile($stackTrace), $this->getCalledLine($stackTrace)); foreach ($args as $arg) { if ($arg instanceof \Exception) { $stackTrace = $arg->getTrace(); $snapshot['message'] = $arg->getMessage(); $snapshot['code'] = $arg->getCode(); } if (is_array($arg)) { $additionalData = array_merge($additionalData, $arg); } } $data['snapshot'] = $snapshot; $data['snapshot']['additional_data'] = isset($additionalData) ? json_encode($additionalData) : null; $data['items'] = $this->transformStackTrace($stackTrace); $this->store->capture($data); }