Full Code of fruitcake/laravel-debugbar for AI

master dc1ef5dc7a54 cached
152 files
562.9 KB
160.9k tokens
533 symbols
1 requests
Download .txt
Showing preview only (603K chars total). Download the full file or copy to clipboard to get everything.
Repository: fruitcake/laravel-debugbar
Branch: master
Commit: dc1ef5dc7a54
Files: 152
Total size: 562.9 KB

Directory structure:
gitextract_327ueo68/

├── .editorconfig
├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   ├── release-drafter.yml
│   ├── stale.yml
│   └── workflows/
│       ├── build-docs.yml
│       ├── fix-code-style.yml
│       ├── integration-tests.yml
│       ├── livewire-tests.yml
│       ├── release-drafter.yml
│       ├── static-analysis.yml
│       ├── unit-tests.yml
│       └── update-changelog.yaml
├── .gitignore
├── .nvmrc
├── CHANGELOG.md
├── LICENSE
├── SECURITY.md
├── UPGRADE.md
├── build/
│   ├── build-docs.php
│   └── build-icons.js
├── composer.json
├── config/
│   └── debugbar.php
├── database/
│   └── migrations/
│       └── 2014_12_01_120000_create_phpdebugbar_storage_table.php
├── docs/
│   ├── CNAME
│   ├── assets/
│   │   └── extra.css
│   ├── collectors.md
│   ├── features.md
│   ├── index.md
│   ├── installation.md
│   ├── overrides/
│   │   ├── main.html
│   │   └── shortcodes.py
│   └── usage.md
├── eslint.config.js
├── mkdocs.yml
├── package.json
├── phpstan.neon
├── phpunit.xml.dist
├── pint.json
├── readme.md
├── resources/
│   ├── cache/
│   │   └── widget.js
│   ├── laravel-debugbar.css
│   ├── laravel-icons.css
│   └── queries/
│       └── widget.js
├── src/
│   ├── CollectorProviders/
│   │   ├── AbstractCollectorProvider.php
│   │   ├── AuthCollectorProvider.php
│   │   ├── CacheCollectorProvider.php
│   │   ├── ConfigCollectorProvider.php
│   │   ├── DatabaseCollectorProvider.php
│   │   ├── EventsCollectorCollectorProvider.php
│   │   ├── ExceptionsCollectorProvider.php
│   │   ├── GateCollectorProvider.php
│   │   ├── HttpClientCollectorProvider.php
│   │   ├── InertiaCollectorProvider.php
│   │   ├── JobsCollectorProvider.php
│   │   ├── LaravelCollectorProvider.php
│   │   ├── LivewireCollectorProvider.php
│   │   ├── LogCollectorProvider.php
│   │   ├── LogsCollectorProvider.php
│   │   ├── MailCollectorProvider.php
│   │   ├── MemoryCollectorProvider.php
│   │   ├── MessagesCollectorProvider.php
│   │   ├── ModelsCollectorProvider.php
│   │   ├── PennantCollectorProvider.php
│   │   ├── PhpInfoCollectorProvider.php
│   │   ├── RequestCollectorProvider.php
│   │   ├── RouteCollectorProvider.php
│   │   ├── SessionCollectorProvider.php
│   │   ├── TimeCollectorProvider.php
│   │   └── ViewsCollectorProvider.php
│   ├── Console/
│   │   └── ClearCommand.php
│   ├── Controllers/
│   │   ├── AssetController.php
│   │   ├── CacheController.php
│   │   ├── OpenHandlerController.php
│   │   ├── QueriesController.php
│   │   └── TelescopeController.php
│   ├── DataCollector/
│   │   ├── CacheCollector.php
│   │   ├── ConfigCollector.php
│   │   ├── EventCollector.php
│   │   ├── GateCollector.php
│   │   ├── HttpClientCollector.php
│   │   ├── InertiaCollector.php
│   │   ├── LaravelCollector.php
│   │   ├── LivewireCollector.php
│   │   ├── LogsCollector.php
│   │   ├── MultiAuthCollector.php
│   │   ├── PennantCollector.php
│   │   ├── QueryCollector.php
│   │   ├── RequestCollector.php
│   │   ├── RouteCollector.php
│   │   ├── SessionCollector.php
│   │   └── ViewCollector.php
│   ├── Facades/
│   │   └── Debugbar.php
│   ├── LaravelDebugbar.php
│   ├── LaravelHttpDriver.php
│   ├── Middleware/
│   │   ├── DebugbarEnabled.php
│   │   └── StopRecordingTelescope.php
│   ├── Requests/
│   │   ├── AssetRequest.php
│   │   ├── CacheDeleteRequest.php
│   │   ├── OpenHandlerRequest.php
│   │   └── QueriesExplainRequest.php
│   ├── ServiceProvider.php
│   ├── Support/
│   │   ├── Clockwork/
│   │   │   ├── ClockworkCollector.php
│   │   │   └── Converter.php
│   │   ├── Explain.php
│   │   └── Octane/
│   │       └── ResetDebugbar.php
│   ├── Twig/
│   │   └── Extension/
│   │       ├── Debug.php
│   │       ├── Dump.php
│   │       └── Stopwatch.php
│   ├── debugbar-routes.php
│   └── helpers.php
└── tests/
    ├── BrowserTestCase.php
    ├── Controllers/
    │   ├── AssetControllerTest.php
    │   ├── CacheControllerTest.php
    │   ├── DebugbarEnabledMiddlewareTest.php
    │   ├── OpenHandlerControllerTest.php
    │   └── QueriesControllerTest.php
    ├── DataCollector/
    │   ├── CacheCollectorTest.php
    │   ├── GateCollectorTest.php
    │   ├── HttpClientCollectorTest.php
    │   ├── JobsCollectorTest.php
    │   ├── Livewire/
    │   │   └── DummyComponent.php
    │   ├── LivewireCollectorTest.php
    │   ├── MailCollectorTest.php
    │   ├── ModelsCollectorTest.php
    │   ├── PennantCollectorTest.php
    │   ├── QueryCollectorRuntimeDatabaseTest.php
    │   ├── QueryCollectorTest.php
    │   ├── RouteCollectorTest.php
    │   ├── SessionCollectorTest.php
    │   └── ViewCollectorTest.php
    ├── DataFormatter/
    │   └── QueryFormatterTest.php
    ├── DebugbarBrowserTest.php
    ├── DebugbarDocsTest.php
    ├── DebugbarTest.php
    ├── ErrorHandlerTest.php
    ├── Jobs/
    │   ├── OrderShipped.php
    │   └── SendNotification.php
    ├── LivewireBrowserTest.php
    ├── Mocks/
    │   ├── MockController.php
    │   ├── MockMiddleware.php
    │   └── MockViewComponent.php
    ├── Models/
    │   ├── Person.php
    │   └── User.php
    ├── Support/
    │   └── ExplainTest.php
    ├── TestCase.php
    └── resources/
        └── views/
            ├── ajax.blade.php
            ├── custom-prototype.blade.php
            ├── dashboard.blade.php
            ├── layouts/
            │   └── app.blade.php
            ├── livewire-component.blade.php
            └── query.blade.php

================================================
FILE CONTENTS
================================================

================================================
FILE: .editorconfig
================================================
root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false

================================================
FILE: .gitattributes
================================================
* text=auto

/.github export-ignore
/build export-ignore
/docs export-ignore
/tests export-ignore
.editorconfig export-ignore
.gitattributes export-ignore
.gitignore export-ignore
/CHANGELOG.md export-ignore
phpunit.xml.dist export-ignore
/phpstan.neon export-ignore
/phpstan-baseline.neon export-ignore
/.nvmrc export-ignore
/eslint.config.js export-ignore
/mkdocs.yml export-ignore
/package.json export-ignore
/package-lock.json export-ignore
/pint.json export-ignore
/UPGRADE.md export-ignore


================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms

github: barryvdh
custom: ['https://fruitcake.nl']



================================================
FILE: .github/release-drafter.yml
================================================
template: |
  ## What’s Changed

  $CHANGES


================================================
FILE: .github/stale.yml
================================================
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 60
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
  - bug
  - enhancement
  - discussion
# Label to use when marking an issue as stale
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
  This issue has been automatically marked as stale because it has not had
  recent activity. It will be closed if no further activity occurs. 
  
  If this issue is still present on the latest version of this library on supported Laravel versions, 
  please let us know by replying to this issue so we can investigate further.
  
  Thank you for your contribution! Apologies for any delayed response on our side.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false
# Limit to only `issues` or `pulls`
only: issues


================================================
FILE: .github/workflows/build-docs.yml
================================================
name: Build docs
on:
  workflow_dispatch:
  push:
    branches:
      - master
    paths:
      - 'resources/**'
      - 'docs/**'
      - 'tests/DebugbarDocsTest.php'
permissions:
  contents: write
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6

      - name: Configure Git Credentials
        run: |
          git config user.name github-actions[bot]
          git config user.email 41898282+github-actions[bot]@users.noreply.github.com

      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: 8.2
          coverage: none
          tools: composer:v2

      - name: Install dependencies
        run: composer update --prefer-dist --no-progress

      - name: Run docs test
        run: php vendor/bin/phpunit --filter=testItInjectsOnDocs

      - name: Run build script
        run: php build/build-docs.php

      - uses: actions/setup-python@v6
        with:
          python-version: 3.x

      - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV

      - uses: actions/cache@v5
        with:
          key: mkdocs-material-${{ env.cache_id }}
          path: .cache
          restore-keys: |
            mkdocs-material-

      - run: pip install mkdocs-material

      - run: mkdocs gh-deploy --force


================================================
FILE: .github/workflows/fix-code-style.yml
================================================
name: Fix Code Style

on:
    push:
        branches:
            - master
        paths:
            - '**.php'
    pull_request:
        branches:
            - "*"
        paths:
            - '**.php'

permissions:
    contents: write

jobs:
    cs-fix:
        runs-on: ubuntu-24.04
        timeout-minutes: 15
        env:
            COMPOSER_NO_INTERACTION: 1

        steps:
            - name: Checkout code
              uses: actions/checkout@v6

            - name: Setup PHP
              uses: shivammathur/setup-php@v2
              with:
                  php-version: 8.4
                  coverage: none
                  tools: composer:v2

            - name: Install dependencies
              run: composer update --prefer-dist --no-progress

            - name: Fix Code Style
              run: vendor/bin/pint

            - name: Commit changes
              uses: stefanzweifel/git-auto-commit-action@v7
              with:
                  commit_message: Fix CS


================================================
FILE: .github/workflows/integration-tests.yml
================================================
name: Integration Tests

on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - "*"

