Add Larastan static analysis at level 5 with baseline
This commit is contained in:
parent
5614fc3915
commit
2a149e73c0
4 changed files with 927 additions and 2 deletions
|
|
@ -18,11 +18,13 @@
|
|||
},
|
||||
"require-dev": {
|
||||
"fakerphp/faker": "^1.23",
|
||||
"larastan/larastan": "^3.9",
|
||||
"laravel/pail": "^1.2.2",
|
||||
"laravel/pint": "^1.24",
|
||||
"laravel/sail": "^1.41",
|
||||
"mockery/mockery": "^1.6",
|
||||
"nunomaduro/collision": "^8.6",
|
||||
"phpstan/phpstan-mockery": "^2.0",
|
||||
"phpunit/phpunit": "^11.5.3"
|
||||
},
|
||||
"autoload": {
|
||||
|
|
|
|||
237
composer.lock
generated
237
composer.lock
generated
|
|
@ -4,7 +4,7 @@
|
|||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "3c79e040a3570288a4004f205416801a",
|
||||
"content-hash": "1fb421bd376d40ce4b1e241d0805c5ed",
|
||||
"packages": [
|
||||
{
|
||||
"name": "bacon/bacon-qr-code",
|
||||
|
|
@ -6660,6 +6660,137 @@
|
|||
},
|
||||
"time": "2025-04-30T06:54:44+00:00"
|
||||
},
|
||||
{
|
||||
"name": "iamcal/sql-parser",
|
||||
"version": "v0.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/iamcal/SQLParser.git",
|
||||
"reference": "610392f38de49a44dab08dc1659960a29874c4b8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/iamcal/SQLParser/zipball/610392f38de49a44dab08dc1659960a29874c4b8",
|
||||
"reference": "610392f38de49a44dab08dc1659960a29874c4b8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require-dev": {
|
||||
"php-coveralls/php-coveralls": "^1.0",
|
||||
"phpunit/phpunit": "^5|^6|^7|^8|^9"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"iamcal\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Cal Henderson",
|
||||
"email": "cal@iamcal.com"
|
||||
}
|
||||
],
|
||||
"description": "MySQL schema parser",
|
||||
"support": {
|
||||
"issues": "https://github.com/iamcal/SQLParser/issues",
|
||||
"source": "https://github.com/iamcal/SQLParser/tree/v0.7"
|
||||
},
|
||||
"time": "2026-01-28T22:20:33+00:00"
|
||||
},
|
||||
{
|
||||
"name": "larastan/larastan",
|
||||
"version": "v3.9.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/larastan/larastan.git",
|
||||
"reference": "64a52bcc5347c89fdf131cb59f96ebfbc8d1ad65"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/larastan/larastan/zipball/64a52bcc5347c89fdf131cb59f96ebfbc8d1ad65",
|
||||
"reference": "64a52bcc5347c89fdf131cb59f96ebfbc8d1ad65",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"iamcal/sql-parser": "^0.7.0",
|
||||
"illuminate/console": "^11.44.2 || ^12.4.1 || ^13",
|
||||
"illuminate/container": "^11.44.2 || ^12.4.1 || ^13",
|
||||
"illuminate/contracts": "^11.44.2 || ^12.4.1 || ^13",
|
||||
"illuminate/database": "^11.44.2 || ^12.4.1 || ^13",
|
||||
"illuminate/http": "^11.44.2 || ^12.4.1 || ^13",
|
||||
"illuminate/pipeline": "^11.44.2 || ^12.4.1 || ^13",
|
||||
"illuminate/support": "^11.44.2 || ^12.4.1 || ^13",
|
||||
"php": "^8.2",
|
||||
"phpstan/phpstan": "^2.1.32"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^13",
|
||||
"laravel/framework": "^11.44.2 || ^12.7.2 || ^13",
|
||||
"mockery/mockery": "^1.6.12",
|
||||
"nikic/php-parser": "^5.4",
|
||||
"orchestra/canvas": "^v9.2.2 || ^10.0.1 || ^11",
|
||||
"orchestra/testbench-core": "^9.12.0 || ^10.1 || ^11",
|
||||
"phpstan/phpstan-deprecation-rules": "^2.0.1",
|
||||
"phpunit/phpunit": "^10.5.35 || ^11.5.15 || ^12.5.8"
|
||||
},
|
||||
"suggest": {
|
||||
"orchestra/testbench": "Using Larastan for analysing a package needs Testbench",
|
||||
"phpmyadmin/sql-parser": "Install to enable Larastan's optional phpMyAdmin-based SQL parser automatically"
|
||||
},
|
||||
"type": "phpstan-extension",
|
||||
"extra": {
|
||||
"phpstan": {
|
||||
"includes": [
|
||||
"extension.neon"
|
||||
]
|
||||
},
|
||||
"branch-alias": {
|
||||
"dev-master": "3.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Larastan\\Larastan\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Can Vural",
|
||||
"email": "can9119@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Larastan - Discover bugs in your code without running it. A phpstan/phpstan extension for Laravel",
|
||||
"keywords": [
|
||||
"PHPStan",
|
||||
"code analyse",
|
||||
"code analysis",
|
||||
"larastan",
|
||||
"laravel",
|
||||
"package",
|
||||
"php",
|
||||
"static analysis"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/larastan/larastan/issues",
|
||||
"source": "https://github.com/larastan/larastan/tree/v3.9.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://github.com/canvural",
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2026-02-20T12:07:12+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/pail",
|
||||
"version": "v1.2.4",
|
||||
|
|
@ -7229,6 +7360,108 @@
|
|||
},
|
||||
"time": "2022-02-21T01:04:05+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpstan/phpstan",
|
||||
"version": "2.1.42",
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/1279e1ce86ba768f0780c9d889852b4e02ff40d0",
|
||||
"reference": "1279e1ce86ba768f0780c9d889852b4e02ff40d0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.4|^8.0"
|
||||
},
|
||||
"conflict": {
|
||||
"phpstan/phpstan-shim": "*"
|
||||
},
|
||||
"bin": [
|
||||
"phpstan",
|
||||
"phpstan.phar"
|
||||
],
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "PHPStan - PHP Static Analysis Tool",
|
||||
"keywords": [
|
||||
"dev",
|
||||
"static analysis"
|
||||
],
|
||||
"support": {
|
||||
"docs": "https://phpstan.org/user-guide/getting-started",
|
||||
"forum": "https://github.com/phpstan/phpstan/discussions",
|
||||
"issues": "https://github.com/phpstan/phpstan/issues",
|
||||
"security": "https://github.com/phpstan/phpstan/security/policy",
|
||||
"source": "https://github.com/phpstan/phpstan-src"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://github.com/ondrejmirtes",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/phpstan",
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2026-03-17T14:58:32+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpstan/phpstan-mockery",
|
||||
"version": "2.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpstan/phpstan-mockery.git",
|
||||
"reference": "89a949d0ac64298e88b7c7fa00caee565c198394"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpstan/phpstan-mockery/zipball/89a949d0ac64298e88b7c7fa00caee565c198394",
|
||||
"reference": "89a949d0ac64298e88b7c7fa00caee565c198394",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.4 || ^8.0",
|
||||
"phpstan/phpstan": "^2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"mockery/mockery": "^1.6.11",
|
||||
"php-parallel-lint/php-parallel-lint": "^1.2",
|
||||
"phpstan/phpstan-phpunit": "^2.0",
|
||||
"phpstan/phpstan-strict-rules": "^2.0",
|
||||
"phpunit/phpunit": "^9.6"
|
||||
},
|
||||
"type": "phpstan-extension",
|
||||
"extra": {
|
||||
"phpstan": {
|
||||
"includes": [
|
||||
"extension.neon"
|
||||
]
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"PHPStan\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "PHPStan Mockery extension",
|
||||
"support": {
|
||||
"issues": "https://github.com/phpstan/phpstan-mockery/issues",
|
||||
"source": "https://github.com/phpstan/phpstan-mockery/tree/2.0.0"
|
||||
},
|
||||
"time": "2024-10-14T03:18:12+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/php-code-coverage",
|
||||
"version": "11.0.12",
|
||||
|
|
@ -8844,7 +9077,7 @@
|
|||
"prefer-stable": true,
|
||||
"prefer-lowest": false,
|
||||
"platform": {
|
||||
"php": "^8.2"
|
||||
"php": "^8.3"
|
||||
},
|
||||
"platform-dev": {},
|
||||
"plugin-api-version": "2.9.0"
|
||||
|
|
|
|||
673
phpstan-baseline.neon
Normal file
673
phpstan-baseline.neon
Normal file
|
|
@ -0,0 +1,673 @@
|
|||
parameters:
|
||||
ignoreErrors:
|
||||
-
|
||||
message: '#^Method App\\Actions\\CreateBucketAction\:\:execute\(\) should return App\\Models\\Bucket but returns Illuminate\\Database\\Eloquent\\Model\.$#'
|
||||
identifier: return.type
|
||||
count: 1
|
||||
path: app/Actions/CreateBucketAction.php
|
||||
|
||||
-
|
||||
message: '#^Access to undefined constant App\\Models\\Bucket\:\:TYPE_FIXED_LIMIT\.$#'
|
||||
identifier: classConstant.notFound
|
||||
count: 2
|
||||
path: app/Http/Controllers/BucketController.php
|
||||
|
||||
-
|
||||
message: '#^Access to undefined constant App\\Models\\Bucket\:\:TYPE_PERCENTAGE\.$#'
|
||||
identifier: classConstant.notFound
|
||||
count: 2
|
||||
path: app/Http/Controllers/BucketController.php
|
||||
|
||||
-
|
||||
message: '#^Access to undefined constant App\\Models\\Bucket\:\:TYPE_UNLIMITED\.$#'
|
||||
identifier: classConstant.notFound
|
||||
count: 3
|
||||
path: app/Http/Controllers/BucketController.php
|
||||
|
||||
-
|
||||
message: '#^Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany\:\:orderedBySortOrder\(\)\.$#'
|
||||
identifier: method.notFound
|
||||
count: 1
|
||||
path: app/Http/Controllers/BucketController.php
|
||||
|
||||
-
|
||||
message: '#^Access to undefined constant App\\Models\\Stream\:\:FREQUENCY_BIWEEKLY\.$#'
|
||||
identifier: classConstant.notFound
|
||||
count: 1
|
||||
path: app/Http/Requests/StoreStreamRequest.php
|
||||
|
||||
-
|
||||
message: '#^Access to undefined constant App\\Models\\Stream\:\:FREQUENCY_MONTHLY\.$#'
|
||||
identifier: classConstant.notFound
|
||||
count: 1
|
||||
path: app/Http/Requests/StoreStreamRequest.php
|
||||
|
||||
-
|
||||
message: '#^Access to undefined constant App\\Models\\Stream\:\:FREQUENCY_ONCE\.$#'
|
||||
identifier: classConstant.notFound
|
||||
count: 1
|
||||
path: app/Http/Requests/StoreStreamRequest.php
|
||||
|
||||
-
|
||||
message: '#^Access to undefined constant App\\Models\\Stream\:\:FREQUENCY_QUARTERLY\.$#'
|
||||
identifier: classConstant.notFound
|
||||
count: 1
|
||||
path: app/Http/Requests/StoreStreamRequest.php
|
||||
|
||||
-
|
||||
message: '#^Access to undefined constant App\\Models\\Stream\:\:FREQUENCY_WEEKLY\.$#'
|
||||
identifier: classConstant.notFound
|
||||
count: 1
|
||||
path: app/Http/Requests/StoreStreamRequest.php
|
||||
|
||||
-
|
||||
message: '#^Access to undefined constant App\\Models\\Stream\:\:FREQUENCY_YEARLY\.$#'
|
||||
identifier: classConstant.notFound
|
||||
count: 1
|
||||
path: app/Http/Requests/StoreStreamRequest.php
|
||||
|
||||
-
|
||||
message: '#^Access to undefined constant App\\Models\\Stream\:\:TYPE_EXPENSE\.$#'
|
||||
identifier: classConstant.notFound
|
||||
count: 2
|
||||
path: app/Http/Requests/StoreStreamRequest.php
|
||||
|
||||
-
|
||||
message: '#^Access to undefined constant App\\Models\\Stream\:\:TYPE_INCOME\.$#'
|
||||
identifier: classConstant.notFound
|
||||
count: 1
|
||||
path: app/Http/Requests/StoreStreamRequest.php
|
||||
|
||||
-
|
||||
message: '#^Access to undefined constant App\\Models\\Stream\:\:FREQUENCY_BIWEEKLY\.$#'
|
||||
identifier: classConstant.notFound
|
||||
count: 1
|
||||
path: app/Http/Requests/UpdateStreamRequest.php
|
||||
|
||||
-
|
||||
message: '#^Access to undefined constant App\\Models\\Stream\:\:FREQUENCY_MONTHLY\.$#'
|
||||
identifier: classConstant.notFound
|
||||
count: 1
|
||||
path: app/Http/Requests/UpdateStreamRequest.php
|
||||
|
||||
-
|
||||
message: '#^Access to undefined constant App\\Models\\Stream\:\:FREQUENCY_ONCE\.$#'
|
||||
identifier: classConstant.notFound
|
||||
count: 1
|
||||
path: app/Http/Requests/UpdateStreamRequest.php
|
||||
|
||||
-
|
||||
message: '#^Access to undefined constant App\\Models\\Stream\:\:FREQUENCY_QUARTERLY\.$#'
|
||||
identifier: classConstant.notFound
|
||||
count: 1
|
||||
path: app/Http/Requests/UpdateStreamRequest.php
|
||||
|
||||
-
|
||||
message: '#^Access to undefined constant App\\Models\\Stream\:\:FREQUENCY_WEEKLY\.$#'
|
||||
identifier: classConstant.notFound
|
||||
count: 1
|
||||
path: app/Http/Requests/UpdateStreamRequest.php
|
||||
|
||||
-
|
||||
message: '#^Access to undefined constant App\\Models\\Stream\:\:FREQUENCY_YEARLY\.$#'
|
||||
identifier: classConstant.notFound
|
||||
count: 1
|
||||
path: app/Http/Requests/UpdateStreamRequest.php
|
||||
|
||||
-
|
||||
message: '#^Access to undefined constant App\\Models\\Stream\:\:TYPE_EXPENSE\.$#'
|
||||
identifier: classConstant.notFound
|
||||
count: 2
|
||||
path: app/Http/Requests/UpdateStreamRequest.php
|
||||
|
||||
-
|
||||
message: '#^Access to undefined constant App\\Models\\Stream\:\:TYPE_INCOME\.$#'
|
||||
identifier: classConstant.notFound
|
||||
count: 1
|
||||
path: app/Http/Requests/UpdateStreamRequest.php
|
||||
|
||||
-
|
||||
message: '#^Call to an undefined method Illuminate\\Database\\Eloquent\\Model\:\:buckets\(\)\.$#'
|
||||
identifier: method.notFound
|
||||
count: 1
|
||||
path: app/Http/Requests/UpdateStreamRequest.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\BucketResource\:\:\$allocation_type\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/BucketResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\BucketResource\:\:\$allocation_value\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/BucketResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\BucketResource\:\:\$id\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/BucketResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\BucketResource\:\:\$name\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/BucketResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\BucketResource\:\:\$priority\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/BucketResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\BucketResource\:\:\$sort_order\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/BucketResource.php
|
||||
|
||||
-
|
||||
message: '#^Call to an undefined method App\\Http\\Resources\\BucketResource\:\:getAllocationTypeLabel\(\)\.$#'
|
||||
identifier: method.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/BucketResource.php
|
||||
|
||||
-
|
||||
message: '#^Call to an undefined method App\\Http\\Resources\\BucketResource\:\:getAvailableSpace\(\)\.$#'
|
||||
identifier: method.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/BucketResource.php
|
||||
|
||||
-
|
||||
message: '#^Call to an undefined method App\\Http\\Resources\\BucketResource\:\:getCurrentBalance\(\)\.$#'
|
||||
identifier: method.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/BucketResource.php
|
||||
|
||||
-
|
||||
message: '#^Call to an undefined method App\\Http\\Resources\\BucketResource\:\:getFormattedAllocationValue\(\)\.$#'
|
||||
identifier: method.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/BucketResource.php
|
||||
|
||||
-
|
||||
message: '#^Call to an undefined method App\\Http\\Resources\\BucketResource\:\:hasAvailableSpace\(\)\.$#'
|
||||
identifier: method.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/BucketResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\DrawResource\:\:\$amount_currency\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/DrawResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\DrawResource\:\:\$bucket_id\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/DrawResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\DrawResource\:\:\$date\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/DrawResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\DrawResource\:\:\$description\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/DrawResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\DrawResource\:\:\$formatted_amount\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/DrawResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\DrawResource\:\:\$id\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/DrawResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\DrawResource\:\:\$is_projected\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/DrawResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\InflowResource\:\:\$amount_currency\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/InflowResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\InflowResource\:\:\$date\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/InflowResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\InflowResource\:\:\$description\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/InflowResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\InflowResource\:\:\$formatted_amount\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/InflowResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\InflowResource\:\:\$id\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/InflowResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\InflowResource\:\:\$is_projected\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/InflowResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\InflowResource\:\:\$stream_id\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/InflowResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\OutflowResource\:\:\$amount_currency\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/OutflowResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\OutflowResource\:\:\$bucket_id\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/OutflowResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\OutflowResource\:\:\$date\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/OutflowResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\OutflowResource\:\:\$description\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/OutflowResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\OutflowResource\:\:\$formatted_amount\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/OutflowResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\OutflowResource\:\:\$id\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/OutflowResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\OutflowResource\:\:\$is_projected\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/OutflowResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\OutflowResource\:\:\$stream_id\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/OutflowResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\ScenarioResource\:\:\$created_at\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/ScenarioResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\ScenarioResource\:\:\$description\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/ScenarioResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\ScenarioResource\:\:\$id\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/ScenarioResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\ScenarioResource\:\:\$name\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/ScenarioResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\ScenarioResource\:\:\$updated_at\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/ScenarioResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\StreamResource\:\:\$amount\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/StreamResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\StreamResource\:\:\$bucket\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/StreamResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\StreamResource\:\:\$bucket_id\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/StreamResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\StreamResource\:\:\$description\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/StreamResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\StreamResource\:\:\$end_date\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/StreamResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\StreamResource\:\:\$frequency\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/StreamResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\StreamResource\:\:\$id\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/StreamResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\StreamResource\:\:\$is_active\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/StreamResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\StreamResource\:\:\$name\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/StreamResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\StreamResource\:\:\$start_date\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/StreamResource.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property App\\Http\\Resources\\StreamResource\:\:\$type\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/StreamResource.php
|
||||
|
||||
-
|
||||
message: '#^Call to an undefined method App\\Http\\Resources\\StreamResource\:\:getFrequencyLabel\(\)\.$#'
|
||||
identifier: method.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/StreamResource.php
|
||||
|
||||
-
|
||||
message: '#^Call to an undefined method App\\Http\\Resources\\StreamResource\:\:getMonthlyEquivalent\(\)\.$#'
|
||||
identifier: method.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/StreamResource.php
|
||||
|
||||
-
|
||||
message: '#^Call to an undefined method App\\Http\\Resources\\StreamResource\:\:getTypeLabel\(\)\.$#'
|
||||
identifier: method.notFound
|
||||
count: 1
|
||||
path: app/Http/Resources/StreamResource.php
|
||||
|
||||
-
|
||||
message: '#^Method App\\Models\\Bucket\:\:getCurrentBalance\(\) should return int but returns float\.$#'
|
||||
identifier: return.type
|
||||
count: 1
|
||||
path: app/Models/Bucket.php
|
||||
|
||||
-
|
||||
message: '#^Property App\\Models\\Draw\:\:\$casts \(array\<string, string\>\) on left side of \?\? is not nullable\.$#'
|
||||
identifier: nullCoalesce.property
|
||||
count: 1
|
||||
path: app/Models/Draw.php
|
||||
|
||||
-
|
||||
message: '#^Property App\\Models\\Draw\:\:\$fillable \(list\<string\>\) on left side of \?\? is not nullable\.$#'
|
||||
identifier: nullCoalesce.property
|
||||
count: 1
|
||||
path: app/Models/Draw.php
|
||||
|
||||
-
|
||||
message: '#^Property App\\Models\\Inflow\:\:\$casts \(array\<string, string\>\) on left side of \?\? is not nullable\.$#'
|
||||
identifier: nullCoalesce.property
|
||||
count: 1
|
||||
path: app/Models/Inflow.php
|
||||
|
||||
-
|
||||
message: '#^Property App\\Models\\Inflow\:\:\$fillable \(list\<string\>\) on left side of \?\? is not nullable\.$#'
|
||||
identifier: nullCoalesce.property
|
||||
count: 1
|
||||
path: app/Models/Inflow.php
|
||||
|
||||
-
|
||||
message: '#^Property App\\Models\\Outflow\:\:\$casts \(array\<string, string\>\) on left side of \?\? is not nullable\.$#'
|
||||
identifier: nullCoalesce.property
|
||||
count: 1
|
||||
path: app/Models/Outflow.php
|
||||
|
||||
-
|
||||
message: '#^Property App\\Models\\Outflow\:\:\$fillable \(list\<string\>\) on left side of \?\? is not nullable\.$#'
|
||||
identifier: nullCoalesce.property
|
||||
count: 1
|
||||
path: app/Models/Outflow.php
|
||||
|
||||
-
|
||||
message: '#^Expression on left side of \?\? is not nullable\.$#'
|
||||
identifier: nullCoalesce.expr
|
||||
count: 2
|
||||
path: app/Models/Stream.php
|
||||
|
||||
-
|
||||
message: '#^Negated boolean expression is always false\.$#'
|
||||
identifier: booleanNot.alwaysFalse
|
||||
count: 1
|
||||
path: app/Models/Stream.php
|
||||
|
||||
-
|
||||
message: '#^Using nullsafe method call on non\-nullable type App\\Enums\\StreamFrequencyEnum\. Use \-\> instead\.$#'
|
||||
identifier: nullsafe.neverNull
|
||||
count: 1
|
||||
path: app/Models/Stream.php
|
||||
|
||||
-
|
||||
message: '#^Using nullsafe method call on non\-nullable type App\\Enums\\StreamTypeEnum\. Use \-\> instead\.$#'
|
||||
identifier: nullsafe.neverNull
|
||||
count: 1
|
||||
path: app/Models/Stream.php
|
||||
|
||||
-
|
||||
message: '#^Access to undefined constant App\\Models\\Stream\:\:TYPE_EXPENSE\.$#'
|
||||
identifier: classConstant.notFound
|
||||
count: 1
|
||||
path: app/Repositories/StreamRepository.php
|
||||
|
||||
-
|
||||
message: '#^Access to undefined constant App\\Models\\Stream\:\:TYPE_INCOME\.$#'
|
||||
identifier: classConstant.notFound
|
||||
count: 1
|
||||
path: app/Repositories/StreamRepository.php
|
||||
|
||||
-
|
||||
message: '#^Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany\:\:byType\(\)\.$#'
|
||||
identifier: method.notFound
|
||||
count: 2
|
||||
path: app/Repositories/StreamRepository.php
|
||||
|
||||
-
|
||||
message: '#^Method App\\Repositories\\StreamRepository\:\:create\(\) should return App\\Models\\Stream but returns Illuminate\\Database\\Eloquent\\Model\.$#'
|
||||
identifier: return.type
|
||||
count: 1
|
||||
path: app/Repositories/StreamRepository.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property Illuminate\\Database\\Eloquent\\Model\:\:\$id\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Services/Projection/PipelineAllocationService.php
|
||||
|
||||
-
|
||||
message: '#^Match arm comparison between App\\Enums\\BucketAllocationTypeEnum\:\:UNLIMITED and App\\Enums\\BucketAllocationTypeEnum\:\:UNLIMITED is always true\.$#'
|
||||
identifier: match.alwaysTrue
|
||||
count: 1
|
||||
path: app/Services/Projection/PipelineAllocationService.php
|
||||
|
||||
-
|
||||
message: '#^Parameter \#1 \$bucket of method App\\Services\\Projection\\PipelineAllocationService\:\:calculateBucketAllocation\(\) expects App\\Models\\Bucket, Illuminate\\Database\\Eloquent\\Model given\.$#'
|
||||
identifier: argument.type
|
||||
count: 1
|
||||
path: app/Services/Projection/PipelineAllocationService.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property Illuminate\\Database\\Eloquent\\Model\:\:\$amount\.$#'
|
||||
identifier: property.notFound
|
||||
count: 2
|
||||
path: app/Services/Projection/ProjectionGeneratorService.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property Illuminate\\Database\\Eloquent\\Model\:\:\$bucket_id\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Services/Projection/ProjectionGeneratorService.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property Illuminate\\Database\\Eloquent\\Model\:\:\$id\.$#'
|
||||
identifier: property.notFound
|
||||
count: 2
|
||||
path: app/Services/Projection/ProjectionGeneratorService.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property Illuminate\\Database\\Eloquent\\Model\:\:\$name\.$#'
|
||||
identifier: property.notFound
|
||||
count: 3
|
||||
path: app/Services/Projection/ProjectionGeneratorService.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property Illuminate\\Database\\Eloquent\\Model\:\:\$type\.$#'
|
||||
identifier: property.notFound
|
||||
count: 1
|
||||
path: app/Services/Projection/ProjectionGeneratorService.php
|
||||
|
||||
-
|
||||
message: '#^Parameter \#1 \$stream of method App\\Services\\Projection\\ProjectionGeneratorService\:\:streamFiresOnDate\(\) expects App\\Models\\Stream, Illuminate\\Database\\Eloquent\\Model given\.$#'
|
||||
identifier: argument.type
|
||||
count: 1
|
||||
path: app/Services/Projection/ProjectionGeneratorService.php
|
||||
|
||||
-
|
||||
message: '#^Parameter \#2 \$amount of method App\\Services\\Projection\\PipelineAllocationService\:\:allocateInflow\(\) expects int, float given\.$#'
|
||||
identifier: argument.type
|
||||
count: 1
|
||||
path: app/Services/Projection/ProjectionGeneratorService.php
|
||||
|
||||
-
|
||||
message: '#^Call to an undefined method Illuminate\\Database\\Eloquent\\Model\:\:getMonthlyEquivalent\(\)\.$#'
|
||||
identifier: method.notFound
|
||||
count: 2
|
||||
path: app/Services/Streams/StatsService.php
|
||||
|
||||
-
|
||||
message: '#^Unreachable statement \- code above always terminates\.$#'
|
||||
identifier: deadCode.unreachable
|
||||
count: 4
|
||||
path: tests/Feature/Auth/AuthenticationTest.php
|
||||
|
||||
-
|
||||
message: '#^Unreachable statement \- code above always terminates\.$#'
|
||||
identifier: deadCode.unreachable
|
||||
count: 4
|
||||
path: tests/Feature/Auth/PasswordResetTest.php
|
||||
|
||||
-
|
||||
message: '#^Unreachable statement \- code above always terminates\.$#'
|
||||
identifier: deadCode.unreachable
|
||||
count: 1
|
||||
path: tests/Feature/Auth/RegistrationTest.php
|
||||
|
||||
-
|
||||
message: '#^Unreachable statement \- code above always terminates\.$#'
|
||||
identifier: deadCode.unreachable
|
||||
count: 1
|
||||
path: tests/Feature/Auth/TwoFactorChallengeTest.php
|
||||
|
||||
-
|
||||
message: '#^Unreachable statement \- code above always terminates\.$#'
|
||||
identifier: deadCode.unreachable
|
||||
count: 2
|
||||
path: tests/Feature/Auth/VerificationNotificationTest.php
|
||||
|
||||
-
|
||||
message: '#^Unreachable statement \- code above always terminates\.$#'
|
||||
identifier: deadCode.unreachable
|
||||
count: 2
|
||||
path: tests/Feature/Settings/PasswordUpdateTest.php
|
||||
|
||||
-
|
||||
message: '#^Unreachable statement \- code above always terminates\.$#'
|
||||
identifier: deadCode.unreachable
|
||||
count: 4
|
||||
path: tests/Feature/Settings/ProfileUpdateTest.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property Illuminate\\Database\\Eloquent\\Model\:\:\$allocation_type\.$#'
|
||||
identifier: property.notFound
|
||||
count: 3
|
||||
path: tests/Unit/Actions/CreateBucketActionTest.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property Illuminate\\Database\\Eloquent\\Model\:\:\$allocation_value\.$#'
|
||||
identifier: property.notFound
|
||||
count: 3
|
||||
path: tests/Unit/Actions/CreateBucketActionTest.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property Illuminate\\Database\\Eloquent\\Model\:\:\$name\.$#'
|
||||
identifier: property.notFound
|
||||
count: 5
|
||||
path: tests/Unit/Actions/CreateBucketActionTest.php
|
||||
|
||||
-
|
||||
message: '#^Access to an undefined property Illuminate\\Database\\Eloquent\\Model\:\:\$priority\.$#'
|
||||
identifier: property.notFound
|
||||
count: 3
|
||||
path: tests/Unit/Actions/CreateBucketActionTest.php
|
||||
|
||||
-
|
||||
message: '#^Call to method PHPUnit\\Framework\\Assert\:\:assertNull\(\) with float will always evaluate to false\.$#'
|
||||
identifier: method.impossibleType
|
||||
count: 2
|
||||
path: tests/Unit/Actions/CreateBucketActionTest.php
|
||||
17
phpstan.neon
Normal file
17
phpstan.neon
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
includes:
|
||||
- vendor/larastan/larastan/extension.neon
|
||||
- vendor/phpstan/phpstan-mockery/extension.neon
|
||||
- phpstan-baseline.neon
|
||||
|
||||
parameters:
|
||||
level: 5
|
||||
paths:
|
||||
- app/
|
||||
- tests/
|
||||
|
||||
excludePaths:
|
||||
- bootstrap/*.php
|
||||
- storage/*
|
||||
|
||||
ignoreErrors:
|
||||
- identifier: method.alreadyNarrowedType
|
||||
Loading…
Reference in a new issue