Deps: add LaraDumps and test:arch

- Added `laradumps/laradumps` for enhanced debugging.
- Introduced `test:arch` command in Composer for architecture testing.
- Updated `captainhook.json` with `composer test:arch` action.
- Improved `.gitignore` to exclude `laradumps.yaml`.
This commit is contained in:
= 2026-05-20 13:08:54 +00:00
parent 07d1b235cc
commit 1e5c084855
5 changed files with 254 additions and 40 deletions

1
.gitignore vendored
View File

@ -23,3 +23,4 @@ yarn-error.log
/.vscode /.vscode
/.zed /.zed
/storage/framework/views/* /storage/framework/views/*
laradumps.yaml

View File

@ -19,6 +19,9 @@
}, },
{ {
"action": "composer check" "action": "composer check"
},
{
"action": "composer test:arch"
} }
] ]
} }

View File

@ -25,6 +25,7 @@
"require-dev": { "require-dev": {
"captainhook/captainhook": "^5.29", "captainhook/captainhook": "^5.29",
"fakerphp/faker": "^1.24", "fakerphp/faker": "^1.24",
"laradumps/laradumps": "^5.3",
"larastan/larastan": "^3.9", "larastan/larastan": "^3.9",
"laravel/boost": "^2.2", "laravel/boost": "^2.2",
"laravel/pail": "^1.2.5", "laravel/pail": "^1.2.5",
@ -75,6 +76,7 @@
"Composer\\Config::disableProcessTimeout", "Composer\\Config::disableProcessTimeout",
"@test" "@test"
], ],
"test:arch": "pest tests/ArchTest.php",
"test": [ "test": [
"@php artisan config:clear --ansi", "@php artisan config:clear --ansi",
"@lint:check", "@lint:check",

286
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "52d5c85207e2a66426da8402a08d2ebb", "content-hash": "f3873c08b246822a39d28768c6205e67",
"packages": [ "packages": [
{ {
"name": "bacon/bacon-qr-code", "name": "bacon/bacon-qr-code",
@ -1087,16 +1087,16 @@
}, },
{ {
"name": "guzzlehttp/guzzle", "name": "guzzlehttp/guzzle",
"version": "7.10.0", "version": "7.10.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/guzzle.git", "url": "https://github.com/guzzle/guzzle.git",
"reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4" "reference": "b777df1776c667e287664dda75b0298ad8ae3a14"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/b51ac707cfa420b7bfd4e4d5e510ba8008e822b4", "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b777df1776c667e287664dda75b0298ad8ae3a14",
"reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4", "reference": "b777df1776c667e287664dda75b0298ad8ae3a14",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1114,8 +1114,9 @@
"bamarni/composer-bin-plugin": "^1.8.2", "bamarni/composer-bin-plugin": "^1.8.2",
"ext-curl": "*", "ext-curl": "*",
"guzzle/client-integration-tests": "3.0.2", "guzzle/client-integration-tests": "3.0.2",
"guzzlehttp/test-server": "^0.3.2",
"php-http/message-factory": "^1.1", "php-http/message-factory": "^1.1",
"phpunit/phpunit": "^8.5.39 || ^9.6.20", "phpunit/phpunit": "^8.5.52 || ^9.6.34",
"psr/log": "^1.1 || ^2.0 || ^3.0" "psr/log": "^1.1 || ^2.0 || ^3.0"
}, },
"suggest": { "suggest": {
@ -1193,7 +1194,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/guzzle/guzzle/issues", "issues": "https://github.com/guzzle/guzzle/issues",
"source": "https://github.com/guzzle/guzzle/tree/7.10.0" "source": "https://github.com/guzzle/guzzle/tree/7.10.1"
}, },
"funding": [ "funding": [
{ {
@ -1209,20 +1210,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-08-23T22:36:01+00:00" "time": "2026-05-19T18:01:31+00:00"
}, },
{ {
"name": "guzzlehttp/promises", "name": "guzzlehttp/promises",
"version": "2.3.0", "version": "2.3.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/promises.git", "url": "https://github.com/guzzle/promises.git",
"reference": "481557b130ef3790cf82b713667b43030dc9c957" "reference": "d2d8dfae4757f384d630fdffc2d8d6618d8f4c5e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/promises/zipball/481557b130ef3790cf82b713667b43030dc9c957", "url": "https://api.github.com/repos/guzzle/promises/zipball/d2d8dfae4757f384d630fdffc2d8d6618d8f4c5e",
"reference": "481557b130ef3790cf82b713667b43030dc9c957", "reference": "d2d8dfae4757f384d630fdffc2d8d6618d8f4c5e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1230,7 +1231,7 @@
}, },
"require-dev": { "require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2", "bamarni/composer-bin-plugin": "^1.8.2",
"phpunit/phpunit": "^8.5.44 || ^9.6.25" "phpunit/phpunit": "^8.5.52 || ^9.6.34"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@ -1276,7 +1277,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/guzzle/promises/issues", "issues": "https://github.com/guzzle/promises/issues",
"source": "https://github.com/guzzle/promises/tree/2.3.0" "source": "https://github.com/guzzle/promises/tree/2.3.1"
}, },
"funding": [ "funding": [
{ {
@ -1292,20 +1293,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-08-22T14:34:08+00:00" "time": "2026-05-19T18:30:48+00:00"
}, },
{ {
"name": "guzzlehttp/psr7", "name": "guzzlehttp/psr7",
"version": "2.9.0", "version": "2.10.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/psr7.git", "url": "https://github.com/guzzle/psr7.git",
"reference": "7d0ed42f28e42d61352a7a79de682e5e67fec884" "reference": "d5ddaf5743c42a61cb6100f83dc9d5a2bafe75ca"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/7d0ed42f28e42d61352a7a79de682e5e67fec884", "url": "https://api.github.com/repos/guzzle/psr7/zipball/d5ddaf5743c42a61cb6100f83dc9d5a2bafe75ca",
"reference": "7d0ed42f28e42d61352a7a79de682e5e67fec884", "reference": "d5ddaf5743c42a61cb6100f83dc9d5a2bafe75ca",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1320,9 +1321,9 @@
}, },
"require-dev": { "require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2", "bamarni/composer-bin-plugin": "^1.8.2",
"http-interop/http-factory-tests": "0.9.0", "http-interop/http-factory-tests": "1.1.0",
"jshttp/mime-db": "1.54.0.1", "jshttp/mime-db": "1.54.0.1",
"phpunit/phpunit": "^8.5.44 || ^9.6.25" "phpunit/phpunit": "^8.5.52 || ^9.6.34"
}, },
"suggest": { "suggest": {
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
@ -1393,7 +1394,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/guzzle/psr7/issues", "issues": "https://github.com/guzzle/psr7/issues",
"source": "https://github.com/guzzle/psr7/tree/2.9.0" "source": "https://github.com/guzzle/psr7/tree/2.10.0"
}, },
"funding": [ "funding": [
{ {
@ -1409,7 +1410,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-03-10T16:41:02+00:00" "time": "2026-05-19T17:32:11+00:00"
}, },
{ {
"name": "guzzlehttp/uri-template", "name": "guzzlehttp/uri-template",
@ -1800,16 +1801,16 @@
}, },
{ {
"name": "laravel/framework", "name": "laravel/framework",
"version": "v13.9.0", "version": "v13.11.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/framework.git", "url": "https://github.com/laravel/framework.git",
"reference": "a0c6ad03b380287015287d8d5a0fa2459e2332fd" "reference": "6b70133ea3552afc37307ffb85b9efa48dc187d1"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/a0c6ad03b380287015287d8d5a0fa2459e2332fd", "url": "https://api.github.com/repos/laravel/framework/zipball/6b70133ea3552afc37307ffb85b9efa48dc187d1",
"reference": "a0c6ad03b380287015287d8d5a0fa2459e2332fd", "reference": "6b70133ea3552afc37307ffb85b9efa48dc187d1",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2020,7 +2021,7 @@
"issues": "https://github.com/laravel/framework/issues", "issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework" "source": "https://github.com/laravel/framework"
}, },
"time": "2026-05-13T15:38:40+00:00" "time": "2026-05-19T20:24:39+00:00"
}, },
{ {
"name": "laravel/passkeys", "name": "laravel/passkeys",
@ -2092,16 +2093,16 @@
}, },
{ {
"name": "laravel/prompts", "name": "laravel/prompts",
"version": "v0.3.17", "version": "v0.3.18",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/prompts.git", "url": "https://github.com/laravel/prompts.git",
"reference": "6a82ac19a28b916ae0885828795dbd4c59d9a818" "reference": "a19af51bb144bf87f08397921fa619f85c7d4e72"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/prompts/zipball/6a82ac19a28b916ae0885828795dbd4c59d9a818", "url": "https://api.github.com/repos/laravel/prompts/zipball/a19af51bb144bf87f08397921fa619f85c7d4e72",
"reference": "6a82ac19a28b916ae0885828795dbd4c59d9a818", "reference": "a19af51bb144bf87f08397921fa619f85c7d4e72",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2145,9 +2146,9 @@
"description": "Add beautiful and user-friendly forms to your command-line applications.", "description": "Add beautiful and user-friendly forms to your command-line applications.",
"support": { "support": {
"issues": "https://github.com/laravel/prompts/issues", "issues": "https://github.com/laravel/prompts/issues",
"source": "https://github.com/laravel/prompts/tree/v0.3.17" "source": "https://github.com/laravel/prompts/tree/v0.3.18"
}, },
"time": "2026-04-20T16:07:33+00:00" "time": "2026-05-19T00:47:18+00:00"
}, },
{ {
"name": "laravel/serializable-closure", "name": "laravel/serializable-closure",
@ -2470,16 +2471,16 @@
}, },
{ {
"name": "league/flysystem", "name": "league/flysystem",
"version": "3.33.0", "version": "3.34.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thephpleague/flysystem.git", "url": "https://github.com/thephpleague/flysystem.git",
"reference": "570b8871e0ce693764434b29154c54b434905350" "reference": "2daaac3b0d4c83ea7ed5d8586e786f5d00f3540e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/570b8871e0ce693764434b29154c54b434905350", "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/2daaac3b0d4c83ea7ed5d8586e786f5d00f3540e",
"reference": "570b8871e0ce693764434b29154c54b434905350", "reference": "2daaac3b0d4c83ea7ed5d8586e786f5d00f3540e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2547,9 +2548,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/thephpleague/flysystem/issues", "issues": "https://github.com/thephpleague/flysystem/issues",
"source": "https://github.com/thephpleague/flysystem/tree/3.33.0" "source": "https://github.com/thephpleague/flysystem/tree/3.34.0"
}, },
"time": "2026-03-25T07:59:30+00:00" "time": "2026-05-14T10:28:08+00:00"
}, },
{ {
"name": "league/flysystem-local", "name": "league/flysystem-local",
@ -9388,6 +9389,147 @@
}, },
"time": "2025-03-19T14:43:43+00:00" "time": "2025-03-19T14:43:43+00:00"
}, },
{
"name": "laradumps/laradumps",
"version": "v5.3.0",
"source": {
"type": "git",
"url": "https://github.com/laradumps/laradumps.git",
"reference": "22ac20bb88e960eb1f68535958adefbc963074ce"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laradumps/laradumps/zipball/22ac20bb88e960eb1f68535958adefbc963074ce",
"reference": "22ac20bb88e960eb1f68535958adefbc963074ce",
"shasum": ""
},
"require": {
"illuminate/mail": "^11.0 || ^12.0 || ^13.0",
"illuminate/support": "^11.0 || ^12.0 || ^13.0",
"laradumps/laradumps-core": "^4.0.3",
"php": "^8.2"
},
"require-dev": {
"larastan/larastan": "^3.8",
"laravel/framework": "^11.0 || ^12.0 || ^13.0",
"laravel/pint": "^1.26.0",
"mockery/mockery": "^1.6.12",
"orchestra/testbench-core": "^9.4 || ^10.0 || ^11.0",
"pestphp/pest": "^3.7.0 || ^4.0.0",
"symfony/var-dumper": "^7.1.3|^8.0"
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"LaraDumps\\LaraDumps\\LaraDumpsServiceProvider"
]
}
},
"autoload": {
"files": [
"src/functions.php"
],
"psr-4": {
"LaraDumps\\LaraDumps\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Luan Freitas",
"email": "luanfreitas10@protonmail.com",
"role": "Developer"
}
],
"description": "LaraDumps is a friendly app designed to boost your Laravel PHP coding and debugging experience.",
"homepage": "https://github.com/laradumps/laradumps",
"support": {
"issues": "https://github.com/laradumps/laradumps/issues",
"source": "https://github.com/laradumps/laradumps/tree/v5.3.0"
},
"funding": [
{
"url": "https://github.com/luanfreitasdev",
"type": "github"
}
],
"time": "2026-03-25T12:27:54+00:00"
},
{
"name": "laradumps/laradumps-core",
"version": "v4.0.6",
"source": {
"type": "git",
"url": "https://github.com/laradumps/laradumps-core.git",
"reference": "41acc4a0dba81232287bed4d98de112b1c466244"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laradumps/laradumps-core/zipball/41acc4a0dba81232287bed4d98de112b1c466244",
"reference": "41acc4a0dba81232287bed4d98de112b1c466244",
"shasum": ""
},
"require": {
"ext-curl": "*",
"php": "^8.2",
"ramsey/uuid": "^4.9.1",
"spatie/backtrace": "^1.5",
"symfony/console": "^6.4|^7.0|^8.0",
"symfony/finder": "^6.4|^7.0|^8.0",
"symfony/process": "^6.4|^7.0|^8.0",
"symfony/var-dumper": "^6.4|^7.0|^8.0",
"symfony/yaml": "^6.4|^7.0|^8.0"
},
"require-dev": {
"illuminate/support": "^12",
"laravel/pint": "^1.26.0",
"pestphp/pest": "^3.0|^4.0",
"phpstan/phpstan": "^1.10.50"
},
"suggest": {
"nunomaduro/termwind": "For a better terminal experience"
},
"bin": [
"bin/laradumps"
],
"type": "library",
"autoload": {
"files": [
"src/functions.php"
],
"psr-4": {
"LaraDumps\\LaraDumpsCore\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Luan Freitas",
"email": "luanfreitas10@protonmail.com",
"role": "Developer"
}
],
"description": "LaraDumps is a friendly app designed to boost your Laravel / PHP coding and debugging experience.",
"homepage": "https://github.com/laradumps/laradumps-core",
"support": {
"issues": "https://github.com/laradumps/laradumps-core/issues",
"source": "https://github.com/laradumps/laradumps-core/tree/v4.0.6"
},
"funding": [
{
"url": "https://github.com/luanfreitasdev",
"type": "github"
}
],
"time": "2026-03-19T15:05:22+00:00"
},
{ {
"name": "larastan/larastan", "name": "larastan/larastan",
"version": "v3.9.6", "version": "v3.9.6",
@ -12418,6 +12560,70 @@
], ],
"time": "2026-01-26T20:59:18+00:00" "time": "2026-01-26T20:59:18+00:00"
}, },
{
"name": "spatie/backtrace",
"version": "1.8.2",
"source": {
"type": "git",
"url": "https://github.com/spatie/backtrace.git",
"reference": "8ffe78be5ed355b5009e3dd989d183433e9a5adc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/spatie/backtrace/zipball/8ffe78be5ed355b5009e3dd989d183433e9a5adc",
"reference": "8ffe78be5ed355b5009e3dd989d183433e9a5adc",
"shasum": ""
},
"require": {
"php": "^7.3 || ^8.0"
},
"require-dev": {
"ext-json": "*",
"laravel/serializable-closure": "^1.3 || ^2.0",
"phpunit/phpunit": "^9.3 || ^11.4.3",
"spatie/phpunit-snapshot-assertions": "^4.2 || ^5.1.6",
"symfony/var-dumper": "^5.1|^6.0|^7.0|^8.0"
},
"type": "library",
"autoload": {
"psr-4": {
"Spatie\\Backtrace\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Freek Van de Herten",
"email": "freek@spatie.be",
"homepage": "https://spatie.be",
"role": "Developer"
}
],
"description": "A better backtrace",
"homepage": "https://github.com/spatie/backtrace",
"keywords": [
"Backtrace",
"spatie"
],
"support": {
"issues": "https://github.com/spatie/backtrace/issues",
"source": "https://github.com/spatie/backtrace/tree/1.8.2"
},
"funding": [
{
"url": "https://github.com/sponsors/spatie",
"type": "github"
},
{
"url": "https://spatie.be/open-source/support-us",
"type": "other"
}
],
"time": "2026-03-11T13:48:28+00:00"
},
{ {
"name": "staabm/side-effects-detector", "name": "staabm/side-effects-detector",
"version": "1.0.5", "version": "1.0.5",

View File

@ -1,4 +1,6 @@
<?php <?php
declare(strict_types=1);
arch('it does not use debug functions') arch('it does not use debug functions')
->expect(['ds', 'dsd', 'dsq', 'dd', 'ddd', 'dump', 'ray', 'die', 'var_dump', 'sleep', 'exit']) ->expect(['ds', 'dsd', 'dsq', 'dd', 'ddd', 'dump', 'ray', 'die', 'var_dump', 'sleep', 'exit'])
->not->toBeUsed(); ->not->toBeUsed();