jobs:
  php-laravel-integration-tests:
    runs-on: ubuntu-24.04

    timeout-minutes: 15

    env:
      COMPOSER_NO_INTERACTION: 1

    strategy:
      fail-fast: false
      matrix:
        php: [8.5, 8.4, 8.3, 8.2]
        laravel: ['11.*', '12.*', '13.*']
        exclude:
          - laravel: 13.*
            php: 8.2

    name: P${{ matrix.php }} - Laravel${{ matrix.laravel }}

    steps:
      - name: Checkout code
        uses: actions/checkout@v6
        with:
          path: src

      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php }}
          coverage: none
          tools: composer:v2

      - name: Install dependencies
        run: |
          composer create-project --prefer-dist laravel/laravel:${{ matrix.laravel }} --stability=dev --no-progress sample
          cd sample
          composer config minimum-stability dev
          composer update --prefer-stable --prefer-dist --no-progress

      - name: Add package from source
        run: |
          cd sample
          sed -e 's|"type": "project",|&\n"repositories": [ { "type": "path", "url": "../src" } ],|' -i composer.json
          composer require --dev "fruitcake/laravel-debugbar:*"

      - name: Execute generate run
        run: |
          cd sample
          mkdir -p "storage/debugbar/" && touch "storage/debugbar/foo.json"
          php artisan debugbar:clear

      - name: Check file count in logs
        run: |
          echo "Files in sample/storage/debugbar/:"
          ls -la "sample/storage/debugbar/"
          FILE_COUNT=$(ls -1q "sample/storage/debugbar/" | wc -l)
          echo "File count: $FILE_COUNT"
          if [ "$FILE_COUNT" -gt 0 ]; then
            echo "ERROR: Expected 0 files but found $FILE_COUNT"
            echo "File contents:"
            for f in sample/storage/debugbar/*; do
              echo "--- $f ---"
              head -c 500 "$f"
              echo ""
            done
            exit 1
          fi


================================================
FILE: .github/workflows/livewire-tests.yml
================================================
name: Livewire Tests

on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - *

jobs:
  unit-tests:
    runs-on: ubuntu-24.04

    timeout-minutes: 15

    env:
      COMPOSER_NO_INTERACTION: 1

    strategy:
      fail-fast: false
      matrix:
        php: [8.2, '8.3', '8.4', '8.5']
        livewire: [^3, ^4]

    name: Livewire${{ matrix.livewire }}

    steps:
      - name: Checkout code
        uses: actions/checkout@v6

      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php }}
          coverage: none
          tools: composer:v2
          extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif

      - name: Install dependencies
        run: |
          composer remove --dev --no-update larastan/larastan phpstan/phpstan-phpunit laravel/pint phpstan/phpstan-strict-rules shipmonk/phpstan-rules
          composer require "livewire/livewire:${{ matrix.livewire }}" --no-interaction --no-update
          composer update --prefer-stable --prefer-dist --no-progress

      - name: Update Dusk Chromedriver
        run: vendor/bin/dusk-updater detect --auto-update

      - name: Execute Unit Tests
        run: composer test

      - name: Upload Failed Screenshots
        uses: actions/upload-artifact@v6
        if: failure()
        with:
          name: screenshots
          path: tests/Browser/screenshots/*


================================================
FILE: .github/workflows/release-drafter.yml
================================================
name: Release Drafter

on:
  push:
    # branches to consider in the event; optional, defaults to all
    branches:
      - master
  # pull_request event is required only for autolabeler
  pull_request:
    # Only following types are handled by the action, but one can default to all as well
    types: [opened, reopened, synchronize]
  # pull_request_target event is required for autolabeler to support PRs from forks
  # pull_request_target:
  #   types: [opened, reopened, synchronize]

permissions:
  contents: read

jobs:
  update_release_draft:
    permissions:
      # write permission is required to create a github release
      contents: write
      # write permission is required for autolabeler
      # otherwise, read permission is required at least
      pull-requests: write
    runs-on: ubuntu-latest
    steps:
      # (Optional) GitHub Enterprise requires GHE_HOST variable set
      #- name: Set GHE_HOST
      #  run: |
      #    echo "GHE_HOST=${GITHUB_SERVER_URL##https:\/\/}" >> $GITHUB_ENV

      # Drafts your next Release notes as Pull Requests are merged into "master"
      - uses: release-drafter/release-drafter@v6
        # (Optional) specify config name to use, relative to .github/. Default: release-drafter.yml
        # with:
        #   config-name: my-config.yml
        #   disable-autolabeler: true
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}


================================================
FILE: .github/workflows/static-analysis.yml
================================================
name: Code Analysis

on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - "*"

jobs:
  static-analysis:
    runs-on: ubuntu-24.04
    timeout-minutes: 15
    env:
      COMPOSER_NO_INTERACTION: 1

    steps:
    - name: Checkout code
      uses: actions/checkout@v6

    - name: Setup PHP
      uses: shivammathur/setup-php@v2
      with:
        php-version: 8.4
        tools: composer:v2
        coverage: none

    - name: Install dependencies
      run: composer update --prefer-stable --prefer-dist --no-interaction --no-progress

    - name: Analyse with PHPStan
      run: vendor/bin/phpstan --no-progress --error-format=github


================================================
FILE: .github/workflows/unit-tests.yml
================================================
name: Unit Tests

on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - '*'
  schedule:
    - cron: '0 0 * * *'

jobs:
  unit-tests:
    runs-on: ubuntu-24.04

    timeout-minutes: 15

    env:
      COMPOSER_NO_INTERACTION: 1

    strategy:
      fail-fast: false
      matrix:
        php: [8.5, 8.4, 8.3, 8.2]
        laravel: [^11, ^12, ^13]
        dependency-version: [prefer-stable]
        exclude:
          - laravel: ^13
            php: 8.2

    name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.dependency-version }}

    steps:
      - name: Checkout code
        uses: actions/checkout@v6

      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php }}
          coverage: none
          tools: composer:v2
          extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif

      - name: Remove incompatible dependencies
        if: matrix.laravel == '^13'
        run: |
            composer remove --dev --no-update laravel/octane laravel/pennant

      - name: Install dependencies
        run: |
          composer remove --dev --no-update larastan/larastan phpstan/phpstan-phpunit laravel/pint phpstan/phpstan-strict-rules shipmonk/phpstan-rules
          composer require "laravel/framework:${{ matrix.laravel }}" --no-interaction --no-update
          composer update --${{ matrix.dependency-version }} --prefer-dist --no-progress

      - name: Update Dusk Chromedriver
        run: vendor/bin/dusk-updater detect --auto-update

      - name: Execute Unit Tests
        run: composer test

      - name: Upload Failed Screenshots
        uses: actions/upload-artifact@v6
        if: failure()
        with:
          name: screenshots
          path: tests/Browser/screenshots/*


================================================
FILE: .github/workflows/update-changelog.yaml
================================================
name: "Update Changelog"

on:
  release:
    types: [released]

jobs:
  update:
    runs-on: ubuntu-latest

    permissions:
      # Give the default GITHUB_TOKEN write permission to commit and push the 
      # updated CHANGELOG back to the repository.
      # https://github.blog/changelog/2023-02-02-github-actions-updating-the-default-github_token-permissions-to-read-only/
      contents: write

    steps:
      - name: Checkout code
        uses: actions/checkout@v6
        with:
          ref: ${{ github.event.release.target_commitish }}

      - name: Update Changelog
        uses: stefanzweifel/changelog-updater-action@v1
        with:
          latest-version: ${{ github.event.release.tag_name }}
          release-notes: ${{ github.event.release.body }}

      - name: Commit updated CHANGELOG
        uses: stefanzweifel/git-auto-commit-action@v7
        with:
          branch: ${{ github.event.release.target_commitish }}
          commit_message: Update CHANGELOG
          file_pattern: CHANGELOG.md


================================================
FILE: .gitignore
================================================
/.idea
/vendor
composer.phar
composer.lock
.DS_Store
.phpunit*
/tests/Browser
/node_modules
/build/phpstan
/build/docs
/site
/docs/overrides/__pycache__/
/docs/assets/dist


================================================
FILE: .nvmrc
================================================
24


================================================
FILE: CHANGELOG.md
================================================
# Changelog

## v4.1.3 - 2026-03-09

### What's Changed

* Optin query result by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1997

**Full Changelog**: https://github.com/fruitcake/laravel-debugbar/compare/v4.1.2...v4.1.3

## v4.1.2 - 2026-03-09

### What's Changed

* Fix sqlite and tweak results by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1996

**Full Changelog**: https://github.com/fruitcake/laravel-debugbar/compare/v4.1.1...v4.1.2

## v4.1.1 - 2026-03-08

### What's Changed

* Catch serialization errors when populating cache stats by @miken32 in https://github.com/fruitcake/laravel-debugbar/pull/1993
* Fix booting on console by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1995
* Add some tests for closures in cache by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1994

### New Contributors

* @miken32 made their first contribution in https://github.com/fruitcake/laravel-debugbar/pull/1993

**Full Changelog**: https://github.com/fruitcake/laravel-debugbar/compare/v4.1.0...v4.1.1

## v4.1.0 - 2026-03-07

### Biggest changes

- Use JsonVardumper for smaller + more detailed depths
- Add option to re-query and show results for SELECT queries
- Popup query/explain results
- Stricter checks for production env / non-debug mode, early exit

### What's Changed

* Fix CSS typo: `border-botton` → `border-bottom` by @Copilot in https://github.com/fruitcake/laravel-debugbar/pull/1975
* Bump minimatch by @dependabot[bot] in https://github.com/fruitcake/laravel-debugbar/pull/1973
* Cast database name to string in QueryCollector for null values by @b8ne in https://github.com/fruitcake/laravel-debugbar/pull/1979
* Check privateIp instead of localhost range by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1977
* Fix typo on comment by @erikn69 in https://github.com/fruitcake/laravel-debugbar/pull/1978
* Add button to show query results by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1976
* Check for json formatter by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1980
* Add masked keys to ConfigCollector by @erikn69 in https://github.com/fruitcake/laravel-debugbar/pull/1981
* Include cached items info on laravel tooltip by @erikn69 in https://github.com/fruitcake/laravel-debugbar/pull/1982
* Only allow explain etc on local ip by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1983
* use json formatter by default by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1984
* Tweak open storage / query explain checks by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1985
* Easy collector getter from `debugbar()` helper by @ssw1cblarrion in https://github.com/fruitcake/laravel-debugbar/pull/1989
* [QueryCollector] Support file info on addMessage method by @ssw1cblarrion in https://github.com/fruitcake/laravel-debugbar/pull/1988
* Use highlight on popup title for query result/explain by @parallels999 in https://github.com/fruitcake/laravel-debugbar/pull/1986
* Quick fixes by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1990
* Tweak boot check by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1991
* Tweak controllers by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1992

### New Contributors

* @Copilot made their first contribution in https://github.com/fruitcake/laravel-debugbar/pull/1975
* @b8ne made their first contribution in https://github.com/fruitcake/laravel-debugbar/pull/1979
* @ssw1cblarrion made their first contribution in https://github.com/fruitcake/laravel-debugbar/pull/1989

**Full Changelog**: https://github.com/fruitcake/laravel-debugbar/compare/v4.0.10...v4.1.0

## v4.0.10 - 2026-02-26

### What's Changed

* Cast LARAVEL_START const to float by @daniser in https://github.com/fruitcake/laravel-debugbar/pull/1968
* Laravel 13.x Compatibility by @laravel-shift in https://github.com/fruitcake/laravel-debugbar/pull/1969
* GateCollector backtrace need more steps by @angeljqv in https://github.com/fruitcake/laravel-debugbar/pull/1972
* Support custom messages on QueryCollector by @angeljqv in https://github.com/fruitcake/laravel-debugbar/pull/1970
* Use upstream collect by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1960

### New Contributors

* @daniser made their first contribution in https://github.com/fruitcake/laravel-debugbar/pull/1968
* @laravel-shift made their first contribution in https://github.com/fruitcake/laravel-debugbar/pull/1969

**Full Changelog**: https://github.com/fruitcake/laravel-debugbar/compare/v4.0.9...v4.0.10

## v4.0.9 - 2026-02-17

### What's Changed

* Check mail is started by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1967

**Full Changelog**: https://github.com/fruitcake/laravel-debugbar/compare/v4.0.8...v4.0.9

## v4.0.8 - 2026-02-14

### What's Changed

* Use message id instead of subject for mail collector by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1965

**Full Changelog**: https://github.com/fruitcake/laravel-debugbar/compare/v4.0.7...v4.0.8

## v4.0.7 - 2026-02-06

### What's Changed

* chore: replace deprecated Request::get() with Request::input() by @calebdw in https://github.com/fruitcake/laravel-debugbar/pull/1957
* Fix utf-8 encoding by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1959

**Full Changelog**: https://github.com/fruitcake/laravel-debugbar/compare/v4.0.6...v4.0.7

## v4.0.6 - 2026-02-04

### What's Changed

* Use Dispatcher contract by @bytestream in https://github.com/fruitcake/laravel-debugbar/pull/1954
* fix: urlencode cache key by @calebdw in https://github.com/fruitcake/laravel-debugbar/pull/1955
* Handle missing bindings in SQL formatting by @erikn69 in https://github.com/fruitcake/laravel-debugbar/pull/1956

### New Contributors

* @bytestream made their first contribution in https://github.com/fruitcake/laravel-debugbar/pull/1954
* @calebdw made their first contribution in https://github.com/fruitcake/laravel-debugbar/pull/1955

**Full Changelog**: https://github.com/fruitcake/laravel-debugbar/compare/v4.0.5...v4.0.6

## v4.0.5 - 2026-01-29

### What's Changed

* Show params table for explain button by @erikn69 in https://github.com/fruitcake/laravel-debugbar/pull/1949
* Change bindings return value on limited by @erikn69 in https://github.com/fruitcake/laravel-debugbar/pull/1948
* use GateEvaluated event by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1951
* Fix livewire deprecations errors by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1952

**Full Changelog**: https://github.com/fruitcake/laravel-debugbar/compare/v4.0.4...v4.0.5

## v4.0.4 - 2026-01-29

### What's Changed

* Bump workflows actions by @erikn69 in https://github.com/fruitcake/laravel-debugbar/pull/1946
* Allow ability parameter to accept integer type by @jeffersongoncalves in https://github.com/fruitcake/laravel-debugbar/pull/1947

### New Contributors

* @jeffersongoncalves made their first contribution in https://github.com/fruitcake/laravel-debugbar/pull/1947

**Full Changelog**: https://github.com/fruitcake/laravel-debugbar/compare/v4.0.3...v4.0.4

## v4.0.3 - 2026-01-26

### What's Changed

* Remove find cache in favor of upstream optimization by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1939
* Update onCacheEvent to accept multiple event types by @Yahav in https://github.com/fruitcake/laravel-debugbar/pull/1943
* Fix cache collector route by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1944

### New Contributors

* @Yahav made their first contribution in https://github.com/fruitcake/laravel-debugbar/pull/1943

**Full Changelog**: https://github.com/fruitcake/laravel-debugbar/compare/v4.0.2...v4.0.3

## v4.0.2 - 2026-01-24

### What's Changed

* Fix Auth Collector by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1937
* Fix session collector by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1938

**Full Changelog**: https://github.com/fruitcake/laravel-debugbar/compare/v4.0.1...v4.0.2

## v4.0.1 - 2026-01-24

### What's Changed

* Fix explain table css on queries widget by @erikn69 in https://github.com/fruitcake/laravel-debugbar/pull/1929
* Check if Telescope is recording by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1931
* Update namespaces in readme by @sajjadhossainshohag in https://github.com/fruitcake/laravel-debugbar/pull/1932
* Add backtrace path by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1933
* Update vendor name, fix release notes by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1934
* Add link class by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1935
* Collected jobs from queue by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1936

### New Contributors

* @sajjadhossainshohag made their first contribution in https://github.com/fruitcake/laravel-debugbar/pull/1932

**Full Changelog**: https://github.com/fruitcake/laravel-debugbar/compare/v4.0.0...v4.0.1

## v4.0.0 - 2026-01-23

### Laravel Debugbar 4.0

### Release notes

See https://fruitcake.nl/blog/laravel-debugbar-v4-release for the biggest changes.

This brings the updates from php-debugbar 3.x to Laravel Debugbar. See https://github.com/php-debugbar/php-debugbar/releases/tag/v3.0.0 for the upstream changes to php-debugbar.

### Updating

The name has changed, so remove the old package first:

`composer remove barryvdh/laravel-debugbar --dev --no-scripts`

Then install the new package

`composer require fruitcake/laravel-debugbar --with-dependencies`

Check the https://github.com/fruitcake/laravel-debugbar/blob/master/UPGRADE.md for any changes.

### All Changes

* Prepare for Debugbar 3.x by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1828
* Fix 4.x queries by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1832
* Remove deprecations, tweak default config by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1833
* Always render widget in footer by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1834
* Fix null handling quoting in emulateQuote[QueryCollector] by @erikn69 in https://github.com/fruitcake/laravel-debugbar/pull/1835
* Update workflows / tools, add static analyses, fix some errors by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1836
* Revert event config by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1837
* Remove socket storage by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1839
* Remove Lumen support by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1838
* Remove icon by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1840
* Fix phpstan by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1841
* Remove PDO extension by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1842
* Extend base sql widget by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1843
* Fix shell quotes in README by @szepeviktor in https://github.com/fruitcake/laravel-debugbar/pull/1264
* refactor: improve routes formats by @jbidad in https://github.com/fruitcake/laravel-debugbar/pull/1392
* remove copy and hints by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1844
* Check response for avoid inject debugbar on json ajax by @erikn69 in https://github.com/fruitcake/laravel-debugbar/pull/1558
* Show estimate of cache byte usage by @erikn69 in https://github.com/fruitcake/laravel-debugbar/pull/1764
* Check string by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1845
* Use original background by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1847
* Add DataProviders for easier maintenance by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1846
* Feat custom collectors by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1848
* Tweak config by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1849
* Feat phpdebugbar symfony by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1850
* Improve Livewire collection and view detection for components by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1853
* Builds docs from source by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1854
* Fix default for excluded events by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1856
* Remove icon overrides by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1857
* Restore Mail collector timeline by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1858
* Add HTTP client collector by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1859
* Add http client to docs by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1860
* Update JavascriptRenderer for upstream changes by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1861
* Simplify Asset Renderer by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1862
* Bring back logs collector by @erikn69 in https://github.com/fruitcake/laravel-debugbar/pull/1863
* Use message context for gate and logs by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1866
* Updates tests for new beta by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1867
* Reduce styling overrides by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1864
* Use symfony-bridge by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1868
* Set livewire sentence by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1869
* Fix timeline by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1871
* Fix storage by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1872
* Seperate listeners from data in events by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1873
* Add casters for heavy objects by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1874
* Fix tests by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1876
* TWeak livewire properties by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1877
* Move namespace to Fruitcake\LaravelDebugbar by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1875
* Replace old package name by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1878
* Fix explain option access in DatabaseCollectorProvider by @erikn69 in https://github.com/fruitcake/laravel-debugbar/pull/1879
* Update .gitattributes by @erikn69 in https://github.com/fruitcake/laravel-debugbar/pull/1881
* Stricter types by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1884
* Add docs directory to export-ignore in .gitattributes by @erikn69 in https://github.com/fruitcake/laravel-debugbar/pull/1883
* Cleanup by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1885
* Fix docs tests by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1886
* Fix cache widget by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1887
* Fix checkVersion accessibility by @angeljqv in https://github.com/fruitcake/laravel-debugbar/pull/1889
* Check signature by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1888
* Add Inertia collector by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1890
* Improve storage scan by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1891
* Use upstream file storage and request generator by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1892
* Optimize livewire by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1893
* Test Livewire 2/3/4 by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1894
* Reset interfaces on Octane request, use current config by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1895
* Separate the debugbar from the application load(TimeCollector) by @erikn69 in https://github.com/fruitcake/laravel-debugbar/pull/1896
* Optimize serviceprovider by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1897
* Octane singleton by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1898
* Tweak constructors and config by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1899
* Tweak pennant by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1900
* Time octane reset by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1901
* Tweak booting time by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1902
* Tweak twig by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1903
* Always ensure time/exceptions/messages are available, to log before b… by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1904
* Tweak config values by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1906
* Tweak subscribers by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1905
* Remove request instances by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1907
* Update console collecting by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1908
* Fix cache events by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1909
* Tweak handle by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1910
* Add octane request start by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1911
* Small reset tweaks by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1912
* Add some timeline options by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1913
* Ensure latest request is used by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1915
* Check if octane needs to enable/disbale by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1917
* Use cookies instead of session, events instead of middleware by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1914
* Update tests for Livewire 3 and 4 by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1918
* collect on terminate by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1919
* Bump lodash from 4.17.21 to 4.17.23 by @dependabot[bot] in https://github.com/fruitcake/laravel-debugbar/pull/1920
* Restore ulid requestids by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1921
* Use openhandler http driver, set etag by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1922
* Check if params table is set by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1923
* Fix event data by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1924
* Update RequestCollector for CLI usage by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1925
* Tweak ClearCommand for uninstall by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1927
* Catch resolve errors by @barryvdh in https://github.com/fruitcake/laravel-debugbar/pull/1928

### New Contributors

* @szepeviktor made their first contribution in https://github.com/fruitcake/laravel-debugbar/pull/1264
* @jbidad made their first contribution in https://github.com/fruitcake/laravel-debugbar/pull/1392
* @dependabot[bot] made their first contribution in https://github.com/fruitcake/laravel-debugbar/pull/1920

**Full Changelog**: https://github.com/fruitcake/laravel-debugbar/compare/v3.16.3...v4.0.0

## v3.16.4 - 2026-01-23

- Add new fruitcake namespace to exclude from query backtrace.

**Full Changelog**: https://github.com/fruitcake/laravel-debugbar/compare/v3.16.3...v3.16.4

## v4.0-beta.11 - 2026-01-06

### What's Changed

* Simplify Asset Renderer by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1862

**Full Changelog**: https://github.com/barryvdh/laravel-debugbar/compare/v4.0-beta.10...v4.0-beta.11

## v4.0-beta.9 - 2026-01-05

### What's Changed

* Remove icon overrides by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1857
* Restore Mail collector timeline by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1858
* Add HTTP client collector by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1859
* Add http client to docs by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1860

**Full Changelog**: https://github.com/barryvdh/laravel-debugbar/compare/v4.0-beta.8...v4.0-beta.9

## v4.0-beta.8 - 2026-01-05

### What's Changed

* Builds docs from source by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1854
* Fix default for excluded events by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1856

**Full Changelog**: https://github.com/barryvdh/laravel-debugbar/compare/v4.0-beta.7...v4.0-beta.8

## v4.0-beta.7 - 2026-01-05

### What's Changed

* Improve Livewire collection and view detection for components by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1853

**Full Changelog**: https://github.com/barryvdh/laravel-debugbar/compare/v4.0-beta.6...v4.0-beta.7

## v3.16.3 - 2025-12-26

### What's Changed

* Update symfony/finder version constraint to include 8 by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1830
* Allow Symfony v8 by @jnoordsij in https://github.com/barryvdh/laravel-debugbar/pull/1827
* Add error_level config option to filter error handler reporting (#1373) by @elliota43 in https://github.com/barryvdh/laravel-debugbar/pull/1825
* Add support for Cursor, Windsurf, and additional editor configurations by @nguyentranchung in https://github.com/barryvdh/laravel-debugbar/pull/1823
* Don't create <a> tags with the onclick attribute by @PeterMead in https://github.com/barryvdh/laravel-debugbar/pull/1820
* docs: Add conditional check for Debugbar alias registration by @erhanurgun in https://github.com/barryvdh/laravel-debugbar/pull/1829

### New Contributors

* @elliota43 made their first contribution in https://github.com/barryvdh/laravel-debugbar/pull/1825
* @nguyentranchung made their first contribution in https://github.com/barryvdh/laravel-debugbar/pull/1823
* @PeterMead made their first contribution in https://github.com/barryvdh/laravel-debugbar/pull/1820
* @erhanurgun made their first contribution in https://github.com/barryvdh/laravel-debugbar/pull/1829

**Full Changelog**: https://github.com/barryvdh/laravel-debugbar/compare/v3.16.2...v3.16.3

## v3.16.2 - 2025-12-16

### What's Changed

* Remove default null value env by @Erulezz in https://github.com/barryvdh/laravel-debugbar/pull/1815
* Remove --ignore-platform-req=php+ on integration test setup by @erikn69 in https://github.com/barryvdh/laravel-debugbar/pull/1814
* Remove calls to PHP 8.5-deprecated `setAccessible` by @jnoordsij in https://github.com/barryvdh/laravel-debugbar/pull/1822

### New Contributors

* @Erulezz made their first contribution in https://github.com/barryvdh/laravel-debugbar/pull/1815

**Full Changelog**: https://github.com/barryvdh/laravel-debugbar/compare/v3.16.1...v3.16.2

## v3.16.1 - 2025-11-19

### What's Changed

* Slow threshold highlight on queries by @erikn69 in https://github.com/barryvdh/laravel-debugbar/pull/1805
* (fix) trim last line breaks on logs by @angeljqv in https://github.com/barryvdh/laravel-debugbar/pull/1806
* fix: Typo by @aurac in https://github.com/barryvdh/laravel-debugbar/pull/1810
* Test on PHP 8.5 by @jnoordsij in https://github.com/barryvdh/laravel-debugbar/pull/1811
* Add '_boost*' to debugbar exceptions by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1818
* Dropped Laravel 9 support

### New Contributors

* @aurac made their first contribution in https://github.com/barryvdh/laravel-debugbar/pull/1810

**Full Changelog**: https://github.com/barryvdh/laravel-debugbar/compare/v3.16.0...v3.16.1

## v3.16.0 - 2025-07-21

### What's Changed

* Make all scalar config values configurable through environment variables by @wimski in https://github.com/barryvdh/laravel-debugbar/pull/1784
* Check if file exists on FilesystemStorage by @erikn69 in https://github.com/barryvdh/laravel-debugbar/pull/1790
* Bump php-debugbar by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1791
* Fix counter tests by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1792
* `$group` arg support on TimelineCollectors methods by @erikn69 in https://github.com/barryvdh/laravel-debugbar/pull/1789
* Collect other eloquent model events by @erikn69 in https://github.com/barryvdh/laravel-debugbar/pull/1781
* Add new cache events on CacheCollector by @erikn69 in https://github.com/barryvdh/laravel-debugbar/pull/1773
* Exclude events on EventCollector by @erikn69 in https://github.com/barryvdh/laravel-debugbar/pull/1786
* Use `addWarning` on warnings, silenced errors, notices by @erikn69 in https://github.com/barryvdh/laravel-debugbar/pull/1767
* Do not rely on DB::connection() to get information in query collector by @cweiske in https://github.com/barryvdh/laravel-debugbar/pull/1779
* Trace file for Gate checks(GateCollector) by @erikn69 in https://github.com/barryvdh/laravel-debugbar/pull/1770
* Fix support for PDOExceptions by @LukeTowers in https://github.com/barryvdh/laravel-debugbar/pull/1752
* Time measure on cache events by @erikn69 in https://github.com/barryvdh/laravel-debugbar/pull/1794
* fix debugbar for Lumen usage by @flibidi67 in https://github.com/barryvdh/laravel-debugbar/pull/1796
* Custom path for Inertia views by @joaopms in https://github.com/barryvdh/laravel-debugbar/pull/1797
* Better contrast in dark theme titles. by @angeljqv in https://github.com/barryvdh/laravel-debugbar/pull/1798

### New Contributors

* @wimski made their first contribution in https://github.com/barryvdh/laravel-debugbar/pull/1784
* @cweiske made their first contribution in https://github.com/barryvdh/laravel-debugbar/pull/1779
* @flibidi67 made their first contribution in https://github.com/barryvdh/laravel-debugbar/pull/1796
* @joaopms made their first contribution in https://github.com/barryvdh/laravel-debugbar/pull/1797

**Full Changelog**: https://github.com/barryvdh/laravel-debugbar/compare/v3.15.4...v3.16.0

## v3.15.4 - 2025-04-16

### What's Changed

* Remove html `<a/>` tag from route on clockwork by @erikn69 in https://github.com/barryvdh/laravel-debugbar/pull/1777
* Fix default for capturing dd/dump by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1783

**Full Changelog**: https://github.com/barryvdh/laravel-debugbar/compare/v3.15.3...v3.15.4

## v3.15.3 - 2025-04-08

### What's Changed

* Add condition for implemented query grammar by @rikwillems in https://github.com/barryvdh/laravel-debugbar/pull/1757
* Collect dumps on message collector by @erikn69 in https://github.com/barryvdh/laravel-debugbar/pull/1759
* Fix `capture_dumps` option on laravel `dd();` by @parallels999 in https://github.com/barryvdh/laravel-debugbar/pull/1762
* Preserve laravel error handler by @erikn69 in https://github.com/barryvdh/laravel-debugbar/pull/1760
* Fix `Trying to access array offset on false on LogsCollector.php` by @erikn69 in https://github.com/barryvdh/laravel-debugbar/pull/1763
* Update css theme for views widget by @erikn69 in https://github.com/barryvdh/laravel-debugbar/pull/1768
* Fix laravel-debugbar.css on query widget by @erikn69 in https://github.com/barryvdh/laravel-debugbar/pull/1765
* Use htmlvardumper if available on CacheCollector by @erikn69 in https://github.com/barryvdh/laravel-debugbar/pull/1766
* Update QueryCollector.php fix issue #1775 by @Mathias-DS in https://github.com/barryvdh/laravel-debugbar/pull/1776
* Better grouping the events count by @erikn69 in https://github.com/barryvdh/laravel-debugbar/pull/1774

### New Contributors

* @rikwillems made their first contribution in https://github.com/barryvdh/laravel-debugbar/pull/1757
* @Mathias-DS made their first contribution in https://github.com/barryvdh/laravel-debugbar/pull/1776

**Full Changelog**: https://github.com/barryvdh/laravel-debugbar/compare/v3.15.2...v3.15.3

## v3.15.2 - 2025-02-25

### What's Changed

* Fix empty tabs on clockwork by @erikn69 in https://github.com/barryvdh/laravel-debugbar/pull/1750
* fix: Ignore info query statements in Clockwork converter by @boserup in https://github.com/barryvdh/laravel-debugbar/pull/1749
* Check if request controller is string by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1751

### New Contributors

* @boserup made their first contribution in https://github.com/barryvdh/laravel-debugbar/pull/1749

**Full Changelog**: https://github.com/barryvdh/laravel-debugbar/compare/v3.15.1...v3.15.2

## v3.15.1 - 2025-02-24

### What's Changed

* Hide more empty tabs  by @erikn69 in https://github.com/barryvdh/laravel-debugbar/pull/1742
* Always show application by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1745
* Add conflict with old debugbar by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1746

**Full Changelog**: https://github.com/barryvdh/laravel-debugbar/compare/v3.15.0...v3.15.1

## v3.15.0 - 2025-02-21

### What's Changed

* Add middleware to web to save session by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1710
* Check web middleware by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1712
* Add special `dev` to composer keywords by @jnoordsij in https://github.com/barryvdh/laravel-debugbar/pull/1713
* Removed extra sentence by @cheack in https://github.com/barryvdh/laravel-debugbar/pull/1714
* Hide empty tabs by default by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1711
* Combine route info with Request by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1720
* fix: The log is not processed correctly when it consists of multiple lines. by @uniho in https://github.com/barryvdh/laravel-debugbar/pull/1721
* [WIP] Use php-debugbar dark theme, move to variables by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1717
* Remove openhandler overrides by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1723
* Drop Lumen And Laravel 9 by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1725
* Use tooltip for Laravel collector by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1724
* Add more data to timeline by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1726
* Laravel version preview as repo branch name by @angeljqv in https://github.com/barryvdh/laravel-debugbar/pull/1727
* Laravel 12 support by @jonnott in https://github.com/barryvdh/laravel-debugbar/pull/1730
* Preview action_name on request tooltip by @angeljqv in https://github.com/barryvdh/laravel-debugbar/pull/1728
* Map tooltips by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1732
* Add back L9 by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1734
* Fix tooltip url by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1735
* Show request status as badge by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1736
* Fix request badge by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1737
* Use Laravel ULID for key by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1738
* defer datasets by config option by @erikn69 in https://github.com/barryvdh/laravel-debugbar/pull/1739
* Reorder request tab by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1740
* Defer config by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1741

### New Contributors

* @cheack made their first contribution in https://github.com/barryvdh/laravel-debugbar/pull/1714
* @angeljqv made their first contribution in https://github.com/barryvdh/laravel-debugbar/pull/1727
* @jonnott made their first contribution in https://github.com/barryvdh/laravel-debugbar/pull/1730

**Full Changelog**: https://github.com/barryvdh/laravel-debugbar/compare/v3.14.10...v3.15.0

## v3.14.10 - 2024-12-23

### What's Changed

* Fix Debugbar spelling inconsistencies by @ralphjsmit in https://github.com/barryvdh/laravel-debugbar/pull/1626
* Fix Visual Explain confirm message by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1709

### New Contributors

* @ralphjsmit made their first contribution in https://github.com/barryvdh/laravel-debugbar/pull/1626

**Full Changelog**: https://github.com/barryvdh/laravel-debugbar/compare/v3.14.9...v3.14.10

## v3.14.9 - 2024-11-25

### What's Changed

* Fix custom prototype array by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1706

**Full Changelog**: https://github.com/barryvdh/laravel-debugbar/compare/v3.14.8...v3.14.9

## v3.14.8 - 2024-11-25

### What's Changed

* Add fix + failing test for custom array prototype by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1705

**Full Changelog**: https://github.com/barryvdh/laravel-debugbar/compare/v3.14.7...v3.14.8

## v3.14.7 - 2024-11-14

### What's Changed

* Make better use of query tab space by @erikn69 in https://github.com/barryvdh/laravel-debugbar/pull/1694
* Do not open query details on text selecting by @erikn69 in https://github.com/barryvdh/laravel-debugbar/pull/1693
* Add (initial) support for PHP 8.4 by @jnoordsij in https://github.com/barryvdh/laravel-debugbar/pull/1631
* More warnings by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1696
* Fix sql-duplicate highlight by @erikn69 in https://github.com/barryvdh/laravel-debugbar/pull/1699
* ci: Use GitHub Actions V4 by @erikn69 in https://github.com/barryvdh/laravel-debugbar/pull/1700
* Fix "Uncaught TypeError: is not iterable" by @erikn69 in https://github.com/barryvdh/laravel-debugbar/pull/1701
* Fix Exception when QueryCollector softLimit exceeded by @johnkary in https://github.com/barryvdh/laravel-debugbar/pull/1702
* Test soft/hard limit queries by @barryvdh in https://github.com/barryvdh/laravel-debugbar/pull/1703

### New Contributors

* @johnkary made their first contribution in https://github.com/barryvdh/laravel-debugbar/pull/1702

**Full Changelog**: https://github.com/barryvdh/laravel-debugbar/compare/v3.14.6...v3.14.7


================================================
FILE: LICENSE
================================================
Copyright (C) 2013-present Barry vd. Heuvel

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: SECURITY.md
================================================
# Security Policy

## Reporting a Vulnerability

Please report security issues to `barryvdh@gmail.com`


================================================
FILE: UPGRADE.md
================================================
# Upgrade Guide

## 3.x to 4.x

### php-debugbar 3.x
The php-debugbar dependency has been updated to 3.x. This removes jQuery and font-awesome.
This should not impact your application, unless you are using custom collectors.

### Updated namespace

The new namespace is `Fruitcake\LaravelDebugbar` instead of `Barryvdh\Debugbar`. You usually do not need to change this,
unless you are manually registering the service provider / facade. The packge install is now `fruitcake/laravel-debugbar`.

### Removed 

 - SocketStorage (no longer maintained)
 - Lumen support (no longer maintained)
 - FileCollector (no longer useful)
 - `start_measure()`, `add_measure()`, `stop_measure()`, `measure()` helper methods (use `debugbar()->startMeasure()` etc. instead)

### Other changes
 - The Query Collector now extends the php-debugbar widget. The bindings parameter has been removed in favor of 'params'.
 - Instead of 'hiddens', we now have an option 'masked' which uses the keys, not array paths.
 - Ineratia has its own collector / config. Update your config accordingly.

### For packages extending Laravel Debugbar
 - modifyResponse has changed to handleResponse, and is now done with a listener instead of middleware
 - the HttpDriver is now session-less, and uses cookies.
 - Octane keeps the LaravelDebugbar state, so has to reset collectors. You can remove Laravel Debugbar from the flush config.


================================================
FILE: build/build-docs.php
================================================
<?php

use DebugBar\Bridge\Symfony\SymfonyMailCollector;
use DebugBar\DataCollector\PDO\PDOCollector;
use DebugBar\DataCollector\TemplateCollector;
use DebugBar\StandardDebugBar;

include __DIR__ . '/../vendor/autoload.php';

// Rquires `php vendor/bin/phpunit --filter=testItInjectsOnDocs`
$generatedScripts = file_get_contents(__DIR__ . '/docs/render.html');
// Remove first style/script
$generatedScripts = explode('</script>', $generatedScripts, 2)[1];

// Read the main.html template
$templatePath = __DIR__ . '/../docs/overrides/main.html';
$template = file_get_contents($templatePath);

// Replace the scripts block content between specific markers
$startMarker = "<!-- Start Debugbar -->";
$endMarker = "<!-- End Debugbar -->";

// Find the positions
$startPos = strpos($template, $startMarker);
$endPos = strpos($template, $endMarker);

if ($startPos !== false && $endPos !== false) {
    $startPos += strlen($startMarker);

    // Replace the content between markers
    $newTemplate = substr($template, 0, $startPos)
        . "\n" . $generatedScripts . "\n"
        . substr($template, $endPos);

    // Write back to the file
    file_put_contents($templatePath, $newTemplate);

    echo "✓ Updated docs/overrides/main.html with generated debugbar scripts\n";
} else {
    echo "✗ Could not find script markers in main.html\n";
    exit(1);
}

// Copy dist folder to docs/assets/dist
$distSource = __DIR__ . '/docs/assets';
$distDest = __DIR__ . '/../docs/assets/dist';

if (!is_dir($distSource)) {
    echo "✗ dist folder not found at $distSource\n";
    exit(1);
}

// Create docs/assets directory if it doesn't exist
if (!is_dir(__DIR__ . '/../docs/assets')) {
    mkdir(__DIR__ . '/../docs/assets', 0755, true);
}

// Remove existing dist folder if it exists
if (is_dir($distDest)) {
    deleteDirectory($distDest);
}

// Copy dist folder
copyDirectory($distSource, $distDest);

echo "✓ Copied dist folder to docs/assets/dist\n";

// Update mkdocs.yml with current timestamp
$mkdocsPath = __DIR__ . '/../mkdocs.yml';
$mkdocsContent = file_get_contents($mkdocsPath);
$timestamp = time();

$mkdocsContent = preg_replace(
    '/debugbar\.css\?v=\d+/',
    'debugbar.css?v=' . $timestamp,
    $mkdocsContent
);

$mkdocsContent = preg_replace(
    '/debugbar\.js\?v=\d+/',
    'debugbar.js?v=' . $timestamp,
    $mkdocsContent
);

file_put_contents($mkdocsPath, $mkdocsContent);

echo "✓ Updated mkdocs.yml with timestamp: $timestamp\n";

function copyDirectory($source, $dest) {
    mkdir($dest, 0755, true);

    $iterator = new RecursiveIteratorIterator(
        new RecursiveDirectoryIterator($source, RecursiveDirectoryIterator::SKIP_DOTS),
        RecursiveIteratorIterator::SELF_FIRST
    );

    foreach ($iterator as $item) {
        $destPath = $dest . DIRECTORY_SEPARATOR . $iterator->getSubPathname();
        if ($item->isDir()) {
            mkdir($destPath, 0755, true);
        } else {
            copy($item, $destPath);
        }
    }
}

function deleteDirectory($dir) {
    if (!is_dir($dir)) {
        return;
    }

    $iterator = new RecursiveIteratorIterator(
        new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS),
        RecursiveIteratorIterator::CHILD_FIRST
    );

    foreach ($iterator as $item) {
        if ($item->isDir()) {
            rmdir($item);
        } else {
            unlink($item);
        }
    }

    rmdir($dir);
}


================================================
FILE: build/build-icons.js
================================================
import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

// Tabler icons to include
// Format: 'icon-name' for outline icons, or { name: 'icon-name', filled: true } for filled icons
const icons = [
    // Data collector icons
    'archive',
    'clipboard-text',
    'files',
    'lock',
    'user',
    'share-3',
    'subtask',

    // UI control icons
    'brand-laravel',
    'brand-livewire',
    'brand-inertia',

    // Query widget icons
    'pin',
    'help-circle',
    'list',
    'gauge',

    // Message icons
    { name: 'star', filled: true },
    'info-circle',

    // Link icon
    'external-link',
];

const svgDirOutline = path.join(__dirname, '../node_modules/@tabler/icons/icons/outline');
const svgDirFilled = path.join(__dirname, '../node_modules/@tabler/icons/icons/filled');
const outputFile = path.join(__dirname, '../resources/laravel-icons.css');
const defaultStrokeWidth = 2; // Tabler default stroke width
const brandStrokeWidth = 1; // For brands, use 1

function svgToDataUri(svgContent, strokeWidth) {
    // Remove XML comments
    svgContent = svgContent.replace(/<!--[\s\S]*?-->/g, '');

    // Ensure consistent stroke-width
    svgContent = svgContent.replace(/stroke-width="[^"]*"/g, `stroke-width="${strokeWidth}"`);

    // Remove unnecessary attributes for mask usage (but not stroke-width!)
    svgContent = svgContent.replace(/\s+class="[^"]*"/g, '');
    svgContent = svgContent.replace(/\s+width="[^"]*"/g, '');
    svgContent = svgContent.replace(/\s+height="[^"]*"/g, '');

    // Minify: remove newlines and extra spaces
    svgContent = svgContent.replace(/\s+/g, ' ').trim();

    // URL encode for data URI
    const encoded = encodeURIComponent(svgContent)
        .replace(/'/g, '%27')
        .replace(/"/g, '%22');
    return `data:image/svg+xml,${encoded}`;
}

function generateIconsCSS() {
    let css = `/* Generated file - do not edit manually */\n/* Generated from Tabler Icons */\n\n`;

    // First, define all CSS variables with the SVG data URIs
    css += `:root {\n`;
    for (const iconEntry of icons) {
        const iconName = typeof iconEntry === 'string' ? iconEntry : iconEntry.name;
        const isFilled = typeof iconEntry === 'object' && iconEntry.filled;
        const svgDir = isFilled ? svgDirFilled : svgDirOutline;
        const svgPath = path.join(svgDir, `${iconName}.svg`);

        if (!fs.existsSync(svgPath)) {
            console.warn(`Warning: SVG file not found for icon "${iconName}" at ${svgPath}`);
            continue;
        }

        const svgContent = fs.readFileSync(svgPath, 'utf8');
        let strokeWidth = iconName.indexOf('brand-') === 0 ? brandStrokeWidth : defaultStrokeWidth;
        const dataUri = svgToDataUri(svgContent, strokeWidth);

        css += `  --debugbar-icon-${iconName}: url('${dataUri}');\n`;
    }
    css += `}\n\n`;

    // Then, apply the variables to the icon classes
    for (const iconEntry of icons) {
        const iconName = typeof iconEntry === 'string' ? iconEntry : iconEntry.name;
        const isFilled = typeof iconEntry === 'object' && iconEntry.filled;
        const svgDir = isFilled ? svgDirFilled : svgDirOutline;
        const svgPath = path.join(svgDir, `${iconName}.svg`);

        if (!fs.existsSync(svgPath)) {
            continue;
        }

        css += `.phpdebugbar-icon-${iconName}::before {\n`;
        css += `  -webkit-mask-image: var(--debugbar-icon-${iconName});\n`;
        css += `  mask-image: var(--debugbar-icon-${iconName});\n`;
        css += `}\n\n`;
    }

    fs.writeFileSync(outputFile, css, 'utf8');
    console.log(`✓ Generated ${outputFile} with ${icons.length} icons`);
}

try {
    generateIconsCSS();
} catch (error) {
    console.error('Error generating icons:', error);
    process.exit(1);
}


================================================
FILE: composer.json
================================================
{
    "name": "fruitcake/laravel-debugbar",
    "description": "PHP Debugbar integration for Laravel",
    "keywords": [
        "laravel",
        "debugbar",
        "profiler",
        "debug",
        "webprofiler",
        "barryvdh",
        "dev"
    ],
    "license": "MIT",
    "authors": [
        {
            "name": "Fruitcake",
            "homepage": "https://fruitcake.nl"
        },
        {
            "name": "Barry vd. Heuvel",
            "email": "barryvdh@gmail.com"
        }
    ],
    "require": {
        "php": "^8.2",
        "php-debugbar/php-debugbar": "^3.5",
        "php-debugbar/symfony-bridge": "^1.1",
        "illuminate/routing": "^11|^12|^13.0",
        "illuminate/session": "^11|^12|^13.0",
        "illuminate/support": "^11|^12|^13.0"
    },
    "require-dev": {
        "mockery/mockery": "^1.3.3",
        "orchestra/testbench-dusk": "^9|^10|^11",
        "phpunit/phpunit": "^11",
        "larastan/larastan": "^3",
        "phpstan/phpstan-phpunit": "^2",
        "laravel/pint": "^1",
        "livewire/livewire": "^3.7|^4",
        "phpstan/phpstan-strict-rules": "^2.0",
        "shipmonk/phpstan-rules": "^4.3",
        "laravel/octane": "^2",
        "laravel/pennant": "^1",
        "php-debugbar/twig-bridge": "^2.0",
        "laravel/telescope": "^5.16"
    },
    "replace": {
        "barryvdh/laravel-debugbar": "self.version"
    },
    "autoload": {
        "psr-4": {
            "Fruitcake\\LaravelDebugbar\\": "src/"
        },
        "files": [
            "src/helpers.php"
        ]
    },
    "autoload-dev": {
        "psr-4": {
            "Fruitcake\\LaravelDebugbar\\Tests\\": "tests"
        }
    },
    "minimum-stability": "dev",
    "prefer-stable": true,
    "extra": {
        "branch-alias": {
            "dev-master": "4.1-dev"
        },
        "laravel": {
            "providers": [
                "Fruitcake\\LaravelDebugbar\\ServiceProvider"
            ],
            "aliases": {
                "Debugbar": "Fruitcake\\LaravelDebugbar\\Facades\\Debugbar"
            }
        }
    },
    "scripts": {
        "analyse": "vendor/bin/phpstan analyse --memory-limit=1G",
        "check-style": "vendor/bin/pint --test",
        "fix-style": "vendor/bin/pint",
        "test": "vendor/bin/phpunit",
        "docs": "vendor/bin/phpunit --filter=testItInjectsOnDocs && php build/build-docs.php && mkdocs build"
    }
}


================================================
FILE: config/debugbar.php
================================================
<?php

declare(strict_types=1);

return [

    /*
     |--------------------------------------------------------------------------
     | Debugbar Settings
     |--------------------------------------------------------------------------
     |
     | Debugbar is enabled by default, when debug is set to true in app.php.
     | You can override the value by setting enable to true or false instead of null.
     |
     | You can provide an array of URI's that must be ignored (eg. 'api/*')
     |
     */

    'enabled' => env('DEBUGBAR_ENABLED'),
    'collect_jobs' => env('DEBUGBAR_COLLECT_JOBS', false),
    'except' => [
        'telescope*',
        'horizon*',
        '_boost/browser-logs',
        'livewire-*/livewire.js',
    ],

    /*
    |--------------------------------------------------------------------------
    | DataCollectors
    |--------------------------------------------------------------------------
    |
    | Enable/disable DataCollectors
    |
    */

    'collectors' => [
        'phpinfo'         => env('DEBUGBAR_COLLECTORS_PHPINFO', false),         // Php version
        'messages'        => env('DEBUGBAR_COLLECTORS_MESSAGES', true),         // Messages
        'time'            => env('DEBUGBAR_COLLECTORS_TIME', true),             // Time Datalogger
        'memory'          => env('DEBUGBAR_COLLECTORS_MEMORY', true),           // Memory usage
        'exceptions'      => env('DEBUGBAR_COLLECTORS_EXCEPTIONS', true),       // Exception displayer
        'log'             => env('DEBUGBAR_COLLECTORS_LOG', true),              // Logs from Monolog (merged in messages if enabled)
        'db'              => env('DEBUGBAR_COLLECTORS_DB', true),               // Show database (PDO) queries and bindings
        'views'           => env('DEBUGBAR_COLLECTORS_VIEWS', true),            // Views with their data
        'route'           => env('DEBUGBAR_COLLECTORS_ROUTE', false),           // Current route information
        'auth'            => env('DEBUGBAR_COLLECTORS_AUTH', false),            // Display Laravel authentication status
        'gate'            => env('DEBUGBAR_COLLECTORS_GATE', true),             // Display Laravel Gate checks
        'session'         => env('DEBUGBAR_COLLECTORS_SESSION', false),         // Display session data
        'symfony_request' => env('DEBUGBAR_COLLECTORS_SYMFONY_REQUEST', true),  // Default Request Data
        'mail'            => env('DEBUGBAR_COLLECTORS_MAIL', true),             // Catch mail messages
        'laravel'         => env('DEBUGBAR_COLLECTORS_LARAVEL', true),          // Laravel version and environment
        'events'          => env('DEBUGBAR_COLLECTORS_EVENTS', false),          // All events fired
        'logs'            => env('DEBUGBAR_COLLECTORS_LOGS', false),            // Add the latest log messages
        'config'          => env('DEBUGBAR_COLLECTORS_CONFIG', false),          // Display config settings
        'cache'           => env('DEBUGBAR_COLLECTORS_CACHE', true),            // Display cache events
        'models'          => env('DEBUGBAR_COLLECTORS_MODELS', true),           // Display models
        'livewire'        => env('DEBUGBAR_COLLECTORS_LIVEWIRE', true),         // Display Livewire (when available)
        'inertia'         => env('DEBUGBAR_COLLECTORS_INERTIA', true),          // Display Inertia (when available)
        'jobs'            => env('DEBUGBAR_COLLECTORS_JOBS', true),             // Display dispatched jobs
        'pennant'         => env('DEBUGBAR_COLLECTORS_PENNANT', true),          // Display Pennant feature flags
        'http_client'     => env('DEBUGBAR_COLLECTORS_HTTP_CLIENT', true),      // Display HTTP Client requests
    ],

    /*
     |--------------------------------------------------------------------------
     | Extra options
     |--------------------------------------------------------------------------
     |
     | Configure some DataCollectors
     |
     */

    'options' => [
        'time' => [
            'memory_usage' => env('DEBUGBAR_OPTIONS_TIME_MEMORY_USAGE', false), // Calculated by subtracting memory start and end, it may be inaccurate
        ],
        'messages' => [
            'trace' => env('DEBUGBAR_OPTIONS_MESSAGES_TRACE', true),                  // Trace the origin of the debug message
            'backtrace_exclude_paths' => [],                                                      // Paths to exclude from backtrace. (in addition to defaults)
            'capture_dumps' => env('DEBUGBAR_OPTIONS_MESSAGES_CAPTURE_DUMPS', false), // Capture laravel `dump();` as message
            'timeline' => env('DEBUGBAR_OPTIONS_MESSAGES_TIMELINE', true),            // Add messages to the timeline
        ],
        'memory' => [
            'reset_peak' => env('DEBUGBAR_OPTIONS_MEMORY_RESET_PEAK', false),       // run memory_reset_peak_usage before collecting
            'with_baseline' => env('DEBUGBAR_OPTIONS_MEMORY_WITH_BASELINE', false), // Set boot memory usage as memory peak baseline
            'precision' => (int) env('DEBUGBAR_OPTIONS_MEMORY_PRECISION', 0),       // Memory rounding precision
        ],
        'auth' => [
            'show_name' => env('DEBUGBAR_OPTIONS_AUTH_SHOW_NAME', true),     // Also show the users name/email in the debugbar
            'show_guards' => env('DEBUGBAR_OPTIONS_AUTH_SHOW_GUARDS', true), // Show the guards that are used
        ],
        'gate' => [
            'trace' => false,      // Trace the origin of the Gate checks
            'timeline' => env('DEBUGBAR_OPTIONS_GATE_TIMELINE', false),      // Add mails to the timeline
        ],
        'db' => [
            'with_params'       => env('DEBUGBAR_OPTIONS_WITH_PARAMS', true),   // Render SQL with the parameters substituted
            'exclude_paths'     => [       // Paths to exclude entirely from the collector
                //'vendor/laravel/framework/src/Illuminate/Session', // Exclude sessions queries
            ],
            'backtrace'         => env('DEBUGBAR_OPTIONS_DB_BACKTRACE', true),   // Use a backtrace to find the origin of the query in your files.
            'backtrace_exclude_paths' => [],   // Paths to exclude from backtrace. (in addition to defaults)
            'timeline'          => env('DEBUGBAR_OPTIONS_DB_TIMELINE', false),  // Add the queries to the timeline
            'duration_background'  => env('DEBUGBAR_OPTIONS_DB_DURATION_BACKGROUND', true),   // Show shaded background on each query relative to how long it took to execute.
            'explain' => [                 // Show EXPLAIN output on queries
                'enabled' => env('DEBUGBAR_OPTIONS_DB_EXPLAIN_ENABLED', true),
            ],
            'show_query_result' => env('DEBUGBAR_OPTIONS_DB_SHOW_QUERY_RESULT', false), // Show option to re-run SELECT queries and show the result
            'only_slow_queries' => env('DEBUGBAR_OPTIONS_DB_ONLY_SLOW_QUERIES', true), // Only track queries that last longer than `slow_threshold`
            'slow_threshold'    => env('DEBUGBAR_OPTIONS_DB_SLOW_THRESHOLD', false), // Max query execution time (ms). Exceeding queries will be highlighted
            'memory_usage'      => env('DEBUGBAR_OPTIONS_DB_MEMORY_USAGE', false),   // Show queries memory usage
            'soft_limit'       => (int) env('DEBUGBAR_OPTIONS_DB_SOFT_LIMIT', 100),  // After the soft limit, no parameters/backtrace are captured
            'hard_limit'       => (int) env('DEBUGBAR_OPTIONS_DB_HARD_LIMIT', 500),  // After the hard limit, queries are ignored
        ],
        'mail' => [
            'timeline' => env('DEBUGBAR_OPTIONS_MAIL_TIMELINE', true),  // Add mails to the timeline
            'show_body' => env('DEBUGBAR_OPTIONS_MAIL_SHOW_BODY', true),
        ],
        'views' => [
            'timeline' => env('DEBUGBAR_OPTIONS_VIEWS_TIMELINE', true),                  // Add the views to the timeline
            'data' => env('DEBUGBAR_OPTIONS_VIEWS_DATA', false),                         // True for all data, 'keys' for only names, false for no parameters.
            'group' => (int) env('DEBUGBAR_OPTIONS_VIEWS_GROUP', 50),                    // Group duplicate views. Pass value to auto-group, or true/false to force
            'exclude_paths' => [    // Add the paths which you don't want to appear in the views
                'vendor/filament',   // Exclude Filament components by default
            ],
        ],
        'inertia' => [
            'pages' => env('DEBUGBAR_OPTIONS_VIEWS_INERTIA_PAGES', 'js/Pages'),  // Path for Inertia views
        ],
        'route' => [
            'label' => env('DEBUGBAR_OPTIONS_ROUTE_LABEL', true),  // Show complete route on bar
        ],
        'session' => [
            'masked' => [], // List of keys that are masked
        ],
        'symfony_request' => [
            'label' => env('DEBUGBAR_OPTIONS_SYMFONY_REQUEST_LABEL', true),  // Show route on bar
            'masked' => [], // List of keys that are masked
        ],
        'events' => [
            'data' => env('DEBUGBAR_OPTIONS_EVENTS_DATA', false), // Collect events data
            'listeners' => env('DEBUGBAR_OPTIONS_EVENTS_LISTENERS', false), // Add listeners to the events data
            'excluded' => [], // Example: ['eloquent.*', 'composing', Illuminate\Cache\Events\CacheHit::class]
        ],
        'logs' => [
            'file' => env('DEBUGBAR_OPTIONS_LOGS_FILE'),
        ],
        'config' => [
            'masked' => [],
        ],
        'cache' => [
            'values' => env('DEBUGBAR_OPTIONS_CACHE_VALUES', true), // Collect cache values
            'timeline' => env('DEBUGBAR_OPTIONS_CACHE_TIMELINE', false),  // Add cache events to the timeline
        ],
        'http_client' => [
            'masked' => [],
            'timeline' => env('DEBUGBAR_OPTIONS_HTTP_CLIENT_TIMELINE', true),  // Add requests to the timeline
        ],
    ],

    /**
     * Add any additional DataCollectors by adding the class name of a DataCollector or invokable class.
     */
    'custom_collectors' => [
        // MyCollector::class => env('DEBUGBAR_COLLECTORS_MYCOLLECTOR', true),
    ],

    /*
    |--------------------------------------------------------------------------
    | Editor
    |--------------------------------------------------------------------------
    |
    | Choose your preferred editor to use when clicking file name.
    |
    | Supported: "sublime", "textmate", "emacs", "macvim", "codelite",
    |            "phpstorm", "phpstorm-remote", "idea", "idea-remote",
    |            "vscode", "vscode-insiders", "vscode-remote", "vscode-insiders-remote",
    |            "vscodium", "nova", "xdebug", "atom", "espresso",
    |            "netbeans", "cursor", "windsurf", "zed", "antigravity"
    |
    */

    'editor' => env('DEBUGBAR_EDITOR') ?: env('IGNITION_EDITOR', 'phpstorm'),

    /*
    |--------------------------------------------------------------------------
    | Capture Ajax Requests
    |--------------------------------------------------------------------------
    |
    | The Debugbar can capture Ajax requests and display them. If you don't want this (ie. because of errors),
    | you can use this option to disable sending the data through the headers.
    |
    | Optionally, you can also send ServerTiming headers on ajax requests for the Chrome DevTools.
    |
    | Note for your request to be identified as ajax requests they must either send the header
    | X-Requested-With with the value XMLHttpRequest (most JS libraries send this), or have application/json as a Accept header.
    |
    | By default `ajax_handler_auto_show` is set to true allowing ajax requests to be shown automatically in the Debugbar.
    | Changing `ajax_handler_auto_show` to false will prevent the Debugbar from reloading.
    |
    | You can defer loading the dataset, so it will be loaded with ajax after the request is done. (Experimental)
    */

    'capture_ajax' => env('DEBUGBAR_CAPTURE_AJAX', true),
    'add_ajax_timing' => env('DEBUGBAR_ADD_AJAX_TIMING', false),
    'ajax_handler_auto_show' => env('DEBUGBAR_AJAX_HANDLER_AUTO_SHOW', true),
    'ajax_handler_enable_tab' => env('DEBUGBAR_AJAX_HANDLER_ENABLE_TAB', true),
    'defer_datasets' => env('DEBUGBAR_DEFER_DATASETS', false),

    /*
    |--------------------------------------------------------------------------
    | Remote Path Mapping
    |--------------------------------------------------------------------------
    |
    | If you are using a remote dev server, like Laravel Homestead, Docker, or
    | even a remote VPS, it will be necessary to specify your path mapping.
    |
    | Leaving one, or both of these, empty or null will not trigger the remote
    | URL changes and Debugbar will treat your editor links as local files.
    |
    | "remote_sites_path" is an absolute base path for your sites or projects
    | in Homestead, Vagrant, Docker, or another remote development server.
    |
    | Example value: "/home/vagrant/Code"
    |
    | "local_sites_path" is an absolute base path for your sites or projects
    | on your local computer where your IDE or code editor is running on.
    |
    | Example values: "/Users/<name>/Code", "C:\Users\<name>\Documents\Code"
    |
    */

    'remote_sites_path' => env('DEBUGBAR_REMOTE_SITES_PATH'),
    'local_sites_path' => env('DEBUGBAR_LOCAL_SITES_PATH', env('IGNITION_LOCAL_SITES_PATH')),

    /*
    |--------------------------------------------------------------------------
    | Storage settings
    |--------------------------------------------------------------------------
    |
    | Debugbar stores data for session/ajax requests.
    | You can disable this, so the debugbar stores data in headers/session,
    | but this can cause problems with large data collectors.
    | By default, file storage (in the storage folder) is used. Sqlite will
    | create a database file in the storage folder.
    | Redis and PDO can also be used. For PDO, run the package migrations first.
    |
    | Warning: Enabling storage.open will allow everyone to access previous
    | request, do not enable open storage in publicly available environments!
    | Specify a callback if you want to limit based on IP or authentication.
    | Leaving it to null will allow localhost only.
    */
    'storage' => [
        'enabled'    => env('DEBUGBAR_STORAGE_ENABLED', true),
        'open'       => env('DEBUGBAR_OPEN_STORAGE'), // bool/callback.
        'driver'     => env('DEBUGBAR_STORAGE_DRIVER', 'file'), // redis, file, sqlite, pdo, custom
        'path'       => env('DEBUGBAR_STORAGE_PATH', storage_path('debugbar')), // For file driver
        'connection' => env('DEBUGBAR_STORAGE_CONNECTION'), // Leave null for default connection (Redis/PDO)
        'provider'   => env('DEBUGBAR_STORAGE_PROVIDER', ''), // Instance of StorageInterface for custom driver
    ],

    /*
     |--------------------------------------------------------------------------
     | Assets
     |--------------------------------------------------------------------------
     |
     | Vendor files are included by default, but can be set to false.
     | This can also be set to 'js' or 'css', to only include javascript or css vendor files.
     | Vendor files are for css: (none)
     | and for js: highlight.js
     | So if you want syntax highlighting, set it to true.
     |
     */
    'use_dist_files' => env('DEBUGBAR_USE_DIST_FILES', true),
    'include_vendors' => env('DEBUGBAR_INCLUDE_VENDORS', true),

    /*
     |--------------------------------------------------------------------------
     | Custom Error Handler for Deprecated warnings
     |--------------------------------------------------------------------------
     |
     | When enabled, the Debugbar shows deprecated warnings for Symfony components
     | in the Messages tab.
     |
     | You can set a custom error reporting level to filter which errors are
     | handled. For example, to exclude deprecation warnings:
     |   E_ALL & ~E_DEPRECATED & ~E_USER_DEPRECATED
     |
     | To exclude notices, strict warnings, and deprecations:
     |   E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED & ~E_USER_DEPRECATED
     |
     | Defaults to E_ALL (all errors).
     |
     */
    'error_handler' => env('DEBUGBAR_ERROR_HANDLER', false),
    'error_level' => env('DEBUGBAR_ERROR_LEVEL', E_ALL),

    /*
     |--------------------------------------------------------------------------
     | Clockwork integration
     |--------------------------------------------------------------------------
     |
     | The Debugbar can emulate the Clockwork headers, so you can use the Chrome
     | Extension, without the server-side code. It uses Debugbar collectors instead.
     |
     */
    'clockwork' => env('DEBUGBAR_CLOCKWORK', false),

    /*
     |--------------------------------------------------------------------------
     | Inject Debugbar in Response
     |--------------------------------------------------------------------------
     |
     | Usually, the debugbar is added just before </body>, by listening to the
     | Response after the App is done. If you disable this, you have to add them
     | in your template yourself. See http://phpdebugbar.com/docs/rendering.html
     |
     */

    'inject' => env('DEBUGBAR_INJECT', true),

    /*
     |--------------------------------------------------------------------------
     | Debugbar route prefix
     |--------------------------------------------------------------------------
     |
     | Sometimes you want to set route prefix to be used by Debugbar to load
     | its resources from. Usually the need comes from misconfigured web server or
     | from trying to overcome bugs like this: http://trac.nginx.org/nginx/ticket/97
     |
     */
    'route_prefix' => env('DEBUGBAR_ROUTE_PREFIX', '_debugbar'),

    /*
     |--------------------------------------------------------------------------
     | Debugbar route middleware
     |--------------------------------------------------------------------------
     |
     | Additional middleware to run on the Debugbar routes
     */
    'route_middleware' => [],

    /*
     |--------------------------------------------------------------------------
     | Debugbar route domain
     |--------------------------------------------------------------------------
     |
     | By default Debugbar route served from the same domain that request served.
     | To override default domain, specify it as a non-empty value.
     */
    'route_domain' => env('DEBUGBAR_ROUTE_DOMAIN'),

    /*
     |--------------------------------------------------------------------------
     | Debugbar theme
     |--------------------------------------------------------------------------
     |
     | Switches between light and dark theme. If set to auto it will respect system preferences
     | Possible values: auto, light, dark
     */
    'theme' => env('DEBUGBAR_THEME', 'auto'),

    /*
     |--------------------------------------------------------------------------
     | Backtrace stack limit
     |--------------------------------------------------------------------------
     |
     | By default, the Debugbar limits the number of frames returned by the 'debug_backtrace()' function.
     | If you need larger stacktraces, you can increase this number. Setting it to 0 will result in no limit.
     */
    'debug_backtrace_limit' => (int) env('DEBUGBAR_DEBUG_BACKTRACE_LIMIT', 50),
];


================================================
FILE: database/migrations/2014_12_01_120000_create_phpdebugbar_storage_table.php
================================================
<?php

declare(strict_types=1);

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration {
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        Schema::create('phpdebugbar', function (Blueprint $table) {
            $table->string('id');
            $table->longText('data');
            $table->string('meta_utime');
            $table->dateTime('meta_datetime');
            $table->string('meta_uri');
            $table->string('meta_ip');
            $table->string('meta_method');

            $table->primary('id');
            $table->index('meta_utime');
            $table->index('meta_datetime');
            $table->index('meta_uri');
            $table->index('meta_ip');
            $table->index('meta_method');
        });
    }

    /**
     * Reverse the migrations.
     */
    public function down()
    {
        Schema::drop('phpdebugbar');
    }
};


================================================
FILE: docs/CNAME
================================================
laraveldebugbar.com

================================================
FILE: docs/assets/extra.css
================================================
:root {
    --md-primary-fg-color:        #eb4432;
    --md-primary-fg-color--light: #eb4432;
    --md-primary-fg-color--dark:  #eb4432;
    --md-accent-fg-color:         #eb4432;
    --md-accent-fg-color--light:  #eb4432;
    --md-accent-fg-color--dark:   #eb4432;
}

.mdx-badge__icon{
    background:var(--md-accent-fg-color--transparent);
    padding:.2rem
}
.mdx-badge__text{
    font-size:.85em;
    box-shadow:0 0 0 1px inset var(--md-accent-fg-color--transparent);
    padding:.2rem .3rem
}

================================================
FILE: docs/collectors.md
================================================
---
description: Laravel Debugbar contains a lot of collectors to help you debug or profile Database Queries, Log messages, View templates, Request and Route information, etc.
preview_image: img/preview-usage.jpg
---
!!! warning

    Debugbar can slow the application down (because it has to gather and render data). So when experiencing slowness, try disabling some of the collectors.

# Collectors

This package includes with these Collectors enabled by default:

- [Queries](#db): Show all database queries
- [Messages](#messages): Debug messages and objects
- [Logger](#log): Show all Log messages (Show in Messages when available)
- [Views](#views): Show the currently loaded views.
- [Timeline](#time): Timeline with Booting and Application timing
- [Route](#route): Show information about the current Route.
- [Exceptions](#exceptions): Exceptions and Throwable with stacktrace
- [Session](#session): Current session data
- [Request](#request): Request data
- [Livewire](#livewire): Only active when Livewire is used
- [PhpInfo](#phpinfo): Current PHP version


These collectors can be enabled in the config:

- [Gate](#gate): Show the gates that are checked
- [Events](#events): Show all events
- [Auth](#auth): Logged in status
- [Mail](#mail): Sent emails
- [Laravel Info](#laravel): Show the Laravel version and Environment. 
- [Memory](#memory): Memory usage
- [Config](#config): Display the values from the config files.
- [Cache](#cache): Display all cache events. 
- [Models](#models): Loaded Models
- [Jobs](#jobs): Sent emails
- [Logs](#logs): Logs from the log files
- [Pennant](#pennant): Show Pennant flags
- [Files](#files): Show the files that are included/required by PHP.

To enable or disable any of the collectors, set the configuration to `true` or `false`. Some collector have additional options in the configuration:

<details><summary>config/debugbar.php</summary>

```php

   /*
     |--------------------------------------------------------------------------
     | DataCollectors
     |--------------------------------------------------------------------------
     |
     | Enable/disable DataCollectors
     |
     */

    'collectors' => [
        'phpinfo'         => true,  // Php version
        'messages'        => true,  // Messages
        'time'            => true,  // Time Datalogger
        'memory'          => true,  // Memory usage
        'exceptions'      => true,  // Exception displayer
        'log'             => true,  // Logs from Monolog (merged in messages if enabled)
        'db'              => true,  // Show database (PDO) queries and bindings
        'views'           => true,  // Views with their data
        'route'           => true,  // Current route information
        'auth'            => false, // Display Laravel authentication status
        'gate'            => false,  // Display Laravel Gate checks
        'session'         => true,  // Display session data
        'symfony_request' => true,  // Only one can be enabled..
        'mail'            => false,  // Catch mail messages
        'laravel'         => false, // Laravel version and environment
        'events'          => false, // All events fired
        'default_request' => false, // Regular or special Symfony request logger
        'logs'            => false, // Add the latest log messages
        'files'           => false, // Show the included files
        'config'          => false, // Display config settings
        'cache'           => false, // Display cache events
        'models'          => false,  // Display models
        'livewire'        => true,  // Display Livewire (when available)
        'jobs'            => false, // Display dispatched jobs
        'pennant'         => false, // Display Pennant feature flags
    ],

    


