qossmic / deptrac

Keep your architecture clean.
https://qossmic.github.io/deptrac
MIT License
2.59k stars 136 forks source link

PHP Fatal error on v2.0 (EventHelper::__construct(): Argument #1 ($skippedViolations) must be of type array, null given) #1416

Closed alies-dev closed 2 months ago

alies-dev commented 2 months ago

I didn't find upgrading instructions from 1.X to 2.0 (I used 1.0.2) and tried to run deptrac.phar v2.0 with existing deptrac config and got this error:

PHP Fatal error:  Uncaught TypeError: Qossmic\Deptrac\Contract\Analyser\EventHelper::__construct(): Argument #1 ($skippedViolations) must be of type array, null given in phar:///~/my-project/deptrac.phar/src/Contract/Analyser/EventHelper.php:21
Stack trace:
#0 [internal function]: Qossmic\Deptrac\Contract\Analyser\EventHelper->__construct(NULL, Object(Qossmic\Deptrac\Contract\Layer\LayerProvider))
#1 phar:///~/my-project/deptrac.phar/vendor/symfony/dependency-injection/ContainerBuilder.php(954): ReflectionClass->newInstanceArgs(Array)
#2 phar:///~/my-project/deptrac.phar/vendor/symfony/dependency-injection/ContainerBuilder.php(493): DEPTRAC_202404\Symfony\Component\DependencyInjection\ContainerBuilder->createService(Object(DEPTRAC_202404\Symfony\Component\DependencyInjection\Definition), Array, false, 'Qossmic\\Deptrac...')
#3 phar:///~/my-project/deptrac.phar/vendor/symfony/dependency-injection/ContainerBuilder.php(1056): DEPTRAC_202404\Symfony\Component\DependencyInjection\ContainerBuilder->doGet('Qossmic\\Deptrac...', 1, Array, false)
...

PS: Thanks for your great job on this project 👍

gennadigennadigennadi commented 2 months ago

Could you share a repo that reproduces your problem?

Have you tried to clear the Deptrac cache?

gennadigennadigennadi commented 2 months ago

Upgrade instructions: see docs/upgrade.md

alies-dev commented 2 months ago

great, thank you!

I removed cache it works now!

Upgrade doc also helped a bit, but haven't covered all required changes. I made this type of changes: image

Now I have 2 warnings (PHP 8.2), but it works

PHP Warning:  Undefined array key "internal_tag" in phar:///~/deptrac.phar/src/Core/Analyser/EventHandler/DependsOnInternalToken.php on line 21

Warning: Undefined array key "internal_tag" in phar:///~/deptrac.phar/src/Core/Analyser/EventHandler/DependsOnInternalToken.php on line 21

thank you a lot, @gennadigennadigennadi !