Larastan: Process [id] not found

Created on 4 Nov 2020  Â·  14Comments  Â·  Source: nunomaduro/larastan

Bug report

Hi, I'm using the latest version of Larastan (v0.6.9), and Laravel.
phpstan analyse works fine when my .env is configured correctly, but when I clear this file, I receive this issue:

In ProcessPool.php line 21:

  Process rdk391dbv6 not found.  

When I execute phpstan analyse --debug:

/app/Domains/****/********.php

   Doctrine\DBAL\Driver\PDO\Exception 

  SQLSTATE[HY000] [1045] Access denied for user 'forge'@'localhost' (using password: NO)

  at vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDO/Exception.php:18
     14â–• final class Exception extends PDOException
     15â–• {
     16â–•     public static function new(\PDOException $exception): self
     17â–•     {
  ➜  18▕         return new self($exception);
     19â–•     }
     20â–• }
     21â–• 

This is the code:

class MyClass
{
    protected ?User $user;

    public function __construct($payload)
    {
        if (isset($payload['user_id'])) {
            $this->user = User::find($payload['user_id']);
        }
    }
}

This is my config file:

includes:
    - ./vendor/nunomaduro/larastan/extension.neon
parameters:
    level: 0
    paths:
        - app
    checkModelProperties: true
    checkMissingIterableValueType: false 

As you can see, User::find is a method that sends a query to the DB, and since .env is empty, it won't be able to reach the DB.
I have many PHPStan DB issues regarding the DB, I just picked one example.

Any idea why it's trying to reach the DB? Is that the correct behavior? It's on the CI server, should I create a DB just for the static code analysis?

Thanks.

I've opened the same issue in PHPStan and it got closed because they think it might be Larastan's issue. https://github.com/phpstan/phpstan/issues/4053

bug

All 14 comments

Hi,

I can't reproduce this with the code example you gave. Are you sure that is the code that throws the error? If you have XDebug installed you can run phpstan with --debug --xdebug and that should give you a full stack trace of the error.

Maybe you have some code that tries to reach to db in one of your service providers?

@canvural Thanks for your reply. I appreciate it.
I turned XDebug on and executed the same command with --debug --xdebug but it doesn't provide me any stack trace, I receive the exact same response. Any idea why? I tried to put breakpoints as well, nothing happened. My XDebug configuration works fine in my machine.

I do have code in one of my service providers that reach the DB, but what's the problem with that?
Anyway, this code is inside a closure:

public function boot()
{
  $this->configureRateLimiting();
  Route::bind('agent', static function ($id) {
    return User::whereRoleIs(User::ROLE_AGENT)->whereId($id)->firstOrFail();
  });
}

EDIT:
I removed the code that reaches the DB from the service provider. The issue still occers.
I have the issue 38 times all over the project: controllers, models, jobs, mails, and custom classes.


BTW, what are the best practices? Should I run Larastan with a complete working machine? I mean with MySQL, Redis, correct env file, etc?
Larastan should work with an empty env file?

BTW, what are the best practices? Should I run Larastan with a complete working machine? I mean with MySQL, Redis, correct env file, etc?