```

</details>

## Database Queries { #db }

<!-- md:version v1.0 -->
<!-- md:feature collectors.db -->

The Query Collector has the following features
 - Show the executed queries including timing
 - Show/mark duplicate queries
 - Show used parameters
 - Run on-demand 'EXPLAIN' queries and link to Visual Explain  (disabled bu default)
 - Copy the query to clipboard
 - Show the source of the query and open in editor
 - Visualize the duration of the queries with bottom border
 - Add queries to the timeline (disabled by default)
 - Limit the number of queries to avoid slowing down the Debugbar.
 - Exclude paths (eg. for session or vendors)
 - Show memory usage (disabled by default)

![Query Collector](img/queries.png)

<details><summary>config/debugbar.php</summary>

```php
  'options' => [
        // ...
        'db' => [
            'with_params'       => true,   // Render SQL with the parameters substituted
            'exclude_paths'     => [       // Paths to exclude entirely from the collector
                // 'vendor/laravel/framework/src/Illuminate/Session', // Exclude sessions queries
            ],
            'backtrace'         => true,   // Use a backtrace to find the origin of the query in your files.
            'backtrace_exclude_paths' => [],   // Paths to exclude from backtrace. (in addition to defaults)
            'timeline'          => false,  // Add the queries to the timeline
            'duration_background'  => true,   // Show shaded background on each query relative to how long it took to execute.
            'explain' => [                 // Show EXPLAIN output on queries
                'enabled' => false,
            ],
            'hints'             => false,   // Show hints for common mistakes
            'show_copy'         => true,    // Show copy button next to the query,
            'slow_threshold'    => false,   // Only track queries that last longer than this time in ms
            'memory_usage'      => false,   // Show queries memory usage
            'soft_limit'       => 100,      // After the soft limit, no parameters/backtrace are captured
            'hard_limit'       => 500,      // After the hard limit, queries are ignored
        ],
        // ...
    ],
```
</details>

### On-demand query EXPLAIN

<!-- md:version v3.14.0 -->
<!-- md:flag experimental -->
<!-- md:feature options.db.explain -->

Enable the `options.db.explain` option to run on-demand EXPLAIN queries for any SELECT query in the Debugbar.
This will update in the interface. You also have an option to navigate to mysqlexplain.com for a visual explain.

![Query On-demand Explain](img/query-explain.gif)


### Query limits

<!-- md:version v3.10.0 -->
<!-- md:feature options.db.soft_limit: 100 -->
<!-- md:feature options.db.hard_limit: 500 -->

With Query Hard & Soft limits, you can reduce the amount of queries shown by default. When the soft limit is reached, bindings will be excluded.
When the hard limit is reached, the queries are excluded altogether to prevent loading too much data.
If you want to avoid any limits, you can set the option to `null`

![Query Limits](img/query-limits.png)


## Messages { #messages }

<!-- md:version v1.0 -->
<!-- md:feature collectors.messages -->

The Message collectors gathers all messages from `debug()` calls and anything written to the logs.

You can pass multiple parameters to `debug()`, even complex object.

### Trace

When calling `debug()`, the source of the call is shown and can be opened with your IDE.

<!-- md:version v3.10.0 -->
<!-- md:feature options.messages.trace -->

![Messages Collector](img/messages.png)

## Logger { #log }

<!-- md:version v1.0 -->
<!-- md:feature collectors.log -->

When the [Messages Collector](#messages) is enabled, Log messages are added to the Messages tab. Otherwise a Monolog tab will show with just the log messages

![Monolog](img/monolog.png)

<details><summary>config/debugbar.php</summary>

```php
  'options' => [
        // ...
        'db' => [
            'with_params'       => true,   // Render SQL with the parameters substituted
            'exclude_paths'     => [       // Paths to exclude entirely from the collector
                // 'vendor/laravel/framework/src/Illuminate/Session', // Exclude sessions queries
            ],
            'backtrace'         => true,   // Use a backtrace to find the origin of the query in your files.
            'backtrace_exclude_paths' => [],   // Paths to exclude from backtrace. (in addition to defaults)
            'timeline'          => false,  // Add the queries to the timeline
            'duration_background'  => true,   // Show shaded background on each query relative to how long it took to execute.
            'explain' => [                 // Show EXPLAIN output on queries
                'enabled' => false,
            ],
            'hints'             => false,   // Show hints for common mistakes
            'show_copy'         => true,    // Show copy button next to the query,
            'slow_threshold'    => false,   // Only track queries that last longer than this time in ms
            'memory_usage'      => false,   // Show queries memory usage
            'soft_limit'       => 100,      // After the soft limit, no parameters/backtrace are captured
            'hard_limit'       => 500,      // After the hard limit, queries are ignored
        ],
        // ...
    ],
```
</details>

## Views { #views }

<!-- md:version v1.0 -->
<!-- md:feature collectors.views -->

The ViewCollector shows views and has the following features:

- Show used templates and source
- Optionally add them to the timeline
- Group similar views (useful for components)
- Exclude folders (eg. for Filament or other vendors)
- Optionally show data (this can be resource heavy)

![ViewCollector](img/views.png)

```php
    'options' => [
        'views' => [
            'timeline' => false,    // Add the views to the timeline (Experimental)
            'data' => false,        //true for all data, 'keys' for only names, false for no parameters.
            'group' => 50,          // Group duplicate views. Pass value to auto-group, or true/false to force
            'exclude_paths' => [    // Add the paths which you don't want to appear in the views
                'vendor/filament'   // Exclude Filament components by default
            ],
        ],
    ]

```

## Timeline { #time }

<!-- md:version v1.0 -->
<!-- md:feature collectors.time -->

![Timeline Collector](img/timeline.png)

<details><summary>config/debugbar.php</summary>

```php
    'options' => [
        'time' => [
            'memory_usage' => false,  // Calculated by subtracting memory start and end, it may be inaccurate
        ],
    ]
```

</details>

## Route { #route }

<!-- md:version v1.0 -->
<!-- md:feature collectors.route -->

This shows the current route and middleware.

![RouteCollector](img/route.png)

<details><summary>config/debugbar.php</summary>

```php
    'options' => [
        'route' => [
            'label' => true,  // show complete route on bar
        ],    
    ],
```

</details>

## Exceptions { #exceptions }

<!-- md:version v1.0 -->
<!-- md:feature collectors.exceptions -->

Show any errors from the application, including traces.

You can manually add exceptions by calling `debugbar()->addThrowable($throwable);`

![ExceptionCollector](img/exceptions.png)

## Session { #session }

<!-- md:version v1.0 -->
<!-- md:feature collectors.phpinfo -->
<!-- md:default false -->

A simple widget showing the current PHP Version.

![Session Collector](img/session.png)


## Request { #request }

<!-- md:version v1.0 -->
<!-- md:feature collectors.request -->

Show Request info, like headers, data, cookies etc. Sensitive data is hidden by default, but you can add your own sensitive data to the config.

![Request Collector](img/request.png)

<details><summary>config/debugbar.php</summary>

```php
    'options' => [
        'symfony_request' => [
            'hiddens' => [], // hides sensitive values using array paths, example: request_request.password
        ],
    ],
```

</details>

## Livewire { #livewire }

<!-- md:version v3.3.3 -->
<!-- md:feature collectors.livewire -->

Show the Livewire components that are rendered on the page.

![Livewire Collector](img/livewire.png)

## PHP Info { #phpinfo }

<!-- md:version v1.0 -->
<!-- md:feature collectors.phpinfo -->

A simple widget showing the current PHP Version.

![PhpInfo Collector](img/phpinfo.png)

## Gate { #gate }

<!-- md:version v2.1.0 -->
<!-- md:feature collectors.gate -->
<!-- md:default false -->

The Gate Collector shows the checks that have passed or failed.

![Gate Collector](img/gate.png)

## Events { #events }

<!-- md:version v1.0 -->
<!-- md:feature collectors.events -->

This is similar to the Timeline buts adds all events. This can be a lot of data, so use with caution.

![Events](img/events.gif)

<details><summary>config/debugbar.php</summary>

```php
    'options' => [
        'events' => [
            'data' => false, // collect events data, listeners
        ],
    ],
```

</details>


## Auth { #auth }

<!-- md:version v1.2.2 -->
<!-- md:feature collectors.auth -->
<!-- md:default false -->

A widget showing the current login status + a collector with more information.

![Auth Collector](img/auth.png)

<details><summary>config/debugbar.php</summary>

```php
    'options' => [
        'auth' => [
            'show_name' => true,   // Also show the users name/email in the debugbar
            'show_guards' => true, // Show the guards that are used
        ],
    ],
```

</details>

## Mail { #mail }

<!-- md:version v1.0 -->
<!-- md:feature collectors.mail -->
<!-- md:default false -->

A collector showing the sent emails.

![Mail Collector](img/mail.png)

### Mail Preview

<!-- md:version v3.12.0 -->
<!-- md:feature options.mail.show_body -->
<!-- md:default true -->

You can open a rendered preview of the email when the body is attached, by clicking 'View Mail'

![Mail Preview](img/mail-preview.png)

## Laravel Info { #laravel }

<!-- md:version v1.0 -->
<!-- md:feature collectors.laravel -->
<!-- md:default false -->

A widget showing the current Laravel Version, environment and locale.

![Laravel Collector](img/laravel-info.png)

## Memory Usage { #memory }

<!-- md:version v1.0 -->
<!-- md:feature collectors.memory -->
<!-- md:default false -->

Show the Memory Usage of the application

<details><summary>config/debugbar.php</summary>

```php
    'options' => [
        'memory' => [
            'reset_peak' => false,     // run memory_reset_peak_usage before collecting
            'with_baseline' => false,  // Set boot memory usage as memory peak baseline
            'precision' => 0,          // Memory rounding precision
        ],
    ]
```

</details>

![Memory Collector](img/memory.png)

## Config { #config }

<!-- md:version v3.0 -->
<!-- md:feature collectors.config -->
<!-- md:default false -->

!!! warning

     Be careful when turning this on, as it can expose sensitive credentials. Make sure your app is not publicly available.


Shows the loaded configuration values.

![Config Collector](img/config.png)

## Cache { #cache }

<!-- md:version v3.0.0 -->
<!-- md:feature collectors.cache -->
<!-- md:default false -->

Show the hits/misses of the Cache in a Timeline.

![Cache Collector](img/cache.png)

<details><summary>config/debugbar.php</summary>

```php
    'options' => [
        'cache' => [
            'values' => true, // collect cache values
        ],    ],
```

</details>

## Models { #models }

<!-- md:version v3.2.5-->
<!-- md:feature collectors.models -->
<!-- md:default false -->

Shows how often each Model is loaded. If this is high, you might want move some logic to SQL instead of processing large Collections.

![Models Collector](img/models.png)

## Jobs { #jobs }

<!-- md:version v3.2.5-->
<!-- md:feature collectors.models -->
<!-- md:default false -->

Show the Jobs that are dispatched from this request.

![Jobs Collector](img/jobs.png)

## Logs { #logs }

<!-- md:version v1.0-->
<!-- md:feature collectors.logs -->
<!-- md:default false -->

Show the most recent logs from the log files in storage/logs

![Logs Collector](img/logs.png)

<details><summary>config/debugbar.php</summary>

```php
    'options' => [
        'logs' => [
            'file' => null, // Additional files
        ],   
     ],
```

</details>

## Pennant { #pennant }

<!-- md:version v3.14.0 -->
<!-- md:feature collectors.pennant -->
<!-- md:default false -->

Shows all the Pennant flags that are checked during this request

![Pennant Collector](img/pennant.png)

## Files { #files }

<!-- md:version v1.0 -->
<!-- md:feature collectors.files -->
<!-- md:default false -->

!!! deprecated

     This was mainly useful before OPcache was widely used, and this collector could be used for optimizing files. It's deprecated now.

![Files Collector](img/files.png)


================================================
FILE: docs/features.md
================================================
---
description: Laravel Debugbar contains features like collectors, capturing ajax requesting, browsing history etc.
preview_image: img/preview-features.jpg
---

## Collectors

See the [Collectors page](collectors.md) for available collectors.

## AJAX Requests

Laravel Debugbar tracks AJAX/XHR request in your application. You can open these in the dropdown menu, or click the history button to show the requests.

Tip: you can disable he 'autoshow' toggle in the history tab to keep the current dataset active, instead of switching.

![AJAX Request](img/ajax.gif)

<details><summary>config/debugbar.php</summary>

```php
/*
 |--------------------------------------------------------------------------
 | Capture Ajax Requests
 |--------------------------------------------------------------------------
 |
 | The Debugbar can capture Ajax requests and display them. If you don't want this (ie. because of errors),
 | you can use this option to disable sending the data through the headers.
 |
 | Optionally, you can also send ServerTiming headers on ajax requests for the Chrome DevTools.
 |
 | Note for your request to be identified as ajax requests they must either send the header
 | X-Requested-With with the value XMLHttpRequest (most JS libraries send this), or have application/json as a Accept header.
 |
 | By default `ajax_handler_auto_show` is set to true allowing ajax requests to be shown automatically in the Debugbar.
 | Changing `ajax_handler_auto_show` to false will prevent the Debugbar from reloading.
 */

'capture_ajax' => true,
'add_ajax_timing' => false,
'ajax_handler_auto_show' => true,
'ajax_handler_enable_tab' => true,

```

</details>

## History browser

By default, Debugbar stores request history. This is useful for non-browser requests, redirects or external requests. You can open it with the 'folder' button (3rd from the right).

With the default settings, storage is only visible from your local IP. To enable browsing the history, change the `storage.open` setting or `DEBUGBAR_OPEN_STORAGE` env key.

!!! warning

    Do not open the history outside your local environment, to avoid leaking credentials or sensitive data.

![History](img/history.gif)

<details><summary>config/debugbar.php</summary>

```php
    /*
     |--------------------------------------------------------------------------
     | Storage settings
     |--------------------------------------------------------------------------
     |
     | DebugBar stores data for session/ajax requests.
     | You can disable this, so the debugbar stores data in headers/session,
     | but this can cause problems with large data collectors.
     | By default, file storage (in the storage folder) is used. Redis and PDO
     | can also be used. For PDO, run the package migrations first.
     |
     | Warning: Enabling storage.open will allow everyone to access previous
     | request, do not enable open storage in publicly available environments!
     | Specify a callback if you want to limit based on IP or authentication.
     | Leaving it to null will allow localhost only.
     */
    'storage' => [
        'enabled'    => true,
        'open'       => env('DEBUGBAR_OPEN_STORAGE'), // bool/callback.
        'driver'     => 'file', // redis, file, pdo, socket, custom
        'path'       => storage_path('debugbar'), // For file driver
        'connection' => null,   // Leave null for default connection (Redis/PDO)
        'provider'   => '', // Instance of StorageInterface for custom driver
        'hostname'   => '127.0.0.1', // Hostname to use with the "socket" driver
        'port'       => 2304, // Port to use with the "socket" driver
    ],
```

</details>

## Light and Dark mode Theme

<!-- md:version v3.4.0 -->
<!-- md:feature theme -->
<!-- md:default auto -->

Debugbar supports Dark and Light mode. It defaults to `auto` which uses the browser setting. You can set it with `DEBUGBAR_THEME` or change the config to force th `light` or `dark`.
See Light Mode below:

![Light Theme](img/light-theme.png)


## Editor integration

Debugbar can open links to views, exception, routes etc in your Editor directly, if you set this up correctly. By default this should just work for PHPStorm on local development. You can change your editor by setting `DEBUGBAR_EDITOR` or the config.
If your working in a remote host or docker, you can change the mapping between remote and local paths.

![History](img/editor.gif)

<details><summary>config/debugbar.php</summary>

```php
/*
    |--------------------------------------------------------------------------
    | Editor
    |--------------------------------------------------------------------------
    |
    | Choose your preferred editor to use when clicking file name.
    |
    | Supported: "phpstorm", "vscode", "vscode-insiders", "vscode-remote",
    |            "vscode-insiders-remote", "vscodium", "textmate", "emacs",
    |            "sublime", "atom", "nova", "macvim", "idea", "netbeans",
    |            "xdebug", "espresso"
    |
    */

    'editor' => env('DEBUGBAR_EDITOR') ?: env('IGNITION_EDITOR', 'phpstorm'),

    /*
    |--------------------------------------------------------------------------
    | Remote Path Mapping
    |--------------------------------------------------------------------------
    |
    | If you are using a remote dev server, like Laravel Homestead, Docker, or
    | even a remote VPS, it will be necessary to specify your path mapping.
    |
    | Leaving one, or both of these, empty or null will not trigger the remote
    | URL changes and Debugbar will treat your editor links as local files.
    |
    | "remote_sites_path" is an absolute base path for your sites or projects
    | in Homestead, Vagrant, Docker, or another remote development server.
    |
    | Example value: "/home/vagrant/Code"
    |
    | "local_sites_path" is an absolute base path for your sites or projects
    | on your local computer where your IDE or code editor is running on.
    |
    | Example values: "/Users/<name>/Code", "C:\Users\<name>\Documents\Code"
    |
    */

    'remote_sites_path' => env('DEBUGBAR_REMOTE_SITES_PATH'),
    'local_sites_path' => env('DEBUGBAR_LOCAL_SITES_PATH', env('IGNITION_LOCAL_SITES_PATH')),

```

</details>

## Configuraton

### Custom features { #custom }

Custom features or collectors are not enabled by default, but can be enabled by enabling the configuration setting.
This is usually because the target audience of a feature is not large enough.

### Configurable options { #config }

Configurable features are not enabled by default, but can be enabled. This is usually because the target audience of a feature is not large enough.
You can enable the feature by changing the mentioned value in [config/debugbar.php](https://github.com/fruitcake/laravel-debugbar/blob/master/config/debugbar.php) after [publishing the config](installation.md#publish-config).

### Experimental Features  { #experimental }

Some features are marked as 'Experimental'. This mostly means the feature is new and not enabled by default, but might become enable by default in the future.
You are welcome to test this feature and report any issues. 



================================================
FILE: docs/index.md
================================================
---
title: Debugbar for Laravel
description: Laravel Debugbar is a package that integrates PHP Debug Bar with Laravel to debug database queries and profile other information.
hide:
  - navigation
  - toc 
---

# Laravel Debugbar
![Unit Tests](https://github.com/fruitcake/laravel-debugbar/workflows/Unit%20Tests/badge.svg)
[![Packagist License](https://img.shields.io/badge/Licence-MIT-blue)](http://choosealicense.com/licenses/mit/)
[![Latest Stable Version](https://img.shields.io/packagist/v/fruitcake/laravel-debugbar?label=Stable)](https://packagist.org/packages/fruitcake/laravel-debugbar)
[![Total Downloads](https://img.shields.io/packagist/dt/barryvdh/laravel-debugbar?label=Downloads)](https://packagist.org/packages/fruitcake/laravel-debugbar)
[![Fruitcake](https://img.shields.io/badge/Powered%20By-Fruitcake-b2bc35.svg)](https://fruitcake.nl/)

Laravel Debugbar is a package that integrates [PHP Debug Bar](https://github.com/php-debugbar/php-debugbar) with Laravel to debug [database queries](collectors.md#db) and [profile other information](collectors.md).

![Debugbar Dark Mode screenshot](img/debugbar.gif)

!!! example "Live Demo"
    See an interactive example of the Laravel Debugbar in action below. (Don't worry, this is just dummy data)

!!! tip "4.x release"
    In January 2026, a new major version of the Debugbar is released. See [fruitcake.nl/blog/laravel-debugbar-v4-release](https://fruitcake.nl/blog/laravel-debugbar-v4-release) and [UPGRADE.md](https://github.com/fruitcake/laravel-debugbar/blob/master/UPGRADE.md)

[Get started](installation.md){ .md-button .md-button--primary } [View code :material-github:](https://github.com/fruitcake/laravel-debugbar){ .md-button }


================================================
FILE: docs/installation.md
================================================
---
description: Installing Laravel Debugbar in a project is simple. Use 'composer require fruitcake/laravel-debugbar --dev' to get started now
preview_image: img/preview-install.jpg
---

# Installation

## Install with composer
!!! danger

    Use the Debugbar only in development. Do not use Debugbar on publicly accessible websites, as it will leak information from stored requests (by design).


Require this package with composer. It is recommended to only require the package for development.

```shell
composer require fruitcake/laravel-debugbar --dev
```

Laravel uses Package Auto-Discovery, so doesn't require you to manually add the ServiceProvider.

> If you use a catch-all/fallback route, make sure you load the Debugbar ServiceProvider before your own App ServiceProviders.


## Enable
By default, Debugbar will be enabled when `APP_DEBUG` is `true`.


The profiler is enabled by default, if you have APP_DEBUG=true. You can override that in the config (`debugbar.enabled`) or by setting `DEBUGBAR_ENABLED` in your `.env`. See more options in `config/debugbar.php`

```php
    /*
     |--------------------------------------------------------------------------
     | Debugbar Settings
     |--------------------------------------------------------------------------
     |
     | Debugbar is enabled by default, when debug is set to true in app.php.
     | You can override the value by setting enable to true or false instead of null.
     |
     | You can provide an array of URI's that must be ignored (eg. 'api/*')
     |
     */

    'enabled' => env('DEBUGBAR_ENABLED', null),
    'hide_empty_tabs' => false, // Hide tabs until they have content
    'except' => [
        'telescope*',
        'horizon*',
    ],

```

### Publish config

```shell
php artisan vendor:publish --provider="Fruitcake\LaravelDebugbar\ServiceProvider"
```

## Non-default installs

### Without auto-discovery

If you don't use auto-discovery, add the ServiceProvider to the providers list. For Laravel 11 or newer, add the ServiceProvider in bootstrap/providers.php. For Laravel 10 or older, add the ServiceProvider in config/app.php.

```php
Fruitcake\LaravelDebugbar\ServiceProvider::class,
```

If you want to use the facade to log messages, add this within the `register` method of `app/Providers/AppServiceProvider.php` class:

```php
public function register(): void
{
    $loader = \Illuminate\Foundation\AliasLoader::getInstance();
    $loader->alias('Debugbar', \Fruitcake\LaravelDebugbar\Facades\Debugbar::class);
}
```

### With Octane

Laravel Debugbar 4.x works out of the box with Octane. No need to add anything to your config.

If you're upgrading from Laravel Debugbar 3.x, remove the 'flush' config for Debugbar in `config/octane.php`.

### With Lumen

Lumen is not supported anymore, as it's no longer actively maintained.


================================================
FILE: docs/overrides/main.html
================================================
{% extends "base.html" %}

<!-- Meta tags -->
{% block extrahead %}
{{ super() }}

{% if page.is_homepage %}
<meta property="og:title" content="{{ config.site_name }}" />
{% elif page.meta and page.meta.title %}
<meta property="og:title" content="{{ page.meta.title }} - {{ config.site_name }}" />
{% elif page.title and not page.is_homepage %}
<meta property="og:title" content="{{ page.title | striptags }} - {{ config.site_name }}" />
{% else %}
<meta property="og:title" content="{{ config.site_name }}}" />
{% endif %}

{% if page.meta and page.meta.description %}
<meta property="og:description" content="{{ page.meta.description }}" />
{% elif config.site_description %}
<meta property="og:description" content="{{ config.site_description }}" />
{% endif %}

<meta property="og:type" content="website" />
{% if page.canonical_url %}
<meta property="og:url" content="{{ page.canonical_url }}" />
{% endif %}

{% if page.meta and page.meta.preview_image %}
<meta property="og:image" content="{{ config.site_url }}{{ page.meta.preview_image }}" />
{% else %}
<meta property="og:image" content="{{ config.site_url }}img/preview.jpg" />
{% endif %}

{% endblock %}

{% block scripts %}
<!-- Add scripts that need to run before here -->
{{ super() }}


<!-- Start Debugbar -->
<script> Sfdump = window.Sfdump || (function (doc) { doc.documentElement.classList.add('sf-js-enabled'); var rxEsc = /([.*+?^${}()|\[\]\/\\])/g, idRx = /\bsf-dump-\d+-ref[012]\w+\b/, keyHint = 0 <= navigator.platform.toUpperCase().indexOf('MAC') ? 'Cmd' : 'Ctrl', addEventListener = function (e, n, cb) { e.addEventListener(n, cb, false); }; if (!doc.addEventListener) { addEventListener = function (element, eventName, callback) { element.attachEvent('on' + eventName, function (e) { e.preventDefault = function () {e.returnValue = false;}; e.target = e.srcElement; callback(e); }); }; } function toggle(a, recursive) { var s = a.nextSibling || {}, oldClass = s.className, arrow, newClass; if (/\bsf-dump-compact\b/.test(oldClass)) { arrow = '▼'; newClass = 'sf-dump-expanded'; } else if (/\bsf-dump-expanded\b/.test(oldClass)) { arrow = '▶'; newClass = 'sf-dump-compact'; } else { return false; } if (doc.createEvent && s.dispatchEvent) { var event = doc.createEvent('Event'); event.initEvent('sf-dump-expanded' === newClass ? 'sfbeforedumpexpand' : 'sfbeforedumpcollapse', true, false); s.dispatchEvent(event); } a.lastChild.innerHTML = arrow; s.className = s.className.replace(/\bsf-dump-(compact|expanded)\b/, newClass); if (recursive) { try { a = s.querySelectorAll('.'+oldClass); for (s = 0; s < a.length; ++s) { if (-1 == a[s].className.indexOf(newClass)) { a[s].className = newClass; a[s].previousSibling.lastChild.innerHTML = arrow; } } } catch (e) { } } return true; }; function collapse(a, recursive) { var s = a.nextSibling || {}, oldClass = s.className; if (/\bsf-dump-expanded\b/.test(oldClass)) { toggle(a, recursive); return true; } return false; }; function expand(a, recursive) { var s = a.nextSibling || {}, oldClass = s.className; if (/\bsf-dump-compact\b/.test(oldClass)) { toggle(a, recursive); return true; } return false; }; function collapseAll(root) { var a = root.querySelector('a.sf-dump-toggle'); if (a) { collapse(a, true); expand(a); return true; } return false; } function reveal(node) { var previous, parents = []; while ((node = node.parentNode || {}) && (previous = node.previousSibling) && 'A' === previous.tagName) { parents.push(previous); } if (0 !== parents.length) { parents.forEach(function (parent) { expand(parent); }); return true; } return false; } function highlight(root, activeNode, nodes) { resetHighlightedNodes(root); Array.from(nodes||[]).forEach(function (node) { if (!/\bsf-dump-highlight\b/.test(node.className)) { node.className = node.className + ' sf-dump-highlight'; } }); if (!/\bsf-dump-highlight-active\b/.test(activeNode.className)) { activeNode.className = activeNode.className + ' sf-dump-highlight-active'; } } function resetHighlightedNodes(root) { Array.from(root.querySelectorAll('.sf-dump-str, .sf-dump-key, .sf-dump-public, .sf-dump-protected, .sf-dump-private')).forEach(function (strNode) { strNode.className = strNode.className.replace(/\bsf-dump-highlight\b/, ''); strNode.className = strNode.className.replace(/\bsf-dump-highlight-active\b/, ''); }); } return function (root, x) { root = doc.getElementById(root); var indentRx = new RegExp('^('+(root.getAttribute('data-indent-pad') || ' ').replace(rxEsc, '\\$1')+')+', 'm'), options = {"maxDepth":1,"maxStringLength":160,"fileLinkFormat":false}, elt = root.getElementsByTagName('A'), len = elt.length, i = 0, s, h, t = []; while (i < len) t.push(elt[i++]); for (i in x) { options[i] = x[i]; } function a(e, f) { addEventListener(root, e, function (e, n) { if ('A' == e.target.tagName) { f(e.target, e); } else if ('A' == e.target.parentNode.tagName) { f(e.target.parentNode, e); } else { n = /\bsf-dump-ellipsis\b/.test(e.target.className) ? e.target.parentNode : e.target; if ((n = n.nextElementSibling) && 'A' == n.tagName) { if (!/\bsf-dump-toggle\b/.test(n.className)) { n = n.nextElementSibling || n; } f(n, e, true); } } }); }; function isCtrlKey(e) { return e.ctrlKey || e.metaKey; } function xpathString(str) { var parts = str.match(/[^'"]+|['"]/g).map(function (part) { if ("'" == part) { return '"\'"'; } if ('"' == part) { return "'\"'"; } return "'" + part + "'"; }); return "concat(" + parts.join(",") + ", '')"; } function xpathHasClass(className) { return "contains(concat(' ', normalize-space(@class), ' '), ' " + className +" ')"; } a('mouseover', function (a, e, c) { if (c) { e.target.style.cursor = "pointer"; } }); a('click', function (a, e, c) { if (/\bsf-dump-toggle\b/.test(a.className)) { e.preventDefault(); if (!toggle(a, isCtrlKey(e))) { var r = doc.getElementById(a.getAttribute('href').slice(1)), s = r.previousSibling, f = r.parentNode, t = a.parentNode; t.replaceChild(r, a); f.replaceChild(a, s); t.insertBefore(s, r); f = f.firstChild.nodeValue.match(indentRx); t = t.firstChild.nodeValue.match(indentRx); if (f && t && f[0] !== t[0]) { r.innerHTML = r.innerHTML.replace(new RegExp('^'+f[0].replace(rxEsc, '\\$1'), 'mg'), t[0]); } if (/\bsf-dump-compact\b/.test(r.className)) { toggle(s, isCtrlKey(e)); } } if (c) { } else if (doc.getSelection) { try { doc.getSelection().removeAllRanges(); } catch (e) { doc.getSelection().empty(); } } else { doc.selection.empty(); } } else if (/\bsf-dump-str-toggle\b/.test(a.className)) { e.preventDefault(); e = a.parentNode.parentNode; e.className = e.className.replace(/\bsf-dump-str-(expand|collapse)\b/, a.parentNode.className); } }); elt = root.getElementsByTagName('SAMP'); len = elt.length; i = 0; while (i < len) t.push(elt[i++]); len = t.length; for (i = 0; i < len; ++i) { elt = t[i]; if ('SAMP' == elt.tagName) { a = elt.previousSibling || {}; if ('A' != a.tagName) { a = doc.createElement('A'); a.className = 'sf-dump-ref'; elt.parentNode.insertBefore(a, elt); } else { a.innerHTML += ' '; } a.title = (a.title ? a.title+'\n[' : '[')+keyHint+'+click] Expand all children'; a.innerHTML += elt.className == 'sf-dump-compact' ? '<span>▶</span>' : '<span>▼</span>'; a.className += ' sf-dump-toggle'; x = 1; if ('sf-dump' != elt.parentNode.className) { x += elt.parentNode.getAttribute('data-depth')/1; } } else if (/\bsf-dump-ref\b/.test(elt.className) && (a = elt.getAttribute('href'))) { a = a.slice(1); elt.className += ' sf-dump-hover'; elt.className += ' '+a; if (/[\[{]$/.test(elt.previousSibling.nodeValue)) { a = a != elt.nextSibling.id && doc.getElementById(a); try { s = a.nextSibling; elt.appendChild(a); s.parentNode.insertBefore(a, s); if (/^[@#]/.test(elt.innerHTML)) { elt.innerHTML += ' <span>▶</span>'; } else { elt.innerHTML = '<span>▶</span>'; elt.className = 'sf-dump-ref'; } elt.className += ' sf-dump-toggle'; } catch (e) { if ('&' == elt.innerHTML.charAt(0)) { elt.innerHTML = '…'; elt.className = 'sf-dump-ref'; } } } } } if (doc.evaluate && Array.from && root.children.length > 1) { root.setAttribute('tabindex', 0); SearchState = function () { this.nodes = []; this.idx = 0; }; SearchState.prototype = { next: function () { if (this.isEmpty()) { return this.current(); } this.idx = this.idx < (this.nodes.length - 1) ? this.idx + 1 : 0; return this.current(); }, previous: function () { if (this.isEmpty()) { return this.current(); } this.idx = this.idx > 0 ? this.idx - 1 : (this.nodes.length - 1); return this.current(); }, isEmpty: function () { return 0 === this.count(); }, current: function () { if (this.isEmpty()) { return null; } return this.nodes[this.idx]; }, reset: function () { this.nodes = []; this.idx = 0; }, count: function () { return this.nodes.length; }, }; function showCurrent(state) { var currentNode = state.current(), currentRect, searchRect; if (currentNode) { reveal(currentNode); highlight(root, currentNode, state.nodes); if ('scrollIntoView' in currentNode) { currentNode.scrollIntoView(true); currentRect = currentNode.getBoundingClientRect(); searchRect = search.getBoundingClientRect(); if (currentRect.top < (searchRect.top + searchRect.height)) { window.scrollBy(0, -(searchRect.top + searchRect.height + 5)); } } } counter.textContent = (state.isEmpty() ? 0 : state.idx + 1) + ' of ' + state.count(); } var search = doc.createElement('div'); search.className = 'sf-dump-search-wrapper sf-dump-search-hidden'; search.innerHTML = ' <input type="text" class="sf-dump-search-input"> <span class="sf-dump-search-count">0 of 0<\/span> <button type="button" class="sf-dump-search-input-previous" tabindex="-1"> <svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1683 1331l-166 165q-19 19-45 19t-45-19L896 965l-531 531q-19 19-45 19t-45-19l-166-165q-19-19-19-45.5t19-45.5l742-741q19-19 45-19t45 19l742 741q19 19 19 45.5t-19 45.5z"\/><\/svg> <\/button> <button type="button" class="sf-dump-search-input-next" tabindex="-1"> <svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1683 808l-742 741q-19 19-45 19t-45-19L109 808q-19-19-19-45.5t19-45.5l166-165q19-19 45-19t45 19l531 531 531-531q19-19 45-19t45 19l166 165q19 19 19 45.5t-19 45.5z"\/><\/svg> <\/button> '; root.insertBefore(search, root.firstChild); var state = new SearchState(); var searchInput = search.querySelector('.sf-dump-search-input'); var counter = search.querySelector('.sf-dump-search-count'); var searchInputTimer = 0; var previousSearchQuery = ''; addEventListener(searchInput, 'keyup', function (e) { var searchQuery = e.target.value; /* Don't perform anything if the pressed key didn't change the query */ if (searchQuery === previousSearchQuery) { return; } previousSearchQuery = searchQuery; clearTimeout(searchInputTimer); searchInputTimer = setTimeout(function () { state.reset(); collapseAll(root); resetHighlightedNodes(root); if ('' === searchQuery) { counter.textContent = '0 of 0'; return; } var classMatches = [ "sf-dump-str", "sf-dump-key", "sf-dump-public", "sf-dump-protected", "sf-dump-private", ].map(xpathHasClass).join(' or '); var xpathResult = doc.evaluate('.//span[' + classMatches + '][contains(translate(child::text(), ' + xpathString(searchQuery.toUpperCase()) + ', ' + xpathString(searchQuery.toLowerCase()) + '), ' + xpathString(searchQuery.toLowerCase()) + ')]', root, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null); while (node = xpathResult.iterateNext()) state.nodes.push(node); showCurrent(state); }, 400); }); Array.from(search.querySelectorAll('.sf-dump-search-input-next, .sf-dump-search-input-previous')).forEach(function (btn) { addEventListener(btn, 'click', function (e) { e.preventDefault(); -1 !== e.target.className.indexOf('next') ? state.next() : state.previous(); searchInput.focus(); collapseAll(root); showCurrent(state); }) }); addEventListener(root, 'keydown', function (e) { var isSearchActive = !/\bsf-dump-search-hidden\b/.test(search.className); if ((114 === e.keyCode && !isSearchActive) || (isCtrlKey(e) && 70 === e.keyCode)) { /* F3 or CMD/CTRL + F */ if (70 === e.keyCode && document.activeElement === searchInput) { /* * If CMD/CTRL + F is hit while having focus on search input, * the user probably meant to trigger browser search instead. * Let the browser execute its behavior: */ return; } e.preventDefault(); search.className = search.className.replace(/\bsf-dump-search-hidden\b/, ''); searchInput.focus(); } else if (isSearchActive) { if (27 === e.keyCode) { /* ESC key */ search.className += ' sf-dump-search-hidden'; e.preventDefault(); resetHighlightedNodes(root); searchInput.value = ''; } else if ( (isCtrlKey(e) && 71 === e.keyCode) /* CMD/CTRL + G */ || 13 === e.keyCode /* Enter */ || 114 === e.keyCode /* F3 */ ) { e.preventDefault(); e.shiftKey ? state.previous() : state.next(); collapseAll(root); showCurrent(state); } } }); } if (0 >= options.maxStringLength) { return; } try { elt = root.querySelectorAll('.sf-dump-str'); len = elt.length; i = 0; t = []; while (i < len) t.push(elt[i++]); len = t.length; for (i = 0; i < len; ++i) { elt = t[i]; s = elt.innerText || elt.textContent; x = s.length - options.maxStringLength; if (0 < x) { h = elt.innerHTML; elt[elt.innerText ? 'innerText' : 'textContent'] = s.substring(0, options.maxStringLength); elt.className += ' sf-dump-str-collapse'; elt.innerHTML = '<span class=sf-dump-str-collapse>'+h+'<a class="sf-dump-ref sf-dump-str-toggle" title="Collapse"> ◀</a></span>'+ '<span class=sf-dump-str-expand>'+elt.innerHTML+'<a class="sf-dump-ref sf-dump-str-toggle" title="'+x+' remaining characters"> ▶</a></span>'; } } } catch (e) { } }; })(document); </script><style> .sf-js-enabled .phpdebugbar pre.sf-dump .sf-dump-compact, .sf-js-enabled .sf-dump-str-collapse .sf-dump-str-collapse, .sf-js-enabled .sf-dump-str-expand .sf-dump-str-expand { display: none; } .sf-dump-hover:hover { background-color: #B729D9; color: #FFF !important; border-radius: 2px; } .phpdebugbar pre.sf-dump { display: block; white-space: pre; padding: 5px; overflow: initial !important; } .phpdebugbar pre.sf-dump:after { content: ""; visibility: hidden; display: block; height: 0; clear: both; } .phpdebugbar pre.sf-dump .sf-dump-ellipsization { display: inline-flex; } .phpdebugbar pre.sf-dump a { text-decoration: none; cursor: pointer; border: 0; outline: none; color: inherit; } .phpdebugbar pre.sf-dump img { max-width: 50em; max-height: 50em; margin: .5em 0 0 0; padding: 0; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAHUlEQVQY02O8zAABilCaiQEN0EeA8QuUcX9g3QEAAjcC5piyhyEAAAAASUVORK5CYII=) #D3D3D3; } .phpdebugbar pre.sf-dump .sf-dump-ellipsis { text-overflow: ellipsis; white-space: nowrap; overflow: hidden; } .phpdebugbar pre.sf-dump .sf-dump-ellipsis-tail { flex-shrink: 0; } .phpdebugbar pre.sf-dump code { display:inline; padding:0; background:none; } .sf-dump-public.sf-dump-highlight, .sf-dump-protected.sf-dump-highlight, .sf-dump-private.sf-dump-highlight, .sf-dump-str.sf-dump-highlight, .sf-dump-key.sf-dump-highlight { background: rgba(111, 172, 204, 0.3); border: 1px solid #7DA0B1; border-radius: 3px; } .sf-dump-public.sf-dump-highlight-active, .sf-dump-protected.sf-dump-highlight-active, .sf-dump-private.sf-dump-highlight-active, .sf-dump-str.sf-dump-highlight-active, .sf-dump-key.sf-dump-highlight-active { background: rgba(253, 175, 0, 0.4); border: 1px solid #ffa500; border-radius: 3px; } .phpdebugbar pre.sf-dump .sf-dump-search-hidden { display: none !important; } .phpdebugbar pre.sf-dump .sf-dump-search-wrapper { font-size: 0; white-space: nowrap; margin-bottom: 5px; display: flex; position: -webkit-sticky; position: sticky; top: 5px; } .phpdebugbar pre.sf-dump .sf-dump-search-wrapper > * { vertical-align: top; box-sizing: border-box; height: 21px; font-weight: normal; border-radius: 0; background: #FFF; color: #757575; border: 1px solid #BBB; } .phpdebugbar pre.sf-dump .sf-dump-search-wrapper > input.sf-dump-search-input { padding: 3px; height: 21px; font-size: 12px; border-right: none; border-top-left-radius: 3px; border-bottom-left-radius: 3px; color: #000; min-width: 15px; width: 100%; } .phpdebugbar pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-next, .phpdebugbar pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-previous { background: #F2F2F2; outline: none; border-left: none; font-size: 0; line-height: 0; } .phpdebugbar pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-next { border-top-right-radius: 3px; border-bottom-right-radius: 3px; } .phpdebugbar pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-next > svg, .phpdebugbar pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-previous > svg { pointer-events: none; width: 12px; height: 12px; } .phpdebugbar pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-count { display: inline-block; padding: 0 5px; margin: 0; border-left: none; line-height: 21px; font-size: 12px; }.phpdebugbar pre.sf-dump, .phpdebugbar pre.sf-dump .sf-dump-default{word-wrap: break-word; white-space: pre-wrap; word-break: normal}.phpdebugbar pre.sf-dump .sf-dump-num{font-weight:bold; color:#1299DA}.phpdebugbar pre.sf-dump .sf-dump-const{font-weight:bold}.phpdebugbar pre.sf-dump .sf-dump-str{font-weight:bold; color:#3A9B26}.phpdebugbar pre.sf-dump .sf-dump-note{color:#1299DA}.phpdebugbar pre.sf-dump .sf-dump-ref{color:#7B7B7B}.phpdebugbar pre.sf-dump .sf-dump-public{color:#000000}.phpdebugbar pre.sf-dump .sf-dump-protected{color:#000000}.phpdebugbar pre.sf-dump .sf-dump-private{color:#000000}.phpdebugbar pre.sf-dump .sf-dump-meta{color:#B729D9}.phpdebugbar pre.sf-dump .sf-dump-key{color:#3A9B26}.phpdebugbar pre.sf-dump .sf-dump-index{color:#1299DA}.phpdebugbar pre.sf-dump .sf-dump-ellipsis{color:#A0A000}.phpdebugbar pre.sf-dump .sf-dump-virtual{font-style:italic}.phpdebugbar pre.sf-dump .sf-dump-ns{user-select:none;}.phpdebugbar pre.sf-dump .sf-dump-ellipsis-note{color:#1299DA}.phpdebugbar[data-theme='dark'] pre.sf-dump, pre.sf-dump .sf-dump-default{background-color:#18171B; color:#FF8400; line-height:1.2em; font:12px Menlo, Monaco, Consolas, monospace; word-wrap: break-word; white-space: pre-wrap; position:relative; z-index:99999; word-break: break-all}.phpdebugbar[data-theme='dark'] pre.sf-dump .sf-dump-num{font-weight:bold; color:#1299DA}.phpdebugbar[data-theme='dark'] pre.sf-dump .sf-dump-const{font-weight:bold}.phpdebugbar[data-theme='dark'] pre.sf-dump .sf-dump-virtual{font-style:italic}.phpdebugbar[data-theme='dark'] pre.sf-dump .sf-dump-str{font-weight:bold; color:#56DB3A}.phpdebugbar[data-theme='dark'] pre.sf-dump .sf-dump-note{color:#1299DA}.phpdebugbar[data-theme='dark'] pre.sf-dump .sf-dump-ref{color:#A0A0A0}.phpdebugbar[data-theme='dark'] pre.sf-dump .sf-dump-public{color:#FFFFFF}.phpdebugbar[data-theme='dark'] pre.sf-dump .sf-dump-protected{color:#FFFFFF}.phpdebugbar[data-theme='dark'] pre.sf-dump .sf-dump-private{color:#FFFFFF}.phpdebugbar[data-theme='dark'] pre.sf-dump .sf-dump-meta{color:#B729D9}.phpdebugbar[data-theme='dark'] pre.sf-dump .sf-dump-key{color:#56DB3A}.phpdebugbar[data-theme='dark'] pre.sf-dump .sf-dump-index{color:#1299DA}.phpdebugbar[data-theme='dark'] pre.sf-dump .sf-dump-ellipsis{color:#FF8400}.phpdebugbar[data-theme='dark'] pre.sf-dump .sf-dump-ns{user-select:none;}.phpdebugbar[data-theme='dark'] pre.sf-dump .sf-dump-ellipsis-note{color:#1299DA}</style>
<script type="text/javascript">
var phpdebugbar = new PhpDebugBar.DebugBar({"theme":"auto","hideEmptyTabs":true});
phpdebugbar.addTab("request", new PhpDebugBar.DebugBar.Tab({"icon":"arrows-left-right","title":"Request", "widget": new PhpDebugBar.Widgets.HtmlVariableListWidget()}));
phpdebugbar.addIndicator("request_uri", new PhpDebugBar.DebugBar.Indicator({"icon":"share-3","link":"request"}), "right");
phpdebugbar.addTab("exceptions", new PhpDebugBar.DebugBar.Tab({"icon":"bug","title":"Exceptions", "widget": new PhpDebugBar.Widgets.ExceptionsWidget()}));
phpdebugbar.addTab("messages", new PhpDebugBar.DebugBar.Tab({"icon":"logs","title":"Messages", "widget": new PhpDebugBar.Widgets.MessagesWidget()}));
phpdebugbar.addIndicator("time", new PhpDebugBar.DebugBar.Indicator({"icon":"clock","tooltip":"Request Duration","link":"timeline"}), "right");
phpdebugbar.addTab("timeline", new PhpDebugBar.DebugBar.Tab({"icon":"chart-infographic","title":"Timeline", "widget": new PhpDebugBar.Widgets.TimelineWidget()}));
phpdebugbar.addIndicator("memory", new PhpDebugBar.DebugBar.Indicator({"icon":"server-cog","tooltip":"Memory Usage"}), "right");
phpdebugbar.addIndicator("version", new PhpDebugBar.DebugBar.Indicator({"icon":"brand-laravel"}), "right");
phpdebugbar.addTab("views", new PhpDebugBar.DebugBar.Tab({"icon":"file-code","title":"Views", "widget": new PhpDebugBar.Widgets.TemplatesWidget()}));
phpdebugbar.addTab("queries", new PhpDebugBar.DebugBar.Tab({"icon":"database","title":"Queries", "widget": new PhpDebugBar.Widgets.LaravelQueriesWidget()}));
phpdebugbar.addTab("models", new PhpDebugBar.DebugBar.Tab({"icon":"box","title":"Models", "widget": new PhpDebugBar.Widgets.TableVariableListWidget()}));
phpdebugbar.addTab("emails", new PhpDebugBar.DebugBar.Tab({"icon":"inbox","title":"Mails", "widget": new PhpDebugBar.Widgets.MailsWidget()}));
phpdebugbar.addTab("gate", new PhpDebugBar.DebugBar.Tab({"icon":"logs","title":"Gate", "widget": new PhpDebugBar.Widgets.MessagesWidget()}));
phpdebugbar.addTab("cache", new PhpDebugBar.DebugBar.Tab({"icon":"clipboard-text","title":"Cache", "widget": new PhpDebugBar.Widgets.LaravelCacheWidget()}));
phpdebugbar.addTab("jobs", new PhpDebugBar.DebugBar.Tab({"icon":"briefcase","title":"Jobs", "widget": new PhpDebugBar.Widgets.TableVariableListWidget()}));
phpdebugbar.setDataMap({
"request": ["request.data", {}],
"request:badge": ["request.badge", null],
"request_uri": ["request.data.uri", ],
"request_uri:tooltip": ["request.tooltip", {}],
"exceptions": ["exceptions.exceptions", []],
"exceptions:badge": ["exceptions.count", null],
"messages": ["messages.messages", []],
"messages:badge": ["messages.count", null],
"time": ["time.duration_str", '0ms'],
"timeline": ["time", {}],
"memory": ["memory.peak_usage_str", '0B'],
"version": ["laravel.version", ],
"version:tooltip": ["laravel.tooltip", {}],
"views": ["views", []],
"views:badge": ["views.nb_templates", 0],
"queries": ["queries", []],
"queries:badge": ["queries.nb_statements", 0],
"models": ["models", {}],
"models:badge": ["models.count", 0],
"emails": ["symfonymailer_mails.mails", []],
"emails:badge": ["symfonymailer_mails.count", null],
"gate": ["gate.messages", []],
"gate:badge": ["gate.count", null],
"cache": ["cache", {}],
"cache:badge": ["cache.nb_measures", null],
"jobs": ["jobs", {}],
"jobs:badge": ["jobs.count", 0]
});
phpdebugbar.restoreState();
phpdebugbar.enableAjaxHandlerTab();
phpdebugbar.ajaxHandler = new PhpDebugBar.AjaxHandler(phpdebugbar, undefined, true);
phpdebugbar.ajaxHandler.bindToFetch();
phpdebugbar.ajaxHandler.bindToXHR();
phpdebugbar.setOpenHandler(new PhpDebugBar.OpenHandler({"url":"http:\/\/localhost\/_debugbar\/open"}));
phpdebugbar.addDataSet({"__meta":{"id":"01KE6YNS1G737D5PGHMQJVZKKE","datetime":"2026-01-05 11:29:00","utime":1767612540.052934,"method":"GET","uri":"\/docs","ip":"127.0.0.1"},"request":{"data":{"uri":"GET docs","file":{"value":"Users\/barry\/Sites\/laravel-debugbar\/tests\/DebugbarDocsTest.php:42-59","xdebug_link":{"url":"phpstorm:\/\/open?file=%2FUsers%2Fbarry%2FSites%2Flaravel-debugbar%2Ftests%2FDebugbarDocsTest.php\u0026line=42","ajax":false,"filename":"DebugbarDocsTest.php","line":"42"}},"method":"GET","format":"html","content_type":"text\/html; charset=utf-8","status_text":"OK","status_code":"\u003Cpre class=sf-dump id=sf-dump-284496784 data-indent-pad=\u0022  \u0022\u003E\u003Cspan class=sf-dump-num\u003E200\u003C\/span\u003E\n\u003C\/pre\u003E\n","request_query":"\u003Cpre class=sf-dump id=sf-dump-1896855412 data-indent-pad=\u0022  \u0022\u003E[]\n\u003C\/pre\u003E\n","request_request":"\u003Cpre class=sf-dump id=sf-dump-14564081 data-indent-pad=\u0022  \u0022\u003E[]\n\u003C\/pre\u003E\n","request_files":"\u003Cpre class=sf-dump id=sf-dump-1363178519 data-indent-pad=\u0022  \u0022\u003E[]\n\u003C\/pre\u003E\n","request_headers":"\u003Cpre class=sf-dump id=sf-dump-1438531029 data-indent-pad=\u0022  \u0022\u003E\u003Cspan class=sf-dump-note\u003Earray:5\u003C\/span\u003E [\u003Csamp data-depth=1 class=sf-dump-expanded\u003E\n  \u0022\u003Cspan class=sf-dump-key\u003Ehost\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:1\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00229 characters\u0022\u003Elocalhost\u003C\/span\u003E\u0022\n  \u003C\/samp\u003E]\n  \u0022\u003Cspan class=sf-dump-key\u003Euser-agent\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:1\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00227 characters\u0022\u003ESymfony\u003C\/span\u003E\u0022\n  \u003C\/samp\u003E]\n  \u0022\u003Cspan class=sf-dump-key\u003Eaccept\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:1\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002263 characters\u0022\u003Etext\/html,application\/xhtml+xml,application\/xml;q=0.9,*\/*;q=0.8\u003C\/span\u003E\u0022\n  \u003C\/samp\u003E]\n  \u0022\u003Cspan class=sf-dump-key\u003Eaccept-language\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:1\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002214 characters\u0022\u003Een-us,en;q=0.5\u003C\/span\u003E\u0022\n  \u003C\/samp\u003E]\n  \u0022\u003Cspan class=sf-dump-key\u003Eaccept-charset\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:1\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002230 characters\u0022\u003EISO-8859-1,utf-8;q=0.7,*;q=0.7\u003C\/span\u003E\u0022\n  \u003C\/samp\u003E]\n\u003C\/samp\u003E]\n\u003C\/pre\u003E\n","request_server":"\u003Cpre class=sf-dump id=sf-dump-129374896 data-indent-pad=\u0022  \u0022\u003E\u003Cspan class=sf-dump-note\u003Earray:17\u003C\/span\u003E [\u003Csamp data-depth=1 class=sf-dump-expanded\u003E\n  \u0022\u003Cspan class=sf-dump-key\u003ESERVER_NAME\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00229 characters\u0022\u003Elocalhost\u003C\/span\u003E\u0022\n  \u0022\u003Cspan class=sf-dump-key\u003ESERVER_PORT\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E80\u003C\/span\u003E\n  \u0022\u003Cspan class=sf-dump-key\u003EHTTP_HOST\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00229 characters\u0022\u003Elocalhost\u003C\/span\u003E\u0022\n  \u0022\u003Cspan class=sf-dump-key\u003EHTTP_USER_AGENT\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00227 characters\u0022\u003ESymfony\u003C\/span\u003E\u0022\n  \u0022\u003Cspan class=sf-dump-key\u003EHTTP_ACCEPT\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002263 characters\u0022\u003Etext\/html,application\/xhtml+xml,application\/xml;q=0.9,*\/*;q=0.8\u003C\/span\u003E\u0022\n  \u0022\u003Cspan class=sf-dump-key\u003EHTTP_ACCEPT_LANGUAGE\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002214 characters\u0022\u003Een-us,en;q=0.5\u003C\/span\u003E\u0022\n  \u0022\u003Cspan class=sf-dump-key\u003EHTTP_ACCEPT_CHARSET\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002230 characters\u0022\u003EISO-8859-1,utf-8;q=0.7,*;q=0.7\u003C\/span\u003E\u0022\n  \u0022\u003Cspan class=sf-dump-key\u003EREMOTE_ADDR\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00229 characters\u0022\u003E127.0.0.1\u003C\/span\u003E\u0022\n  \u0022\u003Cspan class=sf-dump-key\u003ESCRIPT_NAME\u003C\/span\u003E\u0022 =\u003E \u0022\u0022\n  \u0022\u003Cspan class=sf-dump-key\u003ESCRIPT_FILENAME\u003C\/span\u003E\u0022 =\u003E \u0022\u0022\n  \u0022\u003Cspan class=sf-dump-key\u003ESERVER_PROTOCOL\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00228 characters\u0022\u003EHTTP\/1.1\u003C\/span\u003E\u0022\n  \u0022\u003Cspan class=sf-dump-key\u003EREQUEST_TIME\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E1767612539\u003C\/span\u003E\n  \u0022\u003Cspan class=sf-dump-key\u003EREQUEST_TIME_FLOAT\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E1767612539.9284\u003C\/span\u003E\n  \u0022\u003Cspan class=sf-dump-key\u003EPATH_INFO\u003C\/span\u003E\u0022 =\u003E \u0022\u0022\n  \u0022\u003Cspan class=sf-dump-key\u003EREQUEST_METHOD\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00223 characters\u0022\u003EGET\u003C\/span\u003E\u0022\n  \u0022\u003Cspan class=sf-dump-key\u003EREQUEST_URI\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00225 characters\u0022\u003E\/docs\u003C\/span\u003E\u0022\n  \u0022\u003Cspan class=sf-dump-key\u003EQUERY_STRING\u003C\/span\u003E\u0022 =\u003E \u0022\u0022\n\u003C\/samp\u003E]\n\u003C\/pre\u003E\n","request_cookies":"\u003Cpre class=sf-dump id=sf-dump-1063404810 data-indent-pad=\u0022  \u0022\u003E[]\n\u003C\/pre\u003E\n","request_attributes":"\u003Cpre class=sf-dump id=sf-dump-675791263 data-indent-pad=\u0022  \u0022\u003E[]\n\u003C\/pre\u003E\n","route":"","response_headers":"\u003Cpre class=sf-dump id=sf-dump-2000826104 data-indent-pad=\u0022  \u0022\u003E\u003Cspan class=sf-dump-note\u003Earray:3\u003C\/span\u003E [\u003Csamp data-depth=1 class=sf-dump-expanded\u003E\n  \u0022\u003Cspan class=sf-dump-key\u003Econtent-type\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:1\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002224 characters\u0022\u003Etext\/html; charset=utf-8\u003C\/span\u003E\u0022\n  \u003C\/samp\u003E]\n  \u0022\u003Cspan class=sf-dump-key\u003Ecache-control\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:1\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002217 characters\u0022\u003Eno-cache, private\u003C\/span\u003E\u0022\n  \u003C\/samp\u003E]\n  \u0022\u003Cspan class=sf-dump-key\u003Edate\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:1\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002229 characters\u0022\u003EMon, 05 Jan 2026 11:29:00 GMT\u003C\/span\u003E\u0022\n  \u003C\/samp\u003E]\n\u003C\/samp\u003E]\n\u003C\/pre\u003E\n","response_cookies":"\u003Cpre class=sf-dump id=sf-dump-355412417 data-indent-pad=\u0022  \u0022\u003E[]\n\u003C\/pre\u003E\n","session_metadata":"\u003Cpre class=sf-dump id=sf-dump-192400243 data-indent-pad=\u0022  \u0022\u003E[]\n\u003C\/pre\u003E\n","session_attributes":"\u003Cpre class=sf-dump id=sf-dump-886814494 data-indent-pad=\u0022  \u0022\u003E[]\n\u003C\/pre\u003E\n","flashes":"\u003Cpre class=sf-dump id=sf-dump-494301180 data-indent-pad=\u0022  \u0022\u003E[]\n\u003C\/pre\u003E\n","path_info":"\/docs","controller":"n\/a","locale":"en"},"tooltip":{"status":"200 OK","full_url":"http:\/\/localhost\/docs","action_name":null,"controller_action":"Closure"},"badge":null},"exceptions":{"count":1,"exceptions":[{"type":"RuntimeException","message":"Whoops! This is just a demo","code":0,"file":"Users\/barry\/Sites\/laravel-debugbar\/tests\/DebugbarDocsTest.php","line":56,"stack_trace":null,"stack_trace_html":"\u003Cpre class=sf-dump id=sf-dump-380364022 data-indent-pad=\u0022  \u0022\u003E\u003Cspan class=sf-dump-note\u003Earray:48\u003C\/span\u003E [\u003Csamp data-depth=1 class=sf-dump-expanded\u003E\n  \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u0022105 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/CallableDispatcher.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E39\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002276 characters\u0022\u003E{closure:Barryvdh\\Debugbar\\Tests\\DebugbarDocsTest::testItInjectsOnDocs():42}\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002240 characters\u0022\u003EBarryvdh\\Debugbar\\Tests\\DebugbarDocsTest\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E []\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E1\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002292 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Route.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E243\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00228 characters\u0022\u003Edispatch\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002237 characters\u0022\u003EIlluminate\\Routing\\CallableDispatcher\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:2\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002233 characters\u0022\u003E[object Illuminate\\Routing\\Route]\u003C\/span\u003E\u0022\n      \u003Cspan class=sf-dump-index\u003E1\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002216 characters\u0022\u003E[object Closure]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E2\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002292 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Route.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E214\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002211 characters\u0022\u003ErunCallable\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002224 characters\u0022\u003EIlluminate\\Routing\\Route\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E []\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E3\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002293 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E822\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00223 characters\u0022\u003Erun\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002224 characters\u0022\u003EIlluminate\\Routing\\Route\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E []\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E4\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002296 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E180\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002262 characters\u0022\u003E{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002225 characters\u0022\u003EIlluminate\\Routing\\Router\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:1\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002232 characters\u0022\u003E[object Illuminate\\Http\\Request]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E5\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002296 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E137\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002264 characters\u0022\u003E{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002228 characters\u0022\u003EIlluminate\\Pipeline\\Pipeline\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:1\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002232 characters\u0022\u003E[object Illuminate\\Http\\Request]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E6\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002293 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E821\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00224 characters\u0022\u003Ethen\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002228 characters\u0022\u003EIlluminate\\Pipeline\\Pipeline\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:1\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002216 characters\u0022\u003E[object Closure]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E7\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002293 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E800\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002219 characters\u0022\u003ErunRouteWithinStack\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002225 characters\u0022\u003EIlluminate\\Routing\\Router\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:2\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002233 characters\u0022\u003E[object Illuminate\\Routing\\Route]\u003C\/span\u003E\u0022\n      \u003Cspan class=sf-dump-index\u003E1\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002232 characters\u0022\u003E[object Illuminate\\Http\\Request]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E8\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002293 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E764\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00228 characters\u0022\u003ErunRoute\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002225 characters\u0022\u003EIlluminate\\Routing\\Router\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:2\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002232 characters\u0022\u003E[object Illuminate\\Http\\Request]\u003C\/span\u003E\u0022\n      \u003Cspan class=sf-dump-index\u003E1\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002233 characters\u0022\u003E[object Illuminate\\Routing\\Route]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E9\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002293 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E753\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002215 characters\u0022\u003EdispatchToRoute\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002225 characters\u0022\u003EIlluminate\\Routing\\Router\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:1\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002232 characters\u0022\u003E[object Illuminate\\Http\\Request]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E10\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u0022101 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E200\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00228 characters\u0022\u003Edispatch\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002225 characters\u0022\u003EIlluminate\\Routing\\Router\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:1\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002232 characters\u0022\u003E[object Illuminate\\Http\\Request]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E11\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002296 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E180\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002267 characters\u0022\u003E{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002233 characters\u0022\u003EIlluminate\\Foundation\\Http\\Kernel\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:1\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002232 characters\u0022\u003E[object Illuminate\\Http\\Request]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E12\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002268 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/src\/Middleware\/InjectDebugbar.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E64\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002264 characters\u0022\u003E{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002228 characters\u0022\u003EIlluminate\\Pipeline\\Pipeline\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:1\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002232 characters\u0022\u003E[object Illuminate\\Http\\Request]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E13\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002296 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E219\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00226 characters\u0022\u003Ehandle\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002243 characters\u0022\u003EBarryvdh\\Debugbar\\Middleware\\InjectDebugbar\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:2\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002232 characters\u0022\u003E[object Illuminate\\Http\\Request]\u003C\/span\u003E\u0022\n      \u003Cspan class=sf-dump-index\u003E1\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002216 characters\u0022\u003E[object Closure]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E14\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u0022123 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Middleware\/TransformsRequest.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E21\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002265 characters\u0022\u003E{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002228 characters\u0022\u003EIlluminate\\Pipeline\\Pipeline\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:1\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002232 characters\u0022\u003E[object Illuminate\\Http\\Request]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E15\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u0022131 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Middleware\/ConvertEmptyStringsToNull.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E31\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00226 characters\u0022\u003Ehandle\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002255 characters\u0022\u003EIlluminate\\Foundation\\Http\\Middleware\\TransformsRequest\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:2\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002232 characters\u0022\u003E[object Illuminate\\Http\\Request]\u003C\/span\u003E\u0022\n      \u003Cspan class=sf-dump-index\u003E1\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002216 characters\u0022\u003E[object Closure]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E16\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002296 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E219\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00226 characters\u0022\u003Ehandle\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002263 characters\u0022\u003EIlluminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:2\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002232 characters\u0022\u003E[object Illuminate\\Http\\Request]\u003C\/span\u003E\u0022\n      \u003Cspan class=sf-dump-index\u003E1\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002216 characters\u0022\u003E[object Closure]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E17\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u0022123 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Middleware\/TransformsRequest.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E21\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002265 characters\u0022\u003E{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002228 characters\u0022\u003EIlluminate\\Pipeline\\Pipeline\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:1\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002232 characters\u0022\u003E[object Illuminate\\Http\\Request]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E18\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u0022117 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Middleware\/TrimStrings.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E51\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00226 characters\u0022\u003Ehandle\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002255 characters\u0022\u003EIlluminate\\Foundation\\Http\\Middleware\\TransformsRequest\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:2\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002232 characters\u0022\u003E[object Illuminate\\Http\\Request]\u003C\/span\u003E\u0022\n      \u003Cspan class=sf-dump-index\u003E1\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002216 characters\u0022\u003E[object Closure]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E19\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002296 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E219\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00226 characters\u0022\u003Ehandle\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002249 characters\u0022\u003EIlluminate\\Foundation\\Http\\Middleware\\TrimStrings\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:2\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002232 characters\u0022\u003E[object Illuminate\\Http\\Request]\u003C\/span\u003E\u0022\n      \u003Cspan class=sf-dump-index\u003E1\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002216 characters\u0022\u003E[object Closure]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E20\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u0022111 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Http\/Middleware\/ValidatePostSize.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E27\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002265 characters\u0022\u003E{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002228 characters\u0022\u003EIlluminate\\Pipeline\\Pipeline\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:1\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002232 characters\u0022\u003E[object Illuminate\\Http\\Request]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E21\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002296 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E219\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00226 characters\u0022\u003Ehandle\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002243 characters\u0022\u003EIlluminate\\Http\\Middleware\\ValidatePostSize\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:2\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002232 characters\u0022\u003E[object Illuminate\\Http\\Request]\u003C\/span\u003E\u0022\n      \u003Cspan class=sf-dump-index\u003E1\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002216 characters\u0022\u003E[object Closure]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E22\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u0022138 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Middleware\/PreventRequestsDuringMaintenance.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E109\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002265 characters\u0022\u003E{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002228 characters\u0022\u003EIlluminate\\Pipeline\\Pipeline\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:1\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002232 characters\u0022\u003E[object Illuminate\\Http\\Request]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E23\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002296 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E219\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00226 characters\u0022\u003Ehandle\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002270 characters\u0022\u003EIlluminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:2\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002232 characters\u0022\u003E[object Illuminate\\Http\\Request]\u003C\/span\u003E\u0022\n      \u003Cspan class=sf-dump-index\u003E1\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002216 characters\u0022\u003E[object Closure]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E24\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u0022105 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Http\/Middleware\/HandleCors.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E48\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002265 characters\u0022\u003E{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002228 characters\u0022\u003EIlluminate\\Pipeline\\Pipeline\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:1\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002232 characters\u0022\u003E[object Illuminate\\Http\\Request]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E25\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002296 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E219\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00226 characters\u0022\u003Ehandle\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002237 characters\u0022\u003EIlluminate\\Http\\Middleware\\HandleCors\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:2\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002232 characters\u0022\u003E[object Illuminate\\Http\\Request]\u003C\/span\u003E\u0022\n      \u003Cspan class=sf-dump-index\u003E1\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002216 characters\u0022\u003E[object Closure]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E26\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u0022107 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Http\/Middleware\/TrustProxies.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E58\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002265 characters\u0022\u003E{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002228 characters\u0022\u003EIlluminate\\Pipeline\\Pipeline\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:1\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002232 characters\u0022\u003E[object Illuminate\\Http\\Request]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E27\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002296 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E219\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00226 characters\u0022\u003Ehandle\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002239 characters\u0022\u003EIlluminate\\Http\\Middleware\\TrustProxies\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:2\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002232 characters\u0022\u003E[object Illuminate\\Http\\Request]\u003C\/span\u003E\u0022\n      \u003Cspan class=sf-dump-index\u003E1\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002216 characters\u0022\u003E[object Closure]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E28\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u0022129 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Middleware\/InvokeDeferredCallbacks.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E22\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002265 characters\u0022\u003E{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002228 characters\u0022\u003EIlluminate\\Pipeline\\Pipeline\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:1\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002232 characters\u0022\u003E[object Illuminate\\Http\\Request]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E29\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002296 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E219\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00226 characters\u0022\u003Ehandle\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002261 characters\u0022\u003EIlluminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:2\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002232 characters\u0022\u003E[object Illuminate\\Http\\Request]\u003C\/span\u003E\u0022\n      \u003Cspan class=sf-dump-index\u003E1\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002216 characters\u0022\u003E[object Closure]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E30\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u0022115 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Http\/Middleware\/ValidatePathEncoding.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E26\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002265 characters\u0022\u003E{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002228 characters\u0022\u003EIlluminate\\Pipeline\\Pipeline\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Etype\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00222 characters\u0022\u003E-\u0026gt;\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eargs\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-note\u003Earray:1\u003C\/span\u003E [\u003Csamp data-depth=3 class=sf-dump-compact\u003E\n      \u003Cspan class=sf-dump-index\u003E0\u003C\/span\u003E =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002232 characters\u0022\u003E[object Illuminate\\Http\\Request]\u003C\/span\u003E\u0022\n    \u003C\/samp\u003E]\n  \u003C\/samp\u003E]\n  \u003Cspan class=sf-dump-index\u003E31\u003C\/span\u003E =\u003E \u003Cspan class=sf-dump-note\u003Earray:6\u003C\/span\u003E [\u003Csamp data-depth=2 class=sf-dump-compact\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efile\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002296 characters\u0022\u003EUsers\/barry\/Sites\/laravel-debugbar\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eline\u003C\/span\u003E\u0022 =\u003E \u003Cspan class=sf-dump-num\u003E219\u003C\/span\u003E\n    \u0022\u003Cspan class=sf-dump-key\u003Efunction\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u00226 characters\u0022\u003Ehandle\u003C\/span\u003E\u0022\n    \u0022\u003Cspan class=sf-dump-key\u003Eclass\u003C\/span\u003E\u0022 =\u003E \u0022\u003Cspan class=sf-dump-str title=\u002247 characters\u0022\u003EIllum
Download .txt
gitextract_327ueo68/

├── .editorconfig
├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   ├── release-drafter.yml
│   ├── stale.yml
│   └── workflows/
│       ├── build-docs.yml
│       ├── fix-code-style.yml
│       ├── integration-tests.yml
│       ├── livewire-tests.yml
│       ├── release-drafter.yml
│       ├── static-analysis.yml
│       ├── unit-tests.yml
│       └── update-changelog.yaml
├── .gitignore
├── .nvmrc
├── CHANGELOG.md
├── LICENSE
├── SECURITY.md
├── UPGRADE.md
├── build/
│   ├── build-docs.php
│   └── build-icons.js
├── composer.json
├── config/
│   └── debugbar.php
├── database/
│   └── migrations/
│       └── 2014_12_01_120000_create_phpdebugbar_storage_table.php
├── docs/
│   ├── CNAME
│   ├── assets/
│   │   └── extra.css
│   ├── collectors.md
│   ├── features.md
│   ├── index.md
│   ├── installation.md
│   ├── overrides/
│   │   ├── main.html
│   │   └── shortcodes.py
│   └── usage.md
├── eslint.config.js
├── mkdocs.yml
├── package.json
├── phpstan.neon
├── phpunit.xml.dist
├── pint.json
├── readme.md
├── resources/
│   ├── cache/
│   │   └── widget.js
│   ├── laravel-debugbar.css
│   ├── laravel-icons.css
│   └── queries/
│       └── widget.js
├── src/
│   ├── CollectorProviders/
│   │   ├── AbstractCollectorProvider.php
│   │   ├── AuthCollectorProvider.php
│   │   ├── CacheCollectorProvider.php
│   │   ├── ConfigCollectorProvider.php
│   │   ├── DatabaseCollectorProvider.php
│   │   ├── EventsCollectorCollectorProvider.php
│   │   ├── ExceptionsCollectorProvider.php
│   │   ├── GateCollectorProvider.php
│   │   ├── HttpClientCollectorProvider.php
│   │   ├── InertiaCollectorProvider.php
│   │   ├── JobsCollectorProvider.php
│   │   ├── LaravelCollectorProvider.php
│   │   ├── LivewireCollectorProvider.php
│   │   ├── LogCollectorProvider.php
│   │   ├── LogsCollectorProvider.php
│   │   ├── MailCollectorProvider.php
│   │   ├── MemoryCollectorProvider.php
│   │   ├── MessagesCollectorProvider.php
│   │   ├── ModelsCollectorProvider.php
│   │   ├── PennantCollectorProvider.php
│   │   ├── PhpInfoCollectorProvider.php
│   │   ├── RequestCollectorProvider.php
│   │   ├── RouteCollectorProvider.php
│   │   ├── SessionCollectorProvider.php
│   │   ├── TimeCollectorProvider.php
│   │   └── ViewsCollectorProvider.php
│   ├── Console/
│   │   └── ClearCommand.php
│   ├── Controllers/
│   │   ├── AssetController.php
│   │   ├── CacheController.php
│   │   ├── OpenHandlerController.php
│   │   ├── QueriesController.php
│   │   └── TelescopeController.php
│   ├── DataCollector/
│   │   ├── CacheCollector.php
│   │   ├── ConfigCollector.php
│   │   ├── EventCollector.php
│   │   ├── GateCollector.php
│   │   ├── HttpClientCollector.php
│   │   ├── InertiaCollector.php
│   │   ├── LaravelCollector.php
│   │   ├── LivewireCollector.php
│   │   ├── LogsCollector.php
│   │   ├── MultiAuthCollector.php
│   │   ├── PennantCollector.php
│   │   ├── QueryCollector.php
│   │   ├── RequestCollector.php
│   │   ├── RouteCollector.php
│   │   ├── SessionCollector.php
│   │   └── ViewCollector.php
│   ├── Facades/
│   │   └── Debugbar.php
│   ├── LaravelDebugbar.php
│   ├── LaravelHttpDriver.php
│   ├── Middleware/
│   │   ├── DebugbarEnabled.php
│   │   └── StopRecordingTelescope.php
│   ├── Requests/
│   │   ├── AssetRequest.php
│   │   ├── CacheDeleteRequest.php
│   │   ├── OpenHandlerRequest.php
│   │   └── QueriesExplainRequest.php
│   ├── ServiceProvider.php
│   ├── Support/
│   │   ├── Clockwork/
│   │   │   ├── ClockworkCollector.php
│   │   │   └── Converter.php
│   │   ├── Explain.php
│   │   └── Octane/
│   │       └── ResetDebugbar.php
│   ├── Twig/
│   │   └── Extension/
│   │       ├── Debug.php
│   │       ├── Dump.php
│   │       └── Stopwatch.php
│   ├── debugbar-routes.php
│   └── helpers.php
└── tests/
    ├── BrowserTestCase.php
    ├── Controllers/
    │   ├── AssetControllerTest.php
    │   ├── CacheControllerTest.php
    │   ├── DebugbarEnabledMiddlewareTest.php
    │   ├── OpenHandlerControllerTest.php
    │   └── QueriesControllerTest.php
    ├── DataCollector/
    │   ├── CacheCollectorTest.php
    │   ├── GateCollectorTest.php
    │   ├── HttpClientCollectorTest.php
    │   ├── JobsCollectorTest.php
    │   ├── Livewire/
    │   │   └── DummyComponent.php
    │   ├── LivewireCollectorTest.php
    │   ├── MailCollectorTest.php
    │   ├── ModelsCollectorTest.php
    │   ├── PennantCollectorTest.php
    │   ├── QueryCollectorRuntimeDatabaseTest.php
    │   ├── QueryCollectorTest.php
    │   ├── RouteCollectorTest.php
    │   ├── SessionCollectorTest.php
    │   └── ViewCollectorTest.php
    ├── DataFormatter/
    │   └── QueryFormatterTest.php
    ├── DebugbarBrowserTest.php
    ├── DebugbarDocsTest.php
    ├── DebugbarTest.php
    ├── ErrorHandlerTest.php
    ├── Jobs/
    │   ├── OrderShipped.php
    │   └── SendNotification.php
    ├── LivewireBrowserTest.php
    ├── Mocks/
    │   ├── MockController.php
    │   ├── MockMiddleware.php
    │   └── MockViewComponent.php
    ├── Models/
    │   ├── Person.php
    │   └── User.php
    ├── Support/
    │   └── ExplainTest.php
    ├── TestCase.php
    └── resources/
        └── views/
            ├── ajax.blade.php
            ├── custom-prototype.blade.php
            ├── dashboard.blade.php
            ├── layouts/
            │   └── app.blade.php
            ├── livewire-component.blade.php
            └── query.blade.php
Download .txt
SYMBOL INDEX (533 symbols across 107 files)

FILE: build/build-docs.php
  function copyDirectory (line 89) | function copyDirectory($source, $dest) {
  function deleteDirectory (line 107) | function deleteDirectory($dir) {

FILE: build/build-icons.js
  function svgToDataUri (line 45) | function svgToDataUri(svgContent, strokeWidth) {
  function generateIconsCSS (line 67) | function generateIconsCSS() {

FILE: database/migrations/2014_12_01_120000_create_phpdebugbar_storage_table.php
  method up (line 13) | public function up(): void
  method down (line 36) | public function down()

FILE: docs/overrides/shortcodes.py
  function on_page_markdown (line 37) | def on_page_markdown(
  function flag (line 78) | def flag(args: str, page: Page, files: Files):
  function option (line 88) | def option(type: str):
  function setting (line 93) | def setting(type: str):
  function _resolve_path (line 101) | def _resolve_path(path: str, page: Page, files: Files):
  function _resolve (line 108) | def _resolve(file: File, page: Page):
  function _badge (line 115) | def _badge(icon: str, text: str = "", type: str = ""):
  function _badge_for_sponsors (line 125) | def _badge_for_sponsors(page: Page, files: Files):
  function _badge_for_version (line 134) | def _badge_for_version(text: str, page: Page, files: Files):
  function _badge_for_feature (line 147) | def _badge_for_feature(text: str, page: Page, files: Files):
  function _badge_for_plugin (line 156) | def _badge_for_plugin(text: str, page: Page, files: Files):
  function _badge_for_extension (line 165) | def _badge_for_extension(text: str, page: Page, files: Files):
  function _badge_for_utility (line 174) | def _badge_for_utility(text: str, page: Page, files: Files):
  function _badge_for_example (line 183) | def _badge_for_example(text: str, page: Page, files: Files):
  function _badge_for_example_view (line 190) | def _badge_for_example_view(text: str, page: Page, files: Files):
  function _badge_for_example_download (line 199) | def _badge_for_example_download(text: str, page: Page, files: Files):
  function _badge_for_default (line 209) | def _badge_for_default(text: str, page: Page, files: Files):
  function _badge_for_default_none (line 218) | def _badge_for_default_none(page: Page, files: Files):
  function _badge_for_default_computed (line 226) | def _badge_for_default_computed(page: Page, files: Files):
  function _badge_for_metadata (line 234) | def _badge_for_metadata(page: Page, files: Files):
  function _badge_for_required (line 242) | def _badge_for_required(page: Page, files: Files):
  function _badge_for_customization (line 250) | def _badge_for_customization(page: Page, files: Files):
  function _badge_for_multiple (line 258) | def _badge_for_multiple(page: Page, files: Files):
  function _badge_for_experimental (line 266) | def _badge_for_experimental(page: Page, files: Files):

FILE: resources/cache/widget.js
  class LaravelCacheWidget (line 10) | class LaravelCacheWidget extends PhpDebugBar.Widgets.TimelineWidget {
    method tagName (line 11) | get tagName() {
    method className (line 15) | get className() {
    method onForgetClick (line 19) | onForgetClick(e, el) {
    method render (line 35) | render() {

FILE: resources/queries/widget.js
  class LaravelQueriesWidget (line 11) | class LaravelQueriesWidget extends PhpDebugBar.Widgets.SQLQueriesWidget {
    method buildTable (line 13) | buildTable(rows, opts = {}) {
    method buildPgsqlTable (line 62) | buildPgsqlTable(rows, opts = {}) {
    method actionButton (line 83) | actionButton(label, onClick) {
    method fetchQuery (line 95) | fetchQuery(statement, mode, format) {
    method renderResult (line 122) | renderResult(container, statement, data, btnBar) {
    method renderDump (line 143) | renderDump(container, statement, data, btnBar) {
    method renderExplain (line 150) | renderExplain(container, statement, data, driver, btnBar) {
    method showPopup (line 168) | showPopup(query, contentEl) {
    method itemRenderer (line 210) | itemRenderer(li, stmt, filters) {
    method renderDetailSection (line 227) | renderDetailSection(table, caption, statement, mode) {
    method buildVisualExplainButton (line 289) | buildVisualExplainButton(statement, confirmMessage) {

FILE: src/CollectorProviders/AbstractCollectorProvider.php
  class AbstractCollectorProvider (line 10) | abstract class AbstractCollectorProvider
    method __construct (line 12) | public function __construct(
    method addCollector (line 16) | protected function addCollector(DataCollectorInterface $collector): void
    method hasCollector (line 21) | public function hasCollector(string $name): bool
    method getCollector (line 26) | public function getCollector(string $name): DataCollectorInterface
    method addCollectorException (line 31) | protected function addCollectorException(string $message, \Throwable $...
    method addThrowable (line 45) | public function addThrowable(\Throwable $e): void

FILE: src/CollectorProviders/AuthCollectorProvider.php
  class AuthCollectorProvider (line 9) | class AuthCollectorProvider extends AbstractCollectorProvider
    method __invoke (line 11) | public function __invoke(array $options): void

FILE: src/CollectorProviders/CacheCollectorProvider.php
  class CacheCollectorProvider (line 11) | class CacheCollectorProvider extends AbstractCollectorProvider
    method __invoke (line 13) | public function __invoke(Request $request, Dispatcher $events, array $...

FILE: src/CollectorProviders/ConfigCollectorProvider.php
  class ConfigCollectorProvider (line 9) | class ConfigCollectorProvider extends AbstractCollectorProvider
    method __invoke (line 11) | public function __invoke(array $options): void

FILE: src/CollectorProviders/DatabaseCollectorProvider.php
  class DatabaseCollectorProvider (line 17) | class DatabaseCollectorProvider extends AbstractCollectorProvider
    method __invoke (line 19) | public function __invoke(Dispatcher $events, Router $router, Request $...

FILE: src/CollectorProviders/EventsCollectorCollectorProvider.php
  class EventsCollectorCollectorProvider (line 11) | class EventsCollectorCollectorProvider extends AbstractCollectorProvider
    method __invoke (line 13) | public function __invoke(Request $request, Dispatcher $events, array $...

FILE: src/CollectorProviders/ExceptionsCollectorProvider.php
  class ExceptionsCollectorProvider (line 7) | class ExceptionsCollectorProvider extends AbstractCollectorProvider
    method __invoke (line 9) | public function __invoke(array $options): void

FILE: src/CollectorProviders/GateCollectorProvider.php
  class GateCollectorProvider (line 11) | class GateCollectorProvider extends AbstractCollectorProvider
    method __invoke (line 13) | public function __invoke(Dispatcher $events, array $options): void

FILE: src/CollectorProviders/HttpClientCollectorProvider.php
  class HttpClientCollectorProvider (line 13) | class HttpClientCollectorProvider extends AbstractCollectorProvider
    method __invoke (line 17) | public function __invoke(Dispatcher $events, array $options): void
    method addEvent (line 37) | protected function addEvent(ResponseReceived|ConnectionFailed $event):...

FILE: src/CollectorProviders/InertiaCollectorProvider.php
  class InertiaCollectorProvider (line 12) | class InertiaCollectorProvider extends AbstractCollectorProvider
    method __invoke (line 14) | public function __invoke(Application $app, Dispatcher $events, array $...

FILE: src/CollectorProviders/JobsCollectorProvider.php
  class JobsCollectorProvider (line 11) | class JobsCollectorProvider extends AbstractCollectorProvider
    method __invoke (line 13) | public function __invoke(Dispatcher $events, array $options): void

FILE: src/CollectorProviders/LaravelCollectorProvider.php
  class LaravelCollectorProvider (line 9) | class LaravelCollectorProvider extends AbstractCollectorProvider
    method __invoke (line 11) | public function __invoke(array $options): void

FILE: src/CollectorProviders/LivewireCollectorProvider.php
  class LivewireCollectorProvider (line 13) | class LivewireCollectorProvider extends AbstractCollectorProvider
    method __invoke (line 15) | public function __invoke(Application $app, Request $request): void

FILE: src/CollectorProviders/LogCollectorProvider.php
  class LogCollectorProvider (line 11) | class LogCollectorProvider extends AbstractCollectorProvider
    method __invoke (line 13) | public function __invoke(Logger $logger, array $options): void

FILE: src/CollectorProviders/LogsCollectorProvider.php
  class LogsCollectorProvider (line 10) | class LogsCollectorProvider extends AbstractCollectorProvider
    method __invoke (line 12) | public function __invoke(Logger $logger, array $options): void

FILE: src/CollectorProviders/MailCollectorProvider.php
  class MailCollectorProvider (line 12) | class MailCollectorProvider extends AbstractCollectorProvider
    method __invoke (line 14) | public function __invoke(Dispatcher $events, array $options): void

FILE: src/CollectorProviders/MemoryCollectorProvider.php
  class MemoryCollectorProvider (line 9) | class MemoryCollectorProvider extends AbstractCollectorProvider
    method __invoke (line 11) | public function __invoke(array $options): void

FILE: src/CollectorProviders/MessagesCollectorProvider.php
  class MessagesCollectorProvider (line 7) | class MessagesCollectorProvider extends AbstractCollectorProvider
    method __invoke (line 9) | public function __invoke(array $options): void

FILE: src/CollectorProviders/ModelsCollectorProvider.php
  class ModelsCollectorProvider (line 10) | class ModelsCollectorProvider extends AbstractCollectorProvider
    method __invoke (line 12) | public function __invoke(Dispatcher $events, array $options): void

FILE: src/CollectorProviders/PennantCollectorProvider.php
  class PennantCollectorProvider (line 11) | class PennantCollectorProvider extends AbstractCollectorProvider
    method __invoke (line 13) | public function __invoke(Application $app, array $options): void

FILE: src/CollectorProviders/PhpInfoCollectorProvider.php
  class PhpInfoCollectorProvider (line 9) | class PhpInfoCollectorProvider extends AbstractCollectorProvider
    method __invoke (line 11) | public function __invoke(array $options): void

FILE: src/CollectorProviders/RequestCollectorProvider.php
  class RequestCollectorProvider (line 12) | class RequestCollectorProvider extends AbstractCollectorProvider
    method __invoke (line 14) | public function __invoke(Dispatcher $events, Request $request, array $...

FILE: src/CollectorProviders/RouteCollectorProvider.php
  class RouteCollectorProvider (line 9) | class RouteCollectorProvider extends AbstractCollectorProvider
    method __invoke (line 11) | public function __invoke(array $options): void

FILE: src/CollectorProviders/SessionCollectorProvider.php
  class SessionCollectorProvider (line 10) | class SessionCollectorProvider extends AbstractCollectorProvider
    method __invoke (line 12) | public function __invoke(Request $request, array $options): void

FILE: src/CollectorProviders/TimeCollectorProvider.php
  class TimeCollectorProvider (line 16) | class TimeCollectorProvider extends AbstractCollectorProvider
    method __invoke (line 18) | public function __invoke(Application $app, Request $request, Dispatche...

FILE: src/CollectorProviders/ViewsCollectorProvider.php
  class ViewsCollectorProvider (line 10) | class ViewsCollectorProvider extends AbstractCollectorProvider
    method __invoke (line 12) | public function __invoke(Dispatcher $events, array $options): void

FILE: src/Console/ClearCommand.php
  class ClearCommand (line 10) | class ClearCommand extends Command
    method handle (line 15) | public function handle(LaravelDebugbar $debugbar): void

FILE: src/Controllers/AssetController.php
  class AssetController (line 14) | class AssetController
    method getAssets (line 16) | public function getAssets(AssetRequest $request, AssetHandler $assetHa...

FILE: src/Controllers/CacheController.php
  class CacheController (line 10) | class CacheController
    method delete (line 16) | public function delete(CacheManager $cache, CacheDeleteRequest $reques...

FILE: src/Controllers/OpenHandlerController.php
  class OpenHandlerController (line 16) | class OpenHandlerController
    method handle (line 18) | public function handle(OpenHandlerRequest $request, LaravelDebugbar $d...
    method clockwork (line 49) | public function clockwork(OpenHandler $openHandler, $id): \Illuminate\...

FILE: src/Controllers/QueriesController.php
  class QueriesController (line 12) | class QueriesController
    method explain (line 17) | public function explain(QueriesExplainRequest $request, LaravelDebugba...

FILE: src/Controllers/TelescopeController.php
  class TelescopeController (line 10) | class TelescopeController
    method show (line 12) | public function show(EntriesRepository $storage, $uuid)

FILE: src/DataCollector/CacheCollector.php
  class CacheCollector (line 28) | class CacheCollector extends TimeDataCollector implements AssetProvider,...
    method __construct (line 47) | public function __construct(float $requestStartTime, bool $collectValues)
    method getCacheEvents (line 55) | public function getCacheEvents(): array
    method onCacheEvent (line 60) | public function onCacheEvent(CacheEvent|CacheFailedOver|CacheFlushed|C...
    method onStartCacheEvent (line 98) | public function onStartCacheEvent(mixed $event): void
    method getEventHash (line 104) | protected function getEventHash(string $class, array $params): string
    method collect (line 111) | public function collect(): array
    method reset (line 119) | public function reset(): void
    method getName (line 125) | public function getName(): string
    method getWidgets (line 130) | public function getWidgets(): array
    method getAssets (line 146) | public function getAssets(): array

FILE: src/DataCollector/ConfigCollector.php
  class ConfigCollector (line 7) | class ConfigCollector extends \DebugBar\DataCollector\ConfigCollector
    method collect (line 9) | public function collect(): array

FILE: src/DataCollector/EventCollector.php
  class EventCollector (line 11) | class EventCollector extends TimeDataCollector
    method setCollectValues (line 19) | public function setCollectValues(bool $collectValues = true): void
    method setCollectListeners (line 24) | public function setCollectListeners(bool $collectListeners = true): void
    method setExcludedEvents (line 29) | public function setExcludedEvents(array $excludedEvents): void
    method onWildcardEvent (line 34) | public function onWildcardEvent(?string $name = null, array $data = []...
    method collect (line 60) | public function collect(): array
    method getName (line 68) | public function getName(): string
    method getWidgets (line 73) | public function getWidgets(): array

FILE: src/DataCollector/GateCollector.php
  class GateCollector (line 19) | class GateCollector extends MessagesCollector implements Resettable
    method addCheck (line 24) | public function addCheck(mixed $user, string|int $ability, mixed $resu...
    method getStackTraceItem (line 64) | protected function getStackTraceItem(array $stacktrace): array
    method findControllerFromDispatcher (line 94) | protected function findControllerFromDispatcher(array $trace): array
    method findViewFromHash (line 117) | protected function findViewFromHash(string $hash): ?string
    method reset (line 140) | public function reset(): void

FILE: src/DataCollector/HttpClientCollector.php
  class HttpClientCollector (line 13) | class HttpClientCollector extends HttpCollector
    method addEvent (line 15) | public function addEvent(ResponseReceived|ConnectionFailed $event): void
    method parseResponse (line 53) | protected function parseResponse(Response $response): string|array

FILE: src/DataCollector/InertiaCollector.php
  class InertiaCollector (line 13) | class InertiaCollector extends TemplateCollector
    method addFromView (line 15) | public function addFromView(\Illuminate\View\View $view): void
    method addFromResponse (line 23) | public function addFromResponse(Response $response): void
    method addInertiaTemplate (line 39) | private function addInertiaTemplate(array $page, ?string $name = null,...
    method collect (line 62) | public function collect(): array
    method getName (line 74) | public function getName(): string
    method getWidgets (line 79) | public function getWidgets(): array

FILE: src/DataCollector/LaravelCollector.php
  class LaravelCollector (line 11) | class LaravelCollector extends DataCollector implements Renderable
    method collect (line 16) | public function collect(): array
    method getName (line 41) | public function getName(): string
    method getWidgets (line 49) | public function getWidgets(): array

FILE: src/DataCollector/LivewireCollector.php
  class LivewireCollector (line 15) | class LivewireCollector extends TemplateCollector
    method addLivewireComponent (line 17) | public function addLivewireComponent(Component $component, ?Request $r...
    method collect (line 45) | public function collect(): array
    method getName (line 57) | public function getName(): string
    method getWidgets (line 65) | public function getWidgets(): array

FILE: src/DataCollector/LogsCollector.php
  class LogsCollector (line 11) | class LogsCollector extends MessagesCollector
    method __construct (line 17) | public function __construct(string|array|null $path = null, string $na...
    method collect (line 33) | public function collect(): array
    method getStorageLogs (line 46) | public function getStorageLogs(string $path): void
    method tailFile (line 71) | protected function tailFile(string $file, int $lines): array
    method getLogs (line 108) | public function getLogs(string $file): array
    method getMessages (line 132) | public function getMessages(): array
    method getLevels (line 141) | public function getLevels(): array

FILE: src/DataCollector/MultiAuthCollector.php
  class MultiAuthCollector (line 16) | class MultiAuthCollector extends DataCollector implements Renderable
    method __construct (line 26) | public function __construct(array $guards = [])
    method setShowName (line 34) | public function setShowName(bool $showName): void
    method setShowGuardsData (line 42) | public function setShowGuardsData(bool $showGuardsData): void
    method collect (line 50) | public function collect(): array
    method getUserInformation (line 90) | protected function getUserInformation(mixed $user = null): array
    method getName (line 125) | public function getName(): string
    method getWidgets (line 133) | public function getWidgets(): array

FILE: src/DataCollector/PennantCollector.php
  class PennantCollector (line 12) | class PennantCollector extends DataCollector implements DataCollectorInt...
    method collect (line 17) | public function collect(): array
    method getName (line 25) | public function getName(): string
    method getWidgets (line 33) | public function getWidgets(): array

FILE: src/DataCollector/QueryCollector.php
  class QueryCollector (line 21) | class QueryCollector extends DataCollector implements Renderable, AssetP...
    method getQueryFormatter (line 53) | public function getQueryFormatter(): QueryFormatter
    method setLimits (line 65) | public function setLimits(?int $softLimit, ?int $hardLimit): void
    method setRenderSqlWithParams (line 74) | public function setRenderSqlWithParams(bool $enabled = true): void
    method setFindSource (line 82) | public function setFindSource(bool|int $value, array $middleware): void
    method mergeExcludePaths (line 88) | public function mergeExcludePaths(array $excludePaths): void
    method mergeBacktraceExcludePaths (line 96) | public function mergeBacktraceExcludePaths(array $excludePaths): void
    method setDurationBackground (line 104) | public function setDurationBackground(bool $enabled): void
    method setSlowThreshold (line 114) | public function setSlowThreshold(int|float $threshold): void
    method isSqlRenderedWithParams (line 119) | public function isSqlRenderedWithParams(): bool
    method setExplainSource (line 129) | public function setExplainSource(bool $enabled): void
    method setExplainQuery (line 137) | public function setExplainQuery(bool $enabled): void
    method setShowQueryResult (line 145) | public function setShowQueryResult(bool $enabled): void
    method startMemoryUsage (line 150) | public function startMemoryUsage(): void
    method addQuery (line 155) | public function addQuery(QueryExecuted $query): void
    method findSource (line 204) | protected function findSource(): array
    method parseTrace (line 220) | protected function parseTrace(int $index, array $trace): object|bool
    method fileIsInExcludedPath (line 281) | protected function fileIsInExcludedPath(string $file): bool
    method findMiddlewareFromFile (line 297) | protected function findMiddlewareFromFile(string $file): ?string
    method findViewFromHash (line 313) | protected function findViewFromHash(string $hash): ?array
    method getTwigInfo (line 339) | protected function getTwigInfo(array $trace): array
    method addMessage (line 357) | public function addMessage(string $message): void
    method collectTransactionEvent (line 380) | public function collectTransactionEvent(string $event, mixed $connecti...
    method reset (line 408) | public function reset(): void
    method collect (line 420) | public function collect(): array
    method getName (line 559) | public function getName(): string
    method getWidgets (line 567) | public function getWidgets(): array
    method getSqlQueryToDisplay (line 583) | protected function getSqlQueryToDisplay(array $query): string
    method getAssets (line 610) | public function getAssets(): array

FILE: src/DataCollector/RequestCollector.php
  class RequestCollector (line 19) | class RequestCollector extends SymfonyRequestCollector implements DataCo...
    method collect (line 24) | public function collect(): array
    method collectCli (line 71) | protected function collectCli(): array
    method collectJob (line 108) | protected function collectJob(Job $job): array
    method getRouteInformation (line 144) | protected function getRouteInformation(mixed $route): array

FILE: src/DataCollector/RouteCollector.php
  class RouteCollector (line 18) | class RouteCollector extends DataCollector implements Renderable
    method collect (line 23) | public function collect(): array
    method getRouteInformation (line 32) | protected function getRouteInformation(mixed $route): array
    method getMiddleware (line 113) | protected function getMiddleware(mixed $route): string
    method getName (line 123) | public function getName(): string
    method getWidgets (line 131) | public function getWidgets(): array

FILE: src/DataCollector/SessionCollector.php
  class SessionCollector (line 11) | class SessionCollector extends DataCollector implements DataCollectorInt...
    method collect (line 16) | public function collect(): array
    method getName (line 30) | public function getName(): string
    method getWidgets (line 38) | public function getWidgets(): array

FILE: src/DataCollector/ViewCollector.php
  class ViewCollector (line 11) | class ViewCollector extends TemplateCollector
    method getName (line 13) | public function getName(): string
    method addView (line 21) | public function addView(View $view): void
    method getRenderSource (line 60) | private function getRenderSource(string $name, ?string $path): ?array

FILE: src/Facades/Debugbar.php
  class Debugbar (line 27) | class Debugbar extends \Illuminate\Support\Facades\Facade
    method getFacadeAccessor (line 32) | protected static function getFacadeAccessor(): string

FILE: src/LaravelDebugbar.php
  class LaravelDebugbar (line 77) | class LaravelDebugbar extends DebugBar
    method __construct (line 101) | public function __construct(Application $app, Request $request)
    method setApplication (line 112) | public function setApplication(Application $app): void
    method setRequest (line 117) | public function setRequest(Request $request): void
    method setProcessingJob (line 122) | public function setProcessingJob(?Job $job): void
    method getProcessingJob (line 127) | public function getProcessingJob(): ?Job
    method getHttpDriver (line 132) | public function getHttpDriver(): HttpDriverInterface
    method getRequestIdGenerator (line 141) | public function getRequestIdGenerator(): RequestIdGeneratorInterface
    method getTimeCollector (line 155) | public function getTimeCollector(): TimeDataCollector
    method getMessagesCollector (line 160) | public function getMessagesCollector(): MessagesCollector
    method getExceptionsCollector (line 165) | public function getExceptionsCollector(): ExceptionsCollector
    method isCollecting (line 170) | public function isCollecting(): bool
    method enable (line 178) | public function enable(): void
    method boot (line 190) | public function boot(): void
    method booted (line 219) | public function booted(): void
    method registerCollectors (line 228) | protected function registerCollectors(): void
    method registerCollectorProviders (line 266) | protected function registerCollectorProviders(array $providers): void
    method registerCustomCollectorProviders (line 286) | protected function registerCustomCollectorProviders(array $providers):...
    method registerDataFormatter (line 309) | protected function registerDataFormatter(): void
    method getJavascriptRenderer (line 335) | public function getJavascriptRenderer(?string $baseUrl = null, ?string...
    method shouldCollect (line 366) | public function shouldCollect(string $name, bool $default = true): bool
    method handleError (line 374) | public function handleError(int $level, string $message, string $file ...
    method startMeasure (line 402) | public function startMeasure(string $name, ?string $label = null, ?str...
    method stopMeasure (line 410) | public function stopMeasure(string $name): void
    method addException (line 423) | public function addException(Throwable $e): void
    method addThrowable (line 431) | public function addThrowable(Throwable $e): void
    method addCollectorException (line 440) | protected function addCollectorException(string $message, Exception $e...
    method handleResponse (line 454) | public function handleResponse(Request $request, SymfonyResponse $resp...
    method canBeEnabled (line 552) | public static function canBeEnabled(): bool
    method isEnabled (line 561) | public function isEnabled(): bool
    method isStorageOpen (line 580) | public function isStorageOpen(Request $request): bool
    method requestIsExcluded (line 612) | public function requestIsExcluded(Request $request): bool
    method isDebugbarRequest (line 629) | protected function isDebugbarRequest(Request $request): bool
    method isJsonRequest (line 634) | protected function isJsonRequest(Request $request): bool
    method isJsonResponse (line 654) | protected function isJsonResponse(SymfonyResponse $response): bool
    method collectMetaData (line 685) | public function collectMetaData(): array
    method terminate (line 707) | public function terminate(): void
    method injectDebugbar (line 719) | public function injectDebugbar(SymfonyResponse $response): void
    method disable (line 753) | public function disable(): void
    method reset (line 758) | public function reset(): void
    method addMeasure (line 773) | public function addMeasure(string $label, float $start, ?float $end = ...
    method measure (line 781) | public function measure(string $label, \Closure $closure, ?string $col...
    method __call (line 789) | public function __call(string $method, array $args): void
    method addMessage (line 804) | public function addMessage(mixed $message, string $label = 'info', arr...
    method checkVersion (line 812) | public function checkVersion(string $version, string $operator = ">=")...
    method selectStorage (line 817) | protected function selectStorage(DebugBar $debugbar): void
    method addClockworkHeaders (line 862) | protected function addClockworkHeaders(SymfonyResponse $response): void
    method addServerTimingHeaders (line 875) | protected function addServerTimingHeaders(SymfonyResponse $response): ...
    method getRemoteServerReplacements (line 889) | private function getRemoteServerReplacements(): array

FILE: src/LaravelHttpDriver.php
  class LaravelHttpDriver (line 12) | class LaravelHttpDriver implements HttpDriverInterface
    method __construct (line 14) | public function __construct(protected Request $request, protected ?Res...
    method setRequest (line 16) | public function setRequest(Request $request): void
    method setResponse (line 21) | public function setResponse(?Response $response): void
    method setHeaders (line 26) | public function setHeaders(array $headers): void
    method output (line 33) | public function output(string $content): void
    method isSessionStarted (line 42) | public function isSessionStarted(): bool
    method setSessionValue (line 47) | public function setSessionValue(string $name, mixed $value): void
    method hasSessionValue (line 64) | public function hasSessionValue(string $name): bool
    method getSessionValue (line 72) | public function getSessionValue(string $name): mixed
    method deleteSessionValue (line 85) | public function deleteSessionValue(string $name): void

FILE: src/Middleware/DebugbarEnabled.php
  class DebugbarEnabled (line 11) | readonly class DebugbarEnabled
    method __construct (line 17) | public function __construct(protected LaravelDebugbar $debugbar) {}
    method handle (line 24) | public function handle($request, Closure $next): mixed

FILE: src/Middleware/StopRecordingTelescope.php
  class StopRecordingTelescope (line 11) | readonly class StopRecordingTelescope
    method handle (line 18) | public function handle($request, Closure $next): mixed

FILE: src/Requests/AssetRequest.php
  class AssetRequest (line 9) | class AssetRequest extends FormRequest
    method rules (line 11) | public function rules(): array

FILE: src/Requests/CacheDeleteRequest.php
  class CacheDeleteRequest (line 9) | class CacheDeleteRequest extends FormRequest
    method authorize (line 11) | public function authorize(): bool
    method rules (line 16) | public function rules(): array

FILE: src/Requests/OpenHandlerRequest.php
  class OpenHandlerRequest (line 9) | class OpenHandlerRequest extends FormRequest
    method rules (line 11) | public function rules(): array

FILE: src/Requests/QueriesExplainRequest.php
  class QueriesExplainRequest (line 9) | class QueriesExplainRequest extends FormRequest
    method rules (line 11) | public function rules(): array

FILE: src/ServiceProvider.php
  class ServiceProvider (line 21) | class ServiceProvider extends \Illuminate\Support\ServiceProvider
    method register (line 27) | public function register(): void
    method boot (line 51) | public function boot(Dispatcher $events): void
    method getConfigPath (line 124) | protected function getConfigPath(): string

FILE: src/Support/Clockwork/ClockworkCollector.php
  class ClockworkCollector (line 18) | class ClockworkCollector extends DataCollector implements DataCollectorI...
    method __construct (line 23) | public function __construct(
    method getName (line 34) | public function getName(): string
    method getWidgets (line 42) | public function getWidgets(): array
    method collect (line 50) | public function collect(): array

FILE: src/Support/Clockwork/Converter.php
  class Converter (line 7) | class Converter
    method convert (line 15) | public function convert($data): array

FILE: src/Support/Explain.php
  class Explain (line 14) | class Explain
    method isReadOnlyQuery (line 16) | public function isReadOnlyQuery(string $query): bool
    method isRawExplainSupported (line 21) | public function isRawExplainSupported(string $driver, ?array $bindings...
    method isVisualExplainSupported (line 26) | public function isVisualExplainSupported(string $connection): bool
    method confirmVisualExplain (line 50) | public function confirmVisualExplain(string $connection): ?string
    method hash (line 59) | public function hash(string $connection, string $sql, ?array $bindings...
    method verify (line 66) | private function verify(string $connection, string $sql, array $bindin...
    method generateSelectResult (line 75) | public function generateSelectResult(string $connection, string $sql, ...
    method generateRawExplain (line 89) | public function generateRawExplain(string $connection, string $sql, ar...
    method generateVisualExplain (line 103) | public function generateVisualExplain(string $connection, string $sql,...
    method validateReadOnlyQuery (line 121) | private function validateReadOnlyQuery(string $sql): void
    method redactBindings (line 130) | private static function redactBindings(array $bindings): array
    method generateVisualExplainMysql (line 135) | private function generateVisualExplainMysql(ConnectionInterface $conne...
    method generateVisualExplainPgsql (line 148) | private function generateVisualExplainPgsql(ConnectionInterface $conne...

FILE: src/Support/Octane/ResetDebugbar.php
  class ResetDebugbar (line 10) | class ResetDebugbar
    method handle (line 16) | public function handle(RequestReceived $event): void

FILE: src/Twig/Extension/Debug.php
  class Debug (line 13) | class Debug extends DebugTwigExtension
    method debug (line 15) | public function debug(Environment $env, $context)

FILE: src/Twig/Extension/Dump.php
  class Dump (line 12) | class Dump extends DumpTwigExtension {}

FILE: src/Twig/Extension/Stopwatch.php
  class Stopwatch (line 15) | class Stopwatch extends MeasureTwigExtension
    method __construct (line 26) | public function __construct(Application $app)
    method getDebugbar (line 35) | public function getDebugbar()
    method getTokenParsers (line 40) | public function getTokenParsers()
    method startMeasure (line 52) | public function startMeasure(...$arg)
    method stopMeasure (line 61) | public function stopMeasure(...$arg)

FILE: src/helpers.php
  function debugbar (line 10) | function debugbar(?string $collector = null): \Fruitcake\LaravelDebugbar...
  function debug (line 26) | function debug(mixed ...$value): void

FILE: tests/BrowserTestCase.php
  class BrowserTestCase (line 10) | class BrowserTestCase extends \Orchestra\Testbench\Dusk\TestCase
    method getPackageProviders (line 22) | protected function getPackageProviders($app)
    method getPackageAliases (line 34) | protected function getPackageAliases($app)

FILE: tests/Controllers/AssetControllerTest.php
  class AssetControllerTest (line 9) | class AssetControllerTest extends DebugbarTest
    method testAssetRouteRequiresTypeParameter (line 11) | public function testAssetRouteRequiresTypeParameter(): void
    method testAssetRouteRejectsInvalidType (line 18) | public function testAssetRouteRejectsInvalidType(): void
    method testAssetRouteAcceptsCssType (line 25) | public function testAssetRouteAcceptsCssType(): void
    method testAssetRouteAcceptsJsType (line 32) | public function testAssetRouteAcceptsJsType(): void

FILE: tests/Controllers/CacheControllerTest.php
  class CacheControllerTest (line 11) | class CacheControllerTest extends DebugbarTest
    method testItDeletesCacheKeyWithSignedUrl (line 13) | #[DataProvider('cacheKeyProvider')]
    method testItRejectsRequestWithInvalidSignature (line 26) | public function testItRejectsRequestWithInvalidSignature(): void
    method testItRejectsRequestWhenStorageIsNotOpen (line 36) | public function testItRejectsRequestWhenStorageIsNotOpen(): void
    method testItRejectsInvalidTagsParameter (line 51) | public function testItRejectsInvalidTagsParameter(): void
    method cacheKeyProvider (line 62) | public static function cacheKeyProvider(): array

FILE: tests/Controllers/DebugbarEnabledMiddlewareTest.php
  class DebugbarEnabledMiddlewareTest (line 11) | class DebugbarEnabledMiddlewareTest extends TestCase
    method testRoutesReturn404WhenDebugbarIsDisabled (line 13) | public function testRoutesReturn404WhenDebugbarIsDisabled(): void
    method testRoutesAreAccessibleWhenDebugbarIsEnabled (line 21) | public function testRoutesAreAccessibleWhenDebugbarIsEnabled(): void
    method enableDebugbar (line 33) | protected function enableDebugbar(): void

FILE: tests/Controllers/OpenHandlerControllerTest.php
  class OpenHandlerControllerTest (line 9) | class OpenHandlerControllerTest extends DebugbarTest
    method testOpenHandlerReturnsStorageClosedMessageWhenStorageIsNotOpen (line 11) | public function testOpenHandlerReturnsStorageClosedMessageWhenStorageI...
    method testOpenHandlerAllowsGetOpWithoutStorageOpen (line 22) | public function testOpenHandlerAllowsGetOpWithoutStorageOpen(): void
    method testOpenHandlerWorksWhenStorageIsOpen (line 33) | public function testOpenHandlerWorksWhenStorageIsOpen(): void
    method testOpenHandlerStorageOpenCallbackReceivesRequest (line 44) | public function testOpenHandlerStorageOpenCallbackReceivesRequest(): void
    method ensureStorageDirectory (line 73) | private function ensureStorageDirectory(): void

FILE: tests/Controllers/QueriesControllerTest.php
  class QueriesControllerTest (line 9) | class QueriesControllerTest extends DebugbarTest
    method testExplainReturnsErrorWhenStorageIsNotOpen (line 11) | public function testExplainReturnsErrorWhenStorageIsNotOpen(): void
    method testExplainReturnsErrorWhenExplainIsDisabled (line 28) | public function testExplainReturnsErrorWhenExplainIsDisabled(): void
    method testExplainValidatesRequiredFields (line 47) | public function testExplainValidatesRequiredFields(): void
    method testExplainValidatesModeValues (line 58) | public function testExplainValidatesModeValues(): void
    method testExplainAcceptsValidModeValues (line 75) | public function testExplainAcceptsValidModeValues(): void

FILE: tests/DataCollector/CacheCollectorTest.php
  class CacheCollectorTest (line 17) | class CacheCollectorTest extends TestCase
    method testItCollectsCacheEvents (line 19) | public function testItCollectsCacheEvents(): void
    method testItGeneratesDeleteUrlForCacheHit (line 34) | #[DataProvider('cacheKeyProvider')]
    method testItGeneratesDeleteUrlForKeyWritten (line 52) | #[DataProvider('cacheKeyProvider')]
    method testItCalculatesMemoryUsageForKeyWritten (line 69) | #[DataProvider('sizeDataProvider')]
    method testItCalculatesMemoryUsageForCacheHit (line 85) | #[DataProvider('sizeDataProvider')]
    method testItHandlesClosureValueGracefully (line 101) | public function testItHandlesClosureValueGracefully(): void
    method testItHandlesClosureValueInCacheHitGracefully (line 120) | public function testItHandlesClosureValueInCacheHitGracefully(): void
    method testCacheMissHasNoMemoryUsage (line 139) | public function testCacheMissHasNoMemoryUsage(): void
    method testItCollectsRememberMissPattern (line 155) | public function testItCollectsRememberMissPattern(): void
    method testItCollectsRememberHitPattern (line 179) | public function testItCollectsRememberHitPattern(): void
    method testItCollectsForgottenEvent (line 199) | public function testItCollectsForgottenEvent(): void
    method testStartEventTimingIsUsed (line 216) | public function testStartEventTimingIsUsed(): void
    method sizeDataProvider (line 237) | public static function sizeDataProvider(): array
    method cacheKeyProvider (line 254) | public static function cacheKeyProvider(): array

FILE: tests/DataCollector/GateCollectorTest.php
  class GateCollectorTest (line 12) | class GateCollectorTest extends TestCase
    method testItCollectsGateChecks (line 14) | public function testItCollectsGateChecks()

FILE: tests/DataCollector/HttpClientCollectorTest.php
  class HttpClientCollectorTest (line 17) | class HttpClientCollectorTest extends TestCase
    method testItCollectsResponseReceivedEvents (line 19) | public function testItCollectsResponseReceivedEvents()
    method testItCollectsConnectionFailedEvents (line 42) | public function testItCollectsConnectionFailedEvents()
    method testItMasksAuthorizationHeader (line 69) | public function testItMasksAuthorizationHeader()
    method testItCollectsMultipleEvents (line 94) | public function testItCollectsMultipleEvents()

FILE: tests/DataCollector/JobsCollectorTest.php
  class JobsCollectorTest (line 15) | class JobsCollectorTest extends TestCase
    method getEnvironmentSetUp (line 19) | protected function getEnvironmentSetUp($app)
    method testItCollectsDispatchedJobs (line 29) | public function testItCollectsDispatchedJobs()
    method createJobsTable (line 81) | protected function createJobsTable()

FILE: tests/DataCollector/Livewire/DummyComponent.php
  class DummyComponent (line 9) | class DummyComponent extends Component
    method increment (line 15) | public function increment()
    method render (line 20) | public function render()

FILE: tests/DataCollector/LivewireCollectorTest.php
  class LivewireCollectorTest (line 15) | class LivewireCollectorTest extends TestCase
    method getPackageProviders (line 24) | protected function getPackageProviders($app)
    method testItCollectsLivewireComponents (line 29) | public function testItCollectsLivewireComponents()
    method testItCollectsAnonymousLivewireComponents (line 55) | public function testItCollectsAnonymousLivewireComponents()

FILE: tests/DataCollector/MailCollectorTest.php
  class MailCollectorTest (line 12) | class MailCollectorTest extends TestCase
    method testItCollectsSentMails (line 14) | public function testItCollectsSentMails(): void
    method testItCollectsMultipleMails (line 34) | public function testItCollectsMultipleMails(): void
    method testItAddsMailsToTimelineCollector (line 59) | public function testItAddsMailsToTimelineCollector(): void
    method testItDoesNotAddToTimelineWhenDisabled (line 84) | public function testItDoesNotAddToTimelineWhenDisabled(): void
    method testItCollectsMailBody (line 107) | public function testItCollectsMailBody(): void
    method testItHidesMailBodyWhenDisabled (line 125) | public function testItHidesMailBodyWhenDisabled(): void

FILE: tests/DataCollector/ModelsCollectorTest.php
  class ModelsCollectorTest (line 13) | class ModelsCollectorTest extends TestCase
    method testItCollectsRetrievedModels (line 17) | public function testItCollectsRetrievedModels()

FILE: tests/DataCollector/PennantCollectorTest.php
  class PennantCollectorTest (line 15) | class PennantCollectorTest extends TestCase
    method getPackageProviders (line 26) | protected function getPackageProviders($app)
    method defineDatabaseMigrations (line 39) | protected function defineDatabaseMigrations()
    method testItCollectsPennantValues (line 48) | public function testItCollectsPennantValues()

FILE: tests/DataCollector/QueryCollectorRuntimeDatabaseTest.php
  class QueryCollectorRuntimeDatabaseTest (line 10) | class QueryCollectorRuntimeDatabaseTest extends TestCase
    method getEnvironmentSetUp (line 12) | protected function getEnvironmentSetUp($app)
    method testCollectsQueriesFromRuntimeConnections (line 19) | public function testCollectsQueriesFromRuntimeConnections()
    method testCollectsQueriesFromRuntimeConnectionsWithoutConnectUsing (line 53) | public function testCollectsQueriesFromRuntimeConnectionsWithoutConnec...

FILE: tests/DataCollector/QueryCollectorTest.php
  class QueryCollectorTest (line 12) | class QueryCollectorTest extends TestCase
    method testItReplacesQuestionMarksBindingsCorrectly (line 16) | public function testItReplacesQuestionMarksBindingsCorrectly()
    method testDollarBindingsArePresentedCorrectly (line 43) | public function testDollarBindingsArePresentedCorrectly()
    method testResultModeForSelectQuery (line 64) | public function testResultModeForSelectQuery(): void
    method testResultModeForWithQuery (line 84) | public function testResultModeForWithQuery(): void
    method testResultModeExcludedForNonSelectQuery (line 104) | public function testResultModeExcludedForNonSelectQuery(): void
    method testResultModeExcludedWhenDisabled (line 123) | public function testResultModeExcludedWhenDisabled(): void
    method testExplainModeExcludedForSqlite (line 142) | public function testExplainModeExcludedForSqlite(): void
    method testExplainModeExcludedWhenBindingsNull (line 161) | public function testExplainModeExcludedWhenBindingsNull(): void
    method testExplainModeExcludedForNonSelectQuery (line 181) | public function testExplainModeExcludedForNonSelectQuery(): void
    method testFindingCorrectPathForView (line 200) | public function testFindingCorrectPathForView()

FILE: tests/DataCollector/RouteCollectorTest.php
  class RouteCollectorTest (line 12) | class RouteCollectorTest extends TestCase
    method setUp (line 16) | protected function setUp(): void
    method getEnvironmentSetUp (line 24) | protected function getEnvironmentSetUp($app)
    method testItCollectsRouteUri (line 31) | public function testItCollectsRouteUri()
    method testItCollectsWithControllerHandler (line 43) | public function testItCollectsWithControllerHandler($controller, $file...
    method testItCollectsWithViewComponentHandler (line 61) | public function testItCollectsWithViewComponentHandler($controller, $f...
    method testItCollectsWithClosureHandler (line 76) | public function testItCollectsWithClosureHandler($file)
    method testItCollectsMiddleware (line 91) | public function testItCollectsMiddleware()
    method controllerData (line 102) | public static function controllerData()
    method viewComponentData (line 111) | public static function viewComponentData()
    method closureData (line 120) | public static function closureData()

FILE: tests/DataCollector/SessionCollectorTest.php
  class SessionCollectorTest (line 11) | class SessionCollectorTest extends TestCase
    method getEnvironmentSetUp (line 13) | protected function getEnvironmentSetUp($app)
    method testItCollectsSessionVariables (line 18) | public function testItCollectsSessionVariables()

FILE: tests/DataCollector/ViewCollectorTest.php
  class ViewCollectorTest (line 11) | class ViewCollectorTest extends TestCase
    method testIdeLinksAreAbsolutePaths (line 15) | public function testIdeLinksAreAbsolutePaths()

FILE: tests/DataFormatter/QueryFormatterTest.php
  class QueryFormatterTest (line 10) | class QueryFormatterTest extends TestCase
    method testItFormatsArrayBindings (line 12) | public function testItFormatsArrayBindings()
    method testItFormatsObjectBindings (line 34) | public function testItFormatsObjectBindings()

FILE: tests/DebugbarBrowserTest.php
  class DebugbarBrowserTest (line 12) | class DebugbarBrowserTest extends BrowserTestCase
    method getEnvironmentSetUp (line 21) | protected function getEnvironmentSetUp($app)
    method addWebRoutes (line 43) | protected function addWebRoutes(Router $router)
    method addApiRoutes (line 107) | protected function addApiRoutes(Router $router)
    method addViewPaths (line 116) | protected function addViewPaths()
    method testItStacksOnRedirect (line 121) | public function testItStacksOnRedirect()
    method testItInjectsOnPlainText (line 135) | public function testItInjectsOnPlainText()
    method testItInjectsOnHtml (line 145) | public function testItInjectsOnHtml()
    method testItDoesntInjectOnJson (line 155) | public function testItDoesntInjectOnJson()
    method testItCapturesAjaxRequests (line 165) | public function testItCapturesAjaxRequests()
    method testDatabaseTabIsClickable (line 177) | public function testDatabaseTabIsClickable()
    method testDatabaseCollectsQueries (line 189) | public function testDatabaseCollectsQueries()
    method testDatabaseCollectsQueriesWithCustomPrototype (line 212) | public function testDatabaseCollectsQueriesWithCustomPrototype()
    method testDatabaseCollectsQueriesWithSoftLimit (line 239) | public function testDatabaseCollectsQueriesWithSoftLimit()
    method testDatabaseCollectsQueriesWithHardLimit (line 255) | public function testDatabaseCollectsQueriesWithHardLimit()

FILE: tests/DebugbarDocsTest.php
  class DebugbarDocsTest (line 13) | class DebugbarDocsTest extends TestCase
    method getEnvironmentSetUp (line 22) | protected function getEnvironmentSetUp($app)
    method testItInjectsOnDocs (line 34) | public function testItInjectsOnDocs()

FILE: tests/DebugbarTest.php
  class DebugbarTest (line 10) | class DebugbarTest extends TestCase
    method getEnvironmentSetUp (line 19) | protected function getEnvironmentSetUp($app)
    method testItInjectsOnPlainText (line 31) | public function testItInjectsOnPlainText()
    method testItInjectsOnEmptyResponse (line 40) | public function testItInjectsOnEmptyResponse()
    method testItInjectsOnNullyResponse (line 49) | public function testItInjectsOnNullyResponse()
    method testItInjectsOnHtml (line 58) | public function testItInjectsOnHtml()
    method testItDoesntInjectOnJson (line 67) | public function testItDoesntInjectOnJson()
    method testItDoesntInjectOnJsonLookingString (line 76) | public function testItDoesntInjectOnJsonLookingString()
    method testItDoesntInjectsOnHxRequestWithHxTarget (line 85) | public function testItDoesntInjectsOnHxRequestWithHxTarget()
    method testItInjectsOnHxRequestWithoutHxTarget (line 97) | public function testItInjectsOnHxRequestWithoutHxTarget()

FILE: tests/ErrorHandlerTest.php
  class ErrorHandlerTest (line 10) | class ErrorHandlerTest extends TestCase
    method getEnvironmentSetUp (line 19) | protected function getEnvironmentSetUp($app)
    method testErrorHandlerRespectsCustomErrorLevel (line 39) | public function testErrorHandlerRespectsCustomErrorLevel()

FILE: tests/Jobs/OrderShipped.php
  class OrderShipped (line 10) | class OrderShipped implements ShouldQueue
    method __construct (line 16) | public function __construct($orderId)
    method handle (line 21) | public function handle()

FILE: tests/Jobs/SendNotification.php
  class SendNotification (line 10) | class SendNotification implements ShouldQueue
    method handle (line 14) | public function handle()

FILE: tests/LivewireBrowserTest.php
  class LivewireBrowserTest (line 14) | class LivewireBrowserTest extends BrowserTestCase
    method getEnvironmentSetUp (line 23) | protected function getEnvironmentSetUp($app)
    method getPackageProviders (line 58) | protected function getPackageProviders($app)
    method testLivewireCollectsComponents (line 63) | public function testLivewireCollectsComponents()
    method testLivewireCollectsView (line 88) | public function testLivewireCollectsView()

FILE: tests/Mocks/MockController.php
  class MockController (line 9) | class MockController extends Controller
    method show (line 11) | public function show()

FILE: tests/Mocks/MockMiddleware.php
  class MockMiddleware (line 9) | class MockMiddleware
    method handle (line 11) | public function handle($request, Closure $next)

FILE: tests/Mocks/MockViewComponent.php
  class MockViewComponent (line 9) | class MockViewComponent extends InvokableComponentVariable
    method render (line 11) | public function render()

FILE: tests/Models/Person.php
  class Person (line 7) | class Person extends User {}

FILE: tests/Models/User.php
  class User (line 9) | class User extends Model

FILE: tests/Support/ExplainTest.php
  class ExplainTest (line 10) | class ExplainTest extends TestCase
    method setUp (line 14) | protected function setUp(): void
    method testSelectQueryIsReadOnly (line 21) | public function testSelectQueryIsReadOnly(): void
    method testSelectQueryWithLeadingWhitespaceIsReadOnly (line 26) | public function testSelectQueryWithLeadingWhitespaceIsReadOnly(): void
    method testSelectQueryCaseInsensitiveIsReadOnly (line 31) | public function testSelectQueryCaseInsensitiveIsReadOnly(): void
    method testWithQueryIsReadOnly (line 36) | public function testWithQueryIsReadOnly(): void
    method testWithQueryCaseInsensitiveIsReadOnly (line 41) | public function testWithQueryCaseInsensitiveIsReadOnly(): void
    method testInsertQueryIsNotReadOnly (line 46) | public function testInsertQueryIsNotReadOnly(): void
    method testUpdateQueryIsNotReadOnly (line 51) | public function testUpdateQueryIsNotReadOnly(): void
    method testDeleteQueryIsNotReadOnly (line 56) | public function testDeleteQueryIsNotReadOnly(): void
    method testDropQueryIsNotReadOnly (line 61) | public function testDropQueryIsNotReadOnly(): void
    method testSelectAsSubstringIsNotReadOnly (line 66) | public function testSelectAsSubstringIsNotReadOnly(): void
    method testWithAsSubstringIsNotReadOnly (line 71) | public function testWithAsSubstringIsNotReadOnly(): void
    method testRawExplainSupportedForMysql (line 76) | public function testRawExplainSupportedForMysql(): void
    method testRawExplainSupportedForMariadb (line 81) | public function testRawExplainSupportedForMariadb(): void
    method testRawExplainSupportedForPgsql (line 86) | public function testRawExplainSupportedForPgsql(): void
    method testRawExplainNotSupportedForSqlite (line 91) | public function testRawExplainNotSupportedForSqlite(): void
    method testRawExplainNotSupportedForSqlsrv (line 96) | public function testRawExplainNotSupportedForSqlsrv(): void
    method testRawExplainNotSupportedWhenBindingsNull (line 101) | public function testRawExplainNotSupportedWhenBindingsNull(): void
    method testRawExplainSupportedWithEmptyBindings (line 106) | public function testRawExplainSupportedWithEmptyBindings(): void

FILE: tests/TestCase.php
  class TestCase (line 17) | class TestCase extends Orchestra
    method getPackageProviders (line 26) | protected function getPackageProviders($app)
    method getPackageAliases (line 38) | protected function getPackageAliases($app)
    method getEnvironmentSetUp (line 50) | protected function getEnvironmentSetUp($app)
    method addWebRoutes (line 64) | protected function addWebRoutes(Router $router)
    method addApiRoutes (line 93) | protected function addApiRoutes(Router $router)
    method addViewPaths (line 102) | protected function addViewPaths()
    method resetStorageOpen (line 107) | protected function resetStorageOpen(): void
Condensed preview — 152 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (613K chars).
[
  {
    "path": ".editorconfig",
    "chars": 187,
    "preview": "root = true\n\n[*]\ncharset = utf-8\nend_of_line = lf\ninsert_final_newline = true\nindent_style = space\nindent_size = 4\ntrim_"
  },
  {
    "path": ".gitattributes",
    "chars": 496,
    "preview": "* text=auto\n\n/.github export-ignore\n/build export-ignore\n/docs export-ignore\n/tests export-ignore\n.editorconfig export-i"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 98,
    "preview": "# These are supported funding model platforms\n\ngithub: barryvdh\ncustom: ['https://fruitcake.nl']\n\n"
  },
  {
    "path": ".github/release-drafter.yml",
    "chars": 44,
    "preview": "template: |\n  ## What’s Changed\n\n  $CHANGES\n"
  },
  {
    "path": ".github/stale.yml",
    "chars": 981,
    "preview": "# Number of days of inactivity before an issue becomes stale\ndaysUntilStale: 60\n# Number of days of inactivity before a "
  },
  {
    "path": ".github/workflows/build-docs.yml",
    "chars": 1301,
    "preview": "name: Build docs\non:\n  workflow_dispatch:\n  push:\n    branches:\n      - master\n    paths:\n      - 'resources/**'\n      -"
  },
  {
    "path": ".github/workflows/fix-code-style.yml",
    "chars": 993,
    "preview": "name: Fix Code Style\n\non:\n    push:\n        branches:\n            - master\n        paths:\n            - '**.php'\n    pul"
  },
  {
    "path": ".github/workflows/integration-tests.yml",
    "chars": 2114,
    "preview": "name: Integration Tests\n\non:\n  push:\n    branches:\n      - master\n  pull_request:\n    branches:\n      - \"*\"\n\njobs:\n  php"
  },
  {
    "path": ".github/workflows/livewire-tests.yml",
    "chars": 1464,
    "preview": "name: Livewire Tests\n\non:\n  push:\n    branches:\n      - master\n  pull_request:\n    branches:\n      - *\n\njobs:\n  unit-tes"
  },
  {
    "path": ".github/workflows/release-drafter.yml",
    "chars": 1404,
    "preview": "name: Release Drafter\n\non:\n  push:\n    # branches to consider in the event; optional, defaults to all\n    branches:\n    "
  },
  {
    "path": ".github/workflows/static-analysis.yml",
    "chars": 662,
    "preview": "name: Code Analysis\n\non:\n  push:\n    branches:\n      - master\n  pull_request:\n    branches:\n      - \"*\"\n\njobs:\n  static-"
  },
  {
    "path": ".github/workflows/unit-tests.yml",
    "chars": 1847,
    "preview": "name: Unit Tests\n\non:\n  push:\n    branches:\n      - master\n  pull_request:\n    branches:\n      - '*'\n  schedule:\n    - c"
  },
  {
    "path": ".github/workflows/update-changelog.yaml",
    "chars": 1022,
    "preview": "name: \"Update Changelog\"\n\non:\n  release:\n    types: [released]\n\njobs:\n  update:\n    runs-on: ubuntu-latest\n\n    permissi"
  },
  {
    "path": ".gitignore",
    "chars": 172,
    "preview": "/.idea\n/vendor\ncomposer.phar\ncomposer.lock\n.DS_Store\n.phpunit*\n/tests/Browser\n/node_modules\n/build/phpstan\n/build/docs\n/"
  },
  {
    "path": ".nvmrc",
    "chars": 3,
    "preview": "24\n"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 34525,
    "preview": "# Changelog\n\n## v4.1.3 - 2026-03-09\n\n### What's Changed\n\n* Optin query result by @barryvdh in https://github.com/fruitca"
  },
  {
    "path": "LICENSE",
    "chars": 1068,
    "preview": "Copyright (C) 2013-present Barry vd. Heuvel\n\nPermission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "SECURITY.md",
    "chars": 103,
    "preview": "# Security Policy\n\n## Reporting a Vulnerability\n\nPlease report security issues to `barryvdh@gmail.com`\n"
  },
  {
    "path": "UPGRADE.md",
    "chars": 1398,
    "preview": "# Upgrade Guide\n\n## 3.x to 4.x\n\n### php-debugbar 3.x\nThe php-debugbar dependency has been updated to 3.x. This removes j"
  },
  {
    "path": "build/build-docs.php",
    "chars": 3409,
    "preview": "<?php\n\nuse DebugBar\\Bridge\\Symfony\\SymfonyMailCollector;\nuse DebugBar\\DataCollector\\PDO\\PDOCollector;\nuse DebugBar\\DataC"
  },
  {
    "path": "build/build-icons.js",
    "chars": 3904,
    "preview": "import fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __filename = fileURLToPath(imp"
  },
  {
    "path": "composer.json",
    "chars": 2411,
    "preview": "{\n    \"name\": \"fruitcake/laravel-debugbar\",\n    \"description\": \"PHP Debugbar integration for Laravel\",\n    \"keywords\": ["
  },
  {
    "path": "config/debugbar.php",
    "chars": 19478,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nreturn [\n\n    /*\n     |----------------------------------------------------------------"
  },
  {
    "path": "database/migrations/2014_12_01_120000_create_phpdebugbar_storage_table.php",
    "chars": 1014,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nuse Illuminate\\Database\\Migrations\\Migration;\nuse Illuminate\\Database\\Schema\\Blueprint;"
  },
  {
    "path": "docs/CNAME",
    "chars": 19,
    "preview": "laraveldebugbar.com"
  },
  {
    "path": "docs/assets/extra.css",
    "chars": 497,
    "preview": ":root {\n    --md-primary-fg-color:        #eb4432;\n    --md-primary-fg-color--light: #eb4432;\n    --md-primary-fg-color-"
  },
  {
    "path": "docs/collectors.md",
    "chars": 16774,
    "preview": "---\ndescription: Laravel Debugbar contains a lot of collectors to help you debug or profile Database Queries, Log messag"
  },
  {
    "path": "docs/features.md",
    "chars": 7187,
    "preview": "---\ndescription: Laravel Debugbar contains features like collectors, capturing ajax requesting, browsing history etc.\npr"
  },
  {
    "path": "docs/index.md",
    "chars": 1705,
    "preview": "---\ntitle: Debugbar for Laravel\ndescription: Laravel Debugbar is a package that integrates PHP Debug Bar with Laravel to"
  },
  {
    "path": "docs/installation.md",
    "chars": 2842,
    "preview": "---\ndescription: Installing Laravel Debugbar in a project is simple. Use 'composer require fruitcake/laravel-debugbar --"
  },
  {
    "path": "docs/overrides/main.html",
    "chars": 129480,
    "preview": "{% extends \"base.html\" %}\n\n<!-- Meta tags -->\n{% block extrahead %}\n{{ super() }}\n\n{% if page.is_homepage %}\n<meta prope"
  },
  {
    "path": "docs/overrides/shortcodes.py",
    "chars": 10427,
    "preview": "# Copyright (c) 2016-2024 Martin Donath <martin.donath@squidfunk.com>\n# Copy from https://github.com/squidfunk/mkdocs-ma"
  },
  {
    "path": "docs/usage.md",
    "chars": 4497,
    "preview": "---\ndescription: Using Laravel Debugbar is simple. After installing, just enable Debug mode and you should be good. Read"
  },
  {
    "path": "eslint.config.js",
    "chars": 2643,
    "preview": "import antfu from '@antfu/eslint-config';\nimport globals from 'globals';\n\nexport default antfu(\n    {\n        type: 'app"
  },
  {
    "path": "mkdocs.yml",
    "chars": 2040,
    "preview": "site_name: Laravel Debugbar\nsite_author: Barry vd. Heuvel\nsite_description: Debugbar for Laravel\nsite_url: https://larav"
  },
  {
    "path": "package.json",
    "chars": 1443,
    "preview": "{\n  \"name\": \"php-debugbar\",\n  \"version\": \"1.0.0\",\n  \"description\": \"[![Latest Stable Version](https://img.shields.io/pac"
  },
  {
    "path": "phpstan.neon",
    "chars": 694,
    "preview": "includes:\n    - vendor/phpstan/phpstan-phpunit/extension.neon\n    - vendor/phpstan/phpstan-strict-rules/rules.neon\n    -"
  },
  {
    "path": "phpunit.xml.dist",
    "chars": 1286,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<phpunit bootstrap=\"vendor/autoload.php\"\n         backupGlobals=\"false\"\n         "
  },
  {
    "path": "pint.json",
    "chars": 786,
    "preview": "{\n    \"preset\": \"per\",\n    \"rules\": {\n        \"@autoPHPMigration\": true,\n        \"@autoPHPUnitMigration:risky\": true,\n  "
  },
  {
    "path": "readme.md",
    "chars": 8646,
    "preview": "## Debugbar for Laravel\n![Unit Tests](https://github.com/fruitcake/laravel-debugbar/workflows/Unit%20Tests/badge.svg)\n[!"
  },
  {
    "path": "resources/cache/widget.js",
    "chars": 2880,
    "preview": "(function () {\n    const csscls = PhpDebugBar.utils.makecsscls('phpdebugbar-widgets-');\n\n    /**\n     * Widget for the d"
  },
  {
    "path": "resources/laravel-debugbar.css",
    "chars": 14337,
    "preview": "div.phpdebugbar,\ndiv.phpdebugbar-openhandler,\ndiv.phpdebugbar-widgets-datasets-panel {\n    --debugbar-red-vivid: #eb4432"
  },
  {
    "path": "resources/laravel-icons.css",
    "chars": 15118,
    "preview": "/* Generated file - do not edit manually */\n/* Generated from Tabler Icons */\n\n:root {\n  --debugbar-icon-archive: url('d"
  },
  {
    "path": "resources/queries/widget.js",
    "chars": 12580,
    "preview": "(function () {\n    const csscls = PhpDebugBar.utils.makecsscls('phpdebugbar-widgets-');\n\n    /**\n     * Widget for displ"
  },
  {
    "path": "src/CollectorProviders/AbstractCollectorProvider.php",
    "chars": 1454,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\CollectorProviders;\n\nuse Fruitcake\\LaravelDebugbar\\"
  },
  {
    "path": "src/CollectorProviders/AuthCollectorProvider.php",
    "chars": 578,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\CollectorProviders;\n\nuse Fruitcake\\LaravelDebugbar\\"
  },
  {
    "path": "src/CollectorProviders/CacheCollectorProvider.php",
    "chars": 1592,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\CollectorProviders;\n\nuse Fruitcake\\LaravelDebugbar\\"
  },
  {
    "path": "src/CollectorProviders/ConfigCollectorProvider.php",
    "chars": 588,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\CollectorProviders;\n\nuse Fruitcake\\LaravelDebugbar\\"
  },
  {
    "path": "src/CollectorProviders/DatabaseCollectorProvider.php",
    "chars": 5173,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\CollectorProviders;\n\nuse Fruitcake\\LaravelDebugbar\\"
  },
  {
    "path": "src/CollectorProviders/EventsCollectorCollectorProvider.php",
    "chars": 1308,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\CollectorProviders;\n\nuse Fruitcake\\LaravelDebugbar\\"
  },
  {
    "path": "src/CollectorProviders/ExceptionsCollectorProvider.php",
    "chars": 424,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\CollectorProviders;\n\nclass ExceptionsCollectorProvi"
  },
  {
    "path": "src/CollectorProviders/GateCollectorProvider.php",
    "chars": 992,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\CollectorProviders;\n\nuse Fruitcake\\LaravelDebugbar\\"
  },
  {
    "path": "src/CollectorProviders/HttpClientCollectorProvider.php",
    "chars": 1571,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\CollectorProviders;\n\nuse Fruitcake\\LaravelDebugbar\\"
  },
  {
    "path": "src/CollectorProviders/InertiaCollectorProvider.php",
    "chars": 893,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\CollectorProviders;\n\nuse Fruitcake\\LaravelDebugbar\\"
  },
  {
    "path": "src/CollectorProviders/JobsCollectorProvider.php",
    "chars": 608,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\CollectorProviders;\n\nuse DebugBar\\DataCollector\\Obj"
  },
  {
    "path": "src/CollectorProviders/LaravelCollectorProvider.php",
    "chars": 338,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\CollectorProviders;\n\nuse Fruitcake\\LaravelDebugbar\\"
  },
  {
    "path": "src/CollectorProviders/LivewireCollectorProvider.php",
    "chars": 741,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\CollectorProviders;\n\nuse Fruitcake\\LaravelDebugbar\\"
  },
  {
    "path": "src/CollectorProviders/LogCollectorProvider.php",
    "chars": 1584,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\CollectorProviders;\n\nuse DebugBar\\DataCollector\\Mes"
  },
  {
    "path": "src/CollectorProviders/LogsCollectorProvider.php",
    "chars": 429,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\CollectorProviders;\n\nuse Fruitcake\\LaravelDebugbar\\"
  },
  {
    "path": "src/CollectorProviders/MailCollectorProvider.php",
    "chars": 1503,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\CollectorProviders;\n\nuse DebugBar\\Bridge\\Symfony\\Sy"
  },
  {
    "path": "src/CollectorProviders/MemoryCollectorProvider.php",
    "chars": 696,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\CollectorProviders;\n\nuse DebugBar\\DataCollector\\Mem"
  },
  {
    "path": "src/CollectorProviders/MessagesCollectorProvider.php",
    "chars": 1169,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\CollectorProviders;\n\nclass MessagesCollectorProvide"
  },
  {
    "path": "src/CollectorProviders/ModelsCollectorProvider.php",
    "chars": 1039,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\CollectorProviders;\n\nuse DebugBar\\DataCollector\\Obj"
  },
  {
    "path": "src/CollectorProviders/PennantCollectorProvider.php",
    "chars": 553,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\CollectorProviders;\n\nuse Fruitcake\\LaravelDebugbar\\"
  },
  {
    "path": "src/CollectorProviders/PhpInfoCollectorProvider.php",
    "chars": 321,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\CollectorProviders;\n\nuse DebugBar\\DataCollector\\Php"
  },
  {
    "path": "src/CollectorProviders/RequestCollectorProvider.php",
    "chars": 1364,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\CollectorProviders;\n\nuse Fruitcake\\LaravelDebugbar\\"
  },
  {
    "path": "src/CollectorProviders/RouteCollectorProvider.php",
    "chars": 332,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\CollectorProviders;\n\nuse Fruitcake\\LaravelDebugbar\\"
  },
  {
    "path": "src/CollectorProviders/SessionCollectorProvider.php",
    "chars": 869,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\CollectorProviders;\n\nuse Fruitcake\\LaravelDebugbar\\"
  },
  {
    "path": "src/CollectorProviders/TimeCollectorProvider.php",
    "chars": 1423,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\CollectorProviders;\n\nuse DebugBar\\DataCollector\\Tim"
  },
  {
    "path": "src/CollectorProviders/ViewsCollectorProvider.php",
    "chars": 1009,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\CollectorProviders;\n\nuse Fruitcake\\LaravelDebugbar\\"
  },
  {
    "path": "src/Console/ClearCommand.php",
    "chars": 911,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Console;\n\nuse Fruitcake\\LaravelDebugbar\\LaravelDebu"
  },
  {
    "path": "src/Controllers/AssetController.php",
    "chars": 869,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Controllers;\n\nuse DebugBar\\AssetHandler;\nuse DebugB"
  },
  {
    "path": "src/Controllers/CacheController.php",
    "chars": 585,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Controllers;\n\nuse Fruitcake\\LaravelDebugbar\\Request"
  },
  {
    "path": "src/Controllers/OpenHandlerController.php",
    "chars": 2069,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Controllers;\n\nuse DebugBar\\Bridge\\Symfony\\SymfonyHt"
  },
  {
    "path": "src/Controllers/QueriesController.php",
    "chars": 2486,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Controllers;\n\nuse Fruitcake\\LaravelDebugbar\\Laravel"
  },
  {
    "path": "src/Controllers/TelescopeController.php",
    "chars": 548,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Controllers;\n\nuse Laravel\\Telescope\\Contracts\\Entri"
  },
  {
    "path": "src/DataCollector/CacheCollector.php",
    "chars": 4592,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\DataCollector;\n\nuse DebugBar\\DataCollector\\AssetPro"
  },
  {
    "path": "src/DataCollector/ConfigCollector.php",
    "chars": 318,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\DataCollector;\n\nclass ConfigCollector extends \\Debu"
  },
  {
    "path": "src/DataCollector/EventCollector.php",
    "chars": 2196,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\DataCollector;\n\nuse DebugBar\\DataCollector\\TimeData"
  },
  {
    "path": "src/DataCollector/GateCollector.php",
    "chars": 4490,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\DataCollector;\n\nuse DebugBar\\DataCollector\\Messages"
  },
  {
    "path": "src/DataCollector/HttpClientCollector.php",
    "chars": 2289,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\DataCollector;\n\nuse DebugBar\\DataCollector\\HttpColl"
  },
  {
    "path": "src/DataCollector/InertiaCollector.php",
    "chars": 2185,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\DataCollector;\n\nuse DebugBar\\DataCollector\\Template"
  },
  {
    "path": "src/DataCollector/LaravelCollector.php",
    "chars": 1764,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\DataCollector;\n\nuse DebugBar\\DataCollector\\DataColl"
  },
  {
    "path": "src/DataCollector/LivewireCollector.php",
    "chars": 2011,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\DataCollector;\n\nuse DebugBar\\DataCollector\\Template"
  },
  {
    "path": "src/DataCollector/LogsCollector.php",
    "chars": 4240,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\DataCollector;\n\nuse DebugBar\\DataCollector\\Messages"
  },
  {
    "path": "src/DataCollector/MultiAuthCollector.php",
    "chars": 4356,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\DataCollector;\n\nuse DebugBar\\DataCollector\\DataColl"
  },
  {
    "path": "src/DataCollector/PennantCollector.php",
    "chars": 908,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\DataCollector;\n\nuse DebugBar\\DataCollector\\DataColl"
  },
  {
    "path": "src/DataCollector/QueryCollector.php",
    "chars": 20821,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\DataCollector;\n\nuse DebugBar\\DataCollector\\Resettab"
  },
  {
    "path": "src/DataCollector/RequestCollector.php",
    "chars": 8433,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\DataCollector;\n\nuse DebugBar\\Bridge\\Symfony\\Symfony"
  },
  {
    "path": "src/DataCollector/RouteCollector.php",
    "chars": 5029,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\DataCollector;\n\nuse Closure;\nuse DebugBar\\DataColle"
  },
  {
    "path": "src/DataCollector/SessionCollector.php",
    "chars": 1346,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\DataCollector;\n\nuse DebugBar\\DataCollector\\DataColl"
  },
  {
    "path": "src/DataCollector/ViewCollector.php",
    "chars": 3512,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\DataCollector;\n\nuse DebugBar\\DataCollector\\Template"
  },
  {
    "path": "src/Facades/Debugbar.php",
    "chars": 1275,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Facades;\n\nuse Fruitcake\\LaravelDebugbar\\LaravelDebu"
  },
  {
    "path": "src/LaravelDebugbar.php",
    "chars": 31090,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar;\n\nuse DebugBar\\Bridge\\Symfony\\SymfonyHttpDriver;\nus"
  },
  {
    "path": "src/LaravelHttpDriver.php",
    "chars": 2146,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar;\n\nuse DebugBar\\HttpDriverInterface;\nuse Illuminate\\"
  },
  {
    "path": "src/Middleware/DebugbarEnabled.php",
    "chars": 616,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Middleware;\n\nuse Closure;\nuse Illuminate\\Http\\Reque"
  },
  {
    "path": "src/Middleware/StopRecordingTelescope.php",
    "chars": 489,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Middleware;\n\nuse Closure;\nuse Illuminate\\Http\\Reque"
  },
  {
    "path": "src/Requests/AssetRequest.php",
    "chars": 302,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Requests;\n\nuse Illuminate\\Foundation\\Http\\FormReque"
  },
  {
    "path": "src/Requests/CacheDeleteRequest.php",
    "chars": 461,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Requests;\n\nuse Illuminate\\Foundation\\Http\\FormReque"
  },
  {
    "path": "src/Requests/OpenHandlerRequest.php",
    "chars": 293,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Requests;\n\nuse Illuminate\\Foundation\\Http\\FormReque"
  },
  {
    "path": "src/Requests/QueriesExplainRequest.php",
    "chars": 568,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Requests;\n\nuse Illuminate\\Foundation\\Http\\FormReque"
  },
  {
    "path": "src/ServiceProvider.php",
    "chars": 4336,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar;\n\nuse DebugBar\\DataFormatter\\DataFormatter;\nuse Deb"
  },
  {
    "path": "src/Support/Clockwork/ClockworkCollector.php",
    "chars": 1915,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Support\\Clockwork;\n\nuse DebugBar\\DataCollector\\Data"
  },
  {
    "path": "src/Support/Clockwork/Converter.php",
    "chars": 6215,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Support\\Clockwork;\n\nclass Converter\n{\n    /**\n     "
  },
  {
    "path": "src/Support/Explain.php",
    "chars": 6114,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Support;\n\nuse DebugBar\\DataCollector\\DataCollector;"
  },
  {
    "path": "src/Support/Octane/ResetDebugbar.php",
    "chars": 1103,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Support\\Octane;\n\nuse Fruitcake\\LaravelDebugbar\\Lara"
  },
  {
    "path": "src/Twig/Extension/Debug.php",
    "chars": 613,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Twig\\Extension;\n\nuse DebugBar\\Bridge\\Twig\\DebugTwig"
  },
  {
    "path": "src/Twig/Extension/Dump.php",
    "chars": 221,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Twig\\Extension;\n\nuse DebugBar\\Bridge\\Twig\\DumpTwigE"
  },
  {
    "path": "src/Twig/Extension/Stopwatch.php",
    "chars": 1647,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Twig\\Extension;\n\nuse DebugBar\\Bridge\\Twig\\MeasureTw"
  },
  {
    "path": "src/debugbar-routes.php",
    "chars": 1545,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nuse Fruitcake\\LaravelDebugbar\\Controllers\\AssetController;\nuse Fruitcake\\LaravelDebugba"
  },
  {
    "path": "src/helpers.php",
    "chars": 830,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nif (!function_exists('debugbar')) {\n    /**\n     * Get the Debugbar instance\n     *\n   "
  },
  {
    "path": "tests/BrowserTestCase.php",
    "chars": 816,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests;\n\nuse Fruitcake\\LaravelDebugbar\\Facades\\Debug"
  },
  {
    "path": "tests/Controllers/AssetControllerTest.php",
    "chars": 880,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\Controllers;\n\nuse Fruitcake\\LaravelDebugbar\\T"
  },
  {
    "path": "tests/Controllers/CacheControllerTest.php",
    "chars": 2104,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\Controllers;\n\nuse Fruitcake\\LaravelDebugbar\\T"
  },
  {
    "path": "tests/Controllers/DebugbarEnabledMiddlewareTest.php",
    "chars": 1266,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\Controllers;\n\nuse Fruitcake\\LaravelDebugbar\\L"
  },
  {
    "path": "tests/Controllers/OpenHandlerControllerTest.php",
    "chars": 2538,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\Controllers;\n\nuse Fruitcake\\LaravelDebugbar\\T"
  },
  {
    "path": "tests/Controllers/QueriesControllerTest.php",
    "chars": 3052,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\Controllers;\n\nuse Fruitcake\\LaravelDebugbar\\T"
  },
  {
    "path": "tests/DataCollector/CacheCollectorTest.php",
    "chars": 9324,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\DataCollector;\n\nuse Fruitcake\\LaravelDebugbar"
  },
  {
    "path": "tests/DataCollector/GateCollectorTest.php",
    "chars": 2371,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\DataCollector;\n\nuse Fruitcake\\LaravelDebugbar"
  },
  {
    "path": "tests/DataCollector/HttpClientCollectorTest.php",
    "chars": 4447,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\DataCollector;\n\nuse DebugBar\\DataFormatter\\Ht"
  },
  {
    "path": "tests/DataCollector/JobsCollectorTest.php",
    "chars": 2995,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\DataCollector;\n\nuse Fruitcake\\LaravelDebugbar"
  },
  {
    "path": "tests/DataCollector/Livewire/DummyComponent.php",
    "chars": 598,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\DataCollector\\Livewire;\n\nuse Livewire\\Compone"
  },
  {
    "path": "tests/DataCollector/LivewireCollectorTest.php",
    "chars": 3645,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\DataCollector;\n\nuse Composer\\InstalledVersion"
  },
  {
    "path": "tests/DataCollector/MailCollectorTest.php",
    "chars": 4689,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\DataCollector;\n\nuse DebugBar\\Bridge\\Symfony\\S"
  },
  {
    "path": "tests/DataCollector/ModelsCollectorTest.php",
    "chars": 2737,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\DataCollector;\n\nuse Fruitcake\\LaravelDebugbar"
  },
  {
    "path": "tests/DataCollector/PennantCollectorTest.php",
    "chars": 1895,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\DataCollector;\n\nuse Fruitcake\\LaravelDebugbar"
  },
  {
    "path": "tests/DataCollector/QueryCollectorRuntimeDatabaseTest.php",
    "chars": 2729,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\DataCollector;\n\nuse Fruitcake\\LaravelDebugbar"
  },
  {
    "path": "tests/DataCollector/QueryCollectorTest.php",
    "chars": 7817,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\DataCollector;\n\nuse Fruitcake\\LaravelDebugbar"
  },
  {
    "path": "tests/DataCollector/RouteCollectorTest.php",
    "chars": 4124,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\DataCollector;\n\nuse DebugBar\\DataFormatter\\Ht"
  },
  {
    "path": "tests/DataCollector/SessionCollectorTest.php",
    "chars": 1130,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\DataCollector;\n\nuse Fruitcake\\LaravelDebugbar"
  },
  {
    "path": "tests/DataCollector/ViewCollectorTest.php",
    "chars": 945,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\DataCollector;\n\nuse Fruitcake\\LaravelDebugbar"
  },
  {
    "path": "tests/DataFormatter/QueryFormatterTest.php",
    "chars": 1155,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\DataFormatter;\n\nuse DebugBar\\DataFormatter\\Qu"
  },
  {
    "path": "tests/DebugbarBrowserTest.php",
    "chars": 10053,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests;\n\nuse Illuminate\\Routing\\Router;\nuse Laravel\\"
  },
  {
    "path": "tests/DebugbarDocsTest.php",
    "chars": 3213,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests;\n\nuse Fruitcake\\LaravelDebugbar\\LaravelDebugb"
  },
  {
    "path": "tests/DebugbarTest.php",
    "chars": 3525,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests;\n\nuse Fruitcake\\LaravelDebugbar\\LaravelDebugb"
  },
  {
    "path": "tests/ErrorHandlerTest.php",
    "chars": 2540,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests;\n\nuse Fruitcake\\LaravelDebugbar\\LaravelDebugb"
  },
  {
    "path": "tests/Jobs/OrderShipped.php",
    "chars": 416,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\Jobs;\n\nuse Illuminate\\Contracts\\Queue\\ShouldQ"
  },
  {
    "path": "tests/Jobs/SendNotification.php",
    "chars": 307,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\Jobs;\n\nuse Illuminate\\Contracts\\Queue\\ShouldQ"
  },
  {
    "path": "tests/LivewireBrowserTest.php",
    "chars": 4216,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests;\n\nuse Fruitcake\\LaravelDebugbar\\ServiceProvid"
  },
  {
    "path": "tests/Mocks/MockController.php",
    "chars": 236,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\Mocks;\n\nuse Illuminate\\Routing\\Controller;\n\nc"
  },
  {
    "path": "tests/Mocks/MockMiddleware.php",
    "chars": 218,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\Mocks;\n\nuse Closure;\n\nclass MockMiddleware\n{\n"
  },
  {
    "path": "tests/Mocks/MockViewComponent.php",
    "chars": 270,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\Mocks;\n\nuse Illuminate\\View\\InvokableComponen"
  },
  {
    "path": "tests/Models/Person.php",
    "chars": 113,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\Models;\n\nclass Person extends User {}\n"
  },
  {
    "path": "tests/Models/User.php",
    "chars": 221,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\Models;\n\nuse Illuminate\\Foundation\\Auth\\User "
  },
  {
    "path": "tests/Support/ExplainTest.php",
    "chars": 3265,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests\\Support;\n\nuse Fruitcake\\LaravelDebugbar\\Suppo"
  },
  {
    "path": "tests/TestCase.php",
    "chars": 2944,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Fruitcake\\LaravelDebugbar\\Tests;\n\nuse Fruitcake\\LaravelDebugbar\\Facades\\Debug"
  },
  {
    "path": "tests/resources/views/ajax.blade.php",
    "chars": 576,
    "preview": "<html>\n<body>\n\n<a href=\"#\" id=\"ajax-link\" onclick=\"loadAjax();return false;\">Click me</a>\n<div id=\"result\">Waiting..</di"
  },
  {
    "path": "tests/resources/views/custom-prototype.blade.php",
    "chars": 219,
    "preview": "<html>\n<body>\n\n<script>\n    Array.prototype.customRemove = function(item) {\n        const i = this.indexOf(item)\n       "
  },
  {
    "path": "tests/resources/views/dashboard.blade.php",
    "chars": 35,
    "preview": "<div>\n    <p>Basic view</p>\n</div>\n"
  },
  {
    "path": "tests/resources/views/layouts/app.blade.php",
    "chars": 80,
    "preview": "<head>\n    @livewireStyles\n</head>\n<body>\n{{ $slot }}\n\n@livewireScripts\n</body>\n"
  },
  {
    "path": "tests/resources/views/livewire-component.blade.php",
    "chars": 157,
    "preview": "<html>\n<head>\n    @livewireStyles\n</head>\n<body>\n<h1>Livewire Test</h1>\n\n<livewire:dummy-component title=\"MyComponent\" /"
  },
  {
    "path": "tests/resources/views/query.blade.php",
    "chars": 238,
    "preview": "@php\n    $collector->addQuery(new \\Illuminate\\Database\\Events\\QueryExecuted(\n        \"SELECT a FROM b WHERE c = ? AND d "
  }
]

About this extraction

This page contains the full source code of the fruitcake/laravel-debugbar GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 152 files (562.9 KB), approximately 160.9k tokens, and a symbol index with 533 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!