Lsrur\Inspector\inspector::injectInspection PHP Method

injectInspection() public method

Inject Inspector into Response
public injectInspection ( [type] $request, [type] $response ) : [type]
$request [type]
$response [type]
return [type]
    public function injectInspection($request, $response)
    {
        $this->response = $response;
        if (!$this->getInjectorType($request, $response)) {
            return;
        }
        switch ($this->injectorType) {
            case 'redirect':
                // Put the collectors bag into a session flash
                $collectorsData = $this->collectorMan->getScripts('inspector', 'REDIRECT:' . $request->url() . ' -> ' . $response->getTargetUrl(), $response->getStatusCode());
                $request->session()->flash('LARAVEL_INSPECTOR_REDIRECT', $collectorsData);
                break;
            case 'view':
                $collectorsData = $this->collectorMan->getScripts('inspector', 'VIEW:' . $response->getOriginalContent()->getName(), $response->getStatusCode());
                // if there is a flashed inspection (redirect), append it to this response
                $redirectData = null;
                if (isset($request->session) && $request->session()->has('LARAVEL_INSPECTOR_REDIRECT')) {
                    $redirectData = $request->session()->get('LARAVEL_INSPECTOR_REDIRECT');
                    session()->forget('LARAVEL_INSPECTOR_REDIRECT');
                }
                $inspectionBag = (string) view('inspector::view_console', ['redirectData' => $redirectData, 'collectorsData' => $collectorsData]);
                $content = $response->getContent();
                // Ensure string content
                if (is_string($content)) {
                    $content = str_replace('</body>', $inspectionBag . '</body>', $response->getContent());
                    $response->setContent($content);
                }
                break;
            case 'json':
                header('Content-Type: application/json', true);
                $content = json_decode($this->response->getContent(), true) ?: [];
                if ($request->headers->has('laravel-inspector')) {
                    $content['LARAVEL_INSPECTOR'] = $this->collectorMan->getScripts('inspector', $request->method() . ':' . $request->url(), $response->getStatusCode());
                } else {
                    $content['LARAVEL_INSPECTOR'] = $this->collectorMan->getPreJson('inspector');
                }
                $response->setContent(json_encode($content));
                break;
        }
    }