Larastan should be ran with only Composer packages, no other dependency it necessary.
Maybe some db migrations: cp -a database/migrations/* vendor/orchestra/testbench-core/laravel/database/migrations/
if it is not an app but a package.

And of course you have to write testable code, that might be the most important.

I turned XDebug on and executed the same command with --debug --xdebug but it doesn't provide me any stack trace,

Do you have xdebug enabled? php --ri xdebug

@szepeviktor Any idea what might lead Larastan to execute a DB query?

EDIT:
I do have XDebug enabled and working.

Any idea what might lead Larastan to execute a DB query?

That we boot up Laravel 😿 it makes me sad.

I do have code in one of my service providers that reach the DB, but what's the problem with that?

There is not a problem with that, code looks ok.

EDIT:
I removed the code that reaches the DB from the service provider. The issue still occers.
I have the issue 38 times all over the project: controllers, models, jobs, mails, and custom classes.

Can you pinpoint the error to a exact file? Because I can't reproduce it with the original code snippet you gave in the issue.

BTW, what are the best practices? Should I run Larastan with a complete working machine? I mean with MySQL, Redis, correct env file, etc?
Larastan should work with an empty env file?

You should have the same .env file as your project uses. But values are not actually used. So something like .env.testing should also work.

I never see Larastan tried to make an actual database request. So that is a little weird. But without more information I don't know what is causing it currently.

I still can't pinpoint the error, but I have this log file. I'm still checking it, let me know if you find something useful:

[2020-11-04 19:20:06] production.ERROR: SQLSTATE[HY000] [1045] Access denied for user 'forge'@'localhost' (using password: NO) {"exception":"[object] (Doctrine\\DBAL\\Driver\\PDO\\Exception(code: 1045): SQLSTATE[HY000] [1045] Access denied for user 'forge'@'localhost' (using password: NO) at /my-project-path/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDO/Exception.php:18)
[stacktrace]
#0 /my-project-path/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php(42): Doctrine\\DBAL\\Driver\\PDO\\Exception::new(Object(PDOException))
#1 /my-project-path/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): Doctrine\\DBAL\\Driver\\PDOConnection->__construct('mysql:host=127....', 'forge', '', Array)
#2 /my-project-path/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(46): Illuminate\\Database\\Connectors\\Connector->createPdoConnection('mysql:host=127....', 'forge', '', Array)
#3 /my-project-path/vendor/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php(24): Illuminate\\Database\\Connectors\\Connector->createConnection('mysql:host=127....', Array, Array)
#4 /my-project-path/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(184): Illuminate\\Database\\Connectors\\MySqlConnector->connect(Array)
#5 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->Illuminate\\Database\\Connectors\\{closure}()
#6 /my-project-path/vendor/laravel/framework/src/Illuminate/Database/Connection.php(926): call_user_func(Object(Closure))
#7 /my-project-path/vendor/laravel/framework/src/Illuminate/Database/Connection.php(908): Illuminate\\Database\\Connection->getPdo()
#8 /my-project-path/vendor/laravel/framework/src/Illuminate/Database/Connection.php(894): Illuminate\\Database\\Connection->getDoctrineConnection()
#9 /my-project-path/vendor/grimzy/laravel-mysql-spatial/src/MysqlConnection.php(29): Illuminate\\Database\\Connection->getDoctrineSchemaManager()
#10 /my-project-path/vendor/grimzy/laravel-mysql-spatial/src/Connectors/ConnectionFactory.php(27): Grimzy\\LaravelMysqlSpatial\\MysqlConnection->__construct(Object(Closure), 'forge', '', Array)
#11 /my-project-path/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(76): Grimzy\\LaravelMysqlSpatial\\Connectors\\ConnectionFactory->createConnection('mysql', Object(Closure), 'forge', '', Array)
#12 /my-project-path/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(50): Illuminate\\Database\\Connectors\\ConnectionFactory->createSingleConnection(Array)
#13 /my-project-path/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php(131): Illuminate\\Database\\Connectors\\ConnectionFactory->make(Array, 'mysql')
#14 /my-project-path/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php(86): Illuminate\\Database\\DatabaseManager->makeConnection('mysql')
#15 /my-project-path/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(1492): Illuminate\\Database\\DatabaseManager->connection('mysql')
#16 /my-project-path/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(1458): Illuminate\\Database\\Eloquent\\Model::resolveConnection(NULL)
#17 /my-project-path/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(1265): Illuminate\\Database\\Eloquent\\Model->getConnection()
#18 /my-project-path/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(1182): Illuminate\\Database\\Eloquent\\Model->newBaseQueryBuilder()
#19 /my-project-path/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(1218): Illuminate\\Database\\Eloquent\\Model->newModelQuery()
#20 /my-project-path/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(1171): Illuminate\\Database\\Eloquent\\Model->newQueryWithoutScopes()
#21 /my-project-path/vendor/nunomaduro/larastan/src/Methods/Pipes/BuilderLocalMacros.php(48): Illuminate\\Database\\Eloquent\\Model->newQuery()
#22 /my-project-path/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): NunoMaduro\\Larastan\\Methods\\Pipes\\BuilderLocalMacros->handle(Object(NunoMaduro\\Larastan\\Methods\\Passable), Object(Closure))
#23 /my-project-path/vendor/nunomaduro/larastan/src/Methods/Pipes/Auths.php(58): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(NunoMaduro\\Larastan\\Methods\\Passable))
#24 /my-project-path/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): NunoMaduro\\Larastan\\Methods\\Pipes\\Auths->handle(Object(NunoMaduro\\Larastan\\Methods\\Passable), Object(Closure))
#25 /my-project-path/vendor/nunomaduro/larastan/src/Methods/Pipes/Managers.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(NunoMaduro\\Larastan\\Methods\\Passable))
#26 /my-project-path/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): NunoMaduro\\Larastan\\Methods\\Pipes\\Managers->handle(Object(NunoMaduro\\Larastan\\Methods\\Passable), Object(Closure))
#27 /my-project-path/vendor/nunomaduro/larastan/src/Methods/Pipes/Facades.php(44): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(NunoMaduro\\Larastan\\Methods\\Passable))
#28 /my-project-path/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): NunoMaduro\\Larastan\\Methods\\Pipes\\Facades->handle(Object(NunoMaduro\\Larastan\\Methods\\Passable), Object(Closure))
#29 /my-project-path/vendor/nunomaduro/larastan/src/Methods/Pipes/Contracts.php(36): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(NunoMaduro\\Larastan\\Methods\\Passable))
#30 /my-project-path/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): NunoMaduro\\Larastan\\Methods\\Pipes\\Contracts->handle(Object(NunoMaduro\\Larastan\\Methods\\Passable), Object(Closure))
#31 /my-project-path/vendor/nunomaduro/larastan/src/Methods/Pipes/Mixins.php(45): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(NunoMaduro\\Larastan\\Methods\\Passable))
#32 /my-project-path/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): NunoMaduro\\Larastan\\Methods\\Pipes\\Mixins->handle(Object(NunoMaduro\\Larastan\\Methods\\Passable), Object(Closure))
#33 /my-project-path/vendor/nunomaduro/larastan/src/Methods/Pipes/Macros.php(106): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(NunoMaduro\\Larastan\\Methods\\Passable))
#34 /my-project-path/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): NunoMaduro\\Larastan\\Methods\\Pipes\\Macros->handle(Object(NunoMaduro\\Larastan\\Methods\\Passable), Object(Closure))
#35 /my-project-path/vendor/nunomaduro/larastan/src/Methods/Pipes/SelfClass.php(25): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(NunoMaduro\\Larastan\\Methods\\Passable))
#36 /my-project-path/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): NunoMaduro\\Larastan\\Methods\\Pipes\\SelfClass->handle(Object(NunoMaduro\\Larastan\\Methods\\Passable), Object(Closure))
#37 /my-project-path/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(NunoMaduro\\Larastan\\Methods\\Passable))
#38 /my-project-path/vendor/nunomaduro/larastan/src/Methods/Passable.php(203): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#39 /my-project-path/vendor/nunomaduro/larastan/src/Methods/Pipes/Mixins.php(39): NunoMaduro\\Larastan\\Methods\\Passable->sendToPipeline('App\\\\Showdigs\\\\Ba...')
#40 /my-project-path/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): NunoMaduro\\Larastan\\Methods\\Pipes\\Mixins->handle(Object(NunoMaduro\\Larastan\\Methods\\Passable), Object(Closure))
#41 /my-project-path/vendor/nunomaduro/larastan/src/Methods/Pipes/Macros.php(106): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(NunoMaduro\\Larastan\\Methods\\Passable))
#42 /my-project-path/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): NunoMaduro\\Larastan\\Methods\\Pipes\\Macros->handle(Object(NunoMaduro\\Larastan\\Methods\\Passable), Object(Closure))
#43 /my-project-path/vendor/nunomaduro/larastan/src/Methods/Pipes/SelfClass.php(25): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(NunoMaduro\\Larastan\\Methods\\Passable))
#44 /my-project-path/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): NunoMaduro\\Larastan\\Methods\\Pipes\\SelfClass->handle(Object(NunoMaduro\\Larastan\\Methods\\Passable), Object(Closure))
#45 /my-project-path/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(NunoMaduro\\Larastan\\Methods\\Passable))
#46 /my-project-path/vendor/nunomaduro/larastan/src/Methods/Kernel.php(66): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#47 /my-project-path/vendor/nunomaduro/larastan/src/Methods/Extension.php(54): NunoMaduro\\Larastan\\Methods\\Kernel->handle(Object(PHPStan\\Broker\\Broker), Object(PHPStan\\Reflection\\ClassReflection), 'withTrashed')
#48 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Reflection/ClassReflection.php(274): NunoMaduro\\Larastan\\Methods\\Extension->hasMethod(Object(PHPStan\\Reflection\\ClassReflection), 'withTrashed')
#49 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Type/ObjectType.php(306): PHPStan\\Reflection\\ClassReflection->hasMethod('withTrashed')
#50 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Analyser/MutatingScope.php(2543): PHPStan\\Type\\ObjectType->hasMethod('withTrashed')
#51 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Analyser/MutatingScope.php(1279): PHPStan\\Analyser\\MutatingScope->methodCallReturnType(Object(PHPStan\\Type\\ObjectType), Object(PHPStan\\Type\\ObjectType), 'withTrashed', Object(PhpParser\\Node\\Expr\\StaticCall))
#52 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Type/TypeTraverser.php(47): PHPStan\\Analyser\\MutatingScope->PHPStan\\Analyser\\{closure}(Object(PHPStan\\Type\\ObjectType), Array)
#53 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Type/TypeTraverser.php(37): PHPStan\\Type\\TypeTraverser->mapInternal(Object(PHPStan\\Type\\ObjectType))
#54 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Analyser/MutatingScope.php(1281): PHPStan\\Type\\TypeTraverser::map(Object(PHPStan\\Type\\ObjectType), Object(Closure))
#55 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Analyser/MutatingScope.php(382): PHPStan\\Analyser\\MutatingScope->resolveType(Object(PhpParser\\Node\\Expr\\StaticCall))
#56 /my-project-path/vendor/nunomaduro/larastan/src/Analyser/Scope.php(35): PHPStan\\Analyser\\MutatingScope->getType(Object(PhpParser\\Node\\Expr\\StaticCall))
#57 /my-project-path/vendor/nunomaduro/larastan/src/Rules/NoUnnecessaryCollectionCallRule.php(338): NunoMaduro\\Larastan\\Analyser\\Scope->getType(Object(PhpParser\\Node\\Expr\\StaticCall))
#58 /my-project-path/vendor/nunomaduro/larastan/src/Rules/NoUnnecessaryCollectionCallRule.php(155): NunoMaduro\\Larastan\\Rules\\NoUnnecessaryCollectionCallRule->isCalledOnCollection(Object(PhpParser\\Node\\Expr\\StaticCall), Object(NunoMaduro\\Larastan\\Analyser\\Scope))
#59 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Analyser/FileAnalyser.php(68): NunoMaduro\\Larastan\\Rules\\NoUnnecessaryCollectionCallRule->processNode(Object(PhpParser\\Node\\Expr\\MethodCall), Object(NunoMaduro\\Larastan\\Analyser\\Scope))
#60 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Node/ClassStatementsGatherer.php(90): PHPStan\\Analyser\\FileAnalyser->PHPStan\\Analyser\\{closure}(Object(PhpParser\\Node\\Expr\\MethodCall), Object(NunoMaduro\\Larastan\\Analyser\\Scope))
#61 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(342): PHPStan\\Node\\ClassStatementsGatherer->__invoke(Object(PhpParser\\Node\\Expr\\MethodCall), Object(NunoMaduro\\Larastan\\Analyser\\Scope))
#62 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(1576): PHPStan\\Analyser\\NodeScopeResolver::PHPStan\\Analyser\\{closure}(Object(PhpParser\\Node\\Expr\\MethodCall), Object(NunoMaduro\\Larastan\\Analyser\\Scope))
#63 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(1056): PHPStan\\Analyser\\NodeScopeResolver->callNodeCallbackWithExpression(Object(Closure), Object(PhpParser\\Node\\Expr\\MethodCall), Object(NunoMaduro\\Larastan\\Analyser\\Scope), Object(PHPStan\\Analyser\\ExpressionContext))
#64 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(1537): PHPStan\\Analyser\\NodeScopeResolver->processExprNode(Object(PhpParser\\Node\\Expr\\MethodCall), Object(NunoMaduro\\Larastan\\Analyser\\Scope), Object(Closure), Object(PHPStan\\Analyser\\ExpressionContext))
#65 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(1071): PHPStan\\Analyser\\NodeScopeResolver->processExprNode(Object(PhpParser\\Node\\Expr\\Ternary), Object(NunoMaduro\\Larastan\\Analyser\\Scope), Object(Closure), Object(PHPStan\\Analyser\\ExpressionContext))
#66 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(1879): PHPStan\\Analyser\\NodeScopeResolver->PHPStan\\Analyser\\{closure}(Object(NunoMaduro\\Larastan\\Analyser\\Scope))
#67 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(1078): PHPStan\\Analyser\\NodeScopeResolver->processAssignVar(Object(NunoMaduro\\Larastan\\Analyser\\Scope), Object(PhpParser\\Node\\Expr\\PropertyFetch), Object(PhpParser\\Node\\Expr\\Ternary), Object(Closure), Object(PHPStan\\Analyser\\ExpressionContext), Object(Closure), true)
#68 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(377): PHPStan\\Analyser\\NodeScopeResolver->processExprNode(Object(PhpParser\\Node\\Expr\\Assign), Object(NunoMaduro\\Larastan\\Analyser\\Scope), Object(Closure), Object(PHPStan\\Analyser\\ExpressionContext))
#69 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(229): PHPStan\\Analyser\\NodeScopeResolver->processStmtNode(Object(PhpParser\\Node\\Stmt\\Expression), Object(NunoMaduro\\Larastan\\Analyser\\Scope), Object(Closure))
#70 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(347): PHPStan\\Analyser\\NodeScopeResolver->processStmtNodes(Object(PhpParser\\Node\\Stmt\\ClassMethod), Array, Object(NunoMaduro\\Larastan\\Analyser\\Scope), Object(Closure))
#71 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(229): PHPStan\\Analyser\\NodeScopeResolver->processStmtNode(Object(PhpParser\\Node\\Stmt\\ClassMethod), Object(NunoMaduro\\Larastan\\Analyser\\Scope), Object(PHPStan\\Node\\ClassStatementsGatherer))
#72 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(419): PHPStan\\Analyser\\NodeScopeResolver->processStmtNodes(Object(PhpParser\\Node\\Stmt\\Class_), Array, Object(NunoMaduro\\Larastan\\Analyser\\Scope), Object(PHPStan\\Node\\ClassStatementsGatherer))
#73 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(229): PHPStan\\Analyser\\NodeScopeResolver->processStmtNode(Object(PhpParser\\Node\\Stmt\\Class_), Object(NunoMaduro\\Larastan\\Analyser\\Scope), Object(Closure))
#74 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(388): PHPStan\\Analyser\\NodeScopeResolver->processStmtNodes(Object(PhpParser\\Node\\Stmt\\Namespace_), Array, Object(NunoMaduro\\Larastan\\Analyser\\Scope), Object(Closure))
#75 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(198): PHPStan\\Analyser\\NodeScopeResolver->processStmtNode(Object(PhpParser\\Node\\Stmt\\Namespace_), Object(NunoMaduro\\Larastan\\Analyser\\Scope), Object(Closure))
#76 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Analyser/FileAnalyser.php(148): PHPStan\\Analyser\\NodeScopeResolver->processNodes(Array, Object(NunoMaduro\\Larastan\\Analyser\\Scope), Object(Closure))
#77 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Analyser/Analyser.php(52): PHPStan\\Analyser\\FileAnalyser->analyseFile('/Users/matanyad...', Array, Object(PHPStan\\Rules\\Registry), NULL)
#78 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Command/AnalyserRunner.php(57): PHPStan\\Analyser\\Analyser->analyse(Array, Object(Closure), NULL, true, Array)
#79 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Command/AnalyseApplication.php(134): PHPStan\\Command\\AnalyserRunner->runAnalyser(Array, Array, Object(Closure), NULL, true, true, '/Users/matanyad...', NULL, NULL, Object(_HumbugBox5f65e914a905\\Symfony\\Component\\Console\\Input\\ArgvInput))
#80 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Command/AnalyseApplication.php(73): PHPStan\\Command\\AnalyseApplication->runAnalyser(Array, Array, true, '/Users/matanyad...', Object(PHPStan\\Command\\Symfony\\SymfonyOutput), Object(PHPStan\\Command\\Symfony\\SymfonyOutput), Object(_HumbugBox5f65e914a905\\Symfony\\Component\\Console\\Input\\ArgvInput))
#81 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/src/Command/AnalyseCommand.php(148): PHPStan\\Command\\AnalyseApplication->analyse(Array, false, Object(PHPStan\\Command\\Symfony\\SymfonyOutput), Object(PHPStan\\Command\\Symfony\\SymfonyOutput), false, true, '/Users/matanyad...', Object(_HumbugBox5f65e914a905\\Symfony\\Component\\Console\\Input\\ArgvInput))
#82 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/vendor/symfony/console/Command/Command.php(228): PHPStan\\Command\\AnalyseCommand->execute(Object(_HumbugBox5f65e914a905\\Symfony\\Component\\Console\\Input\\ArgvInput), Object(_HumbugBox5f65e914a905\\Symfony\\Component\\Console\\Output\\ConsoleOutput))
#83 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/vendor/symfony/console/Application.php(856): _HumbugBox5f65e914a905\\Symfony\\Component\\Console\\Command\\Command->run(Object(_HumbugBox5f65e914a905\\Symfony\\Component\\Console\\Input\\ArgvInput), Object(_HumbugBox5f65e914a905\\Symfony\\Component\\Console\\Output\\ConsoleOutput))
#84 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/vendor/symfony/console/Application.php(237): _HumbugBox5f65e914a905\\Symfony\\Component\\Console\\Application->doRunCommand(Object(PHPStan\\Command\\AnalyseCommand), Object(_HumbugBox5f65e914a905\\Symfony\\Component\\Console\\Input\\ArgvInput), Object(_HumbugBox5f65e914a905\\Symfony\\Component\\Console\\Output\\ConsoleOutput))
#85 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/vendor/symfony/console/Application.php(138): _HumbugBox5f65e914a905\\Symfony\\Component\\Console\\Application->doRun(Object(_HumbugBox5f65e914a905\\Symfony\\Component\\Console\\Input\\ArgvInput), Object(_HumbugBox5f65e914a905\\Symfony\\Component\\Console\\Output\\ConsoleOutput))
#86 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/bin/phpstan(76): _HumbugBox5f65e914a905\\Symfony\\Component\\Console\\Application->run()
#87 phar:///my-project-path/vendor/phpstan/phpstan/phpstan/bin/phpstan(77): _HumbugBox5f65e914a905\\{closure}()
#88 /my-project-path/vendor/phpstan/phpstan/phpstan(6): require('phar:///Users/m...')
#89 {main}

@szepeviktor @canvural The issue got fixed when I delete use Illuminate\Database\Eloquent\SoftDeletes from the models.

For some reason, Laravel's soft delete trait leads to this issue.
I can't reproduce it with a new Laravel project.
It means, the soft delete itself doesn't break anything, but maybe, combined with some other package I use, it breaks it all.

I saw https://github.com/grimzy/laravel-mysql-spatial pakcage in the error log, and it seems they are overriding the connection factory, and I think that causes the issue.

But it'd better if we can find another solution here, so we don't need to call newQuery which seems to cause all this trouble.

@canvural There's something I could help with? Do you have an approach on how to fix this issue?

Meantime, do you have a workaround suggestion in order to use this package without a DB connection?

That would be something ugly.
e.g. if (class_exists(\NunoMaduro\Larastan\ApplicationResolver::class, false)) { ...database call...

@MatanYadaev I think I have all the information I need to fix this. The issue is I don't have much free time these days. So I'll do it once I've got some time.

(If you want to motivate me you can consider sponsoring me :blush: )

Was this page helpful?
0 / 5 - 0 ratings