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 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 `` 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
================================================
', $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 = "";
$endMarker = "";
// 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(//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
================================================
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//Code", "C:\Users\\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