deprecated-packages / reveal-src

Static analysis for your templates is here!
9 stars 3 forks source link

Require symplify/phpstan-rules as no-dev dependency #6

Closed gndk closed 2 years ago

gndk commented 2 years ago

symplify/phpstan-rules needs to be in the no-dev depedencies, because the rules extend AbstractSymplifyRule (see Example).

Without this change, running vendor/bin/phpstan with the following config causes an exception.

# file phpstan.neon
includes:
    - vendor/reveal/reveal/packages/reveal-twig/config/services.neon
    - vendor/reveal/reveal/packages/reveal-twig/config/rules.neon
    - vendor/reveal/reveal/packages/twig-phpstan-compiler/config/services.neon
    - vendor/reveal/reveal/packages/template-phpstan-compiler/config/services.neon
    - vendor/symplify/astral/config/services.neon
vagrant@dev:/srv/share$ vendor/bin/phpstan
Note: Using configuration file /srv/share/phpstan.neon.
PHP Fatal error:  Uncaught Error: Class "Symplify\PHPStanRules\Rules\AbstractSymplifyRule" not found in /srv/share/vendor/reveal/reveal/packages/reveal-twig/src/Rules/NoTwigMissingVariableRule.php:20
Stack trace:
#0 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/composer/ClassLoader.php(571): include()
#1 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/composer/ClassLoader.php(428): Composer\Autoload\includeFile()
#2 [internal function]: Composer\Autoload\ClassLoader->loadClass()
#3 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/nette/di/src/DI/Resolver.php(110): class_exists()
#4 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/nette/di/src/DI/Definitions/ServiceDefinition.php(139): _PHPStan_a355aaa14\Nette\DI\Resolver->resolveEntityType()
#5 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/nette/di/src/DI/Resolver.php(56): _PHPStan_a355aaa14\Nette\DI\Definitions\ServiceDefinition->resolveType()
#6 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/nette/di/src/DI/ContainerBuilder.php(231): _PHPStan_a355aaa14\Nette\DI\Resolver->resolveDefinition()
#7 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/nette/di/src/DI/Compiler.php(198): _PHPStan_a355aaa14\Nette\DI\ContainerBuilder->resolve()
#8 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/nette/di/src/DI/Compiler.php(159): _PHPStan_a355aaa14\Nette\DI\Compiler->processBeforeCompile()
#9 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/nette/di/src/DI/ContainerLoader.php(99): _PHPStan_a355aaa14\Nette\DI\Compiler->compile()
#10 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/nette/di/src/DI/ContainerLoader.php(66): _PHPStan_a355aaa14\Nette\DI\ContainerLoader->generate()
#11 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/nette/di/src/DI/ContainerLoader.php(34): _PHPStan_a355aaa14\Nette\DI\ContainerLoader->loadFile()
#12 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/src/DependencyInjection/Configurator.php(40): _PHPStan_a355aaa14\Nette\DI\ContainerLoader->load()
#13 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/nette/bootstrap/src/Bootstrap/Configurator.php(175): PHPStan\DependencyInjection\Configurator->loadContainer()
#14 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/src/DependencyInjection/ContainerFactory.php(81): _PHPStan_a355aaa14\Nette\Bootstrap\Configurator->createContainer()
#15 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/src/Command/CommandHelper.php(242): PHPStan\DependencyInjection\ContainerFactory->create()
#16 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/src/Command/AnalyseCommand.php(107): PHPStan\Command\CommandHelper::begin()
#17 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Command/Command.php(259): PHPStan\Command\AnalyseCommand->execute()
#18 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php(856): _PHPStan_a355aaa14\Symfony\Component\Console\Command\Command->run()
#19 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php(259): _PHPStan_a355aaa14\Symfony\Component\Console\Application->doRunCommand()
#20 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php(157): _PHPStan_a355aaa14\Symfony\Component\Console\Application->doRun()
#21 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/bin/phpstan(94): _PHPStan_a355aaa14\Symfony\Component\Console\Application->run()
#22 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/bin/phpstan(95): _PHPStan_a355aaa14\{closure}()
#23 /srv/share/vendor/phpstan/phpstan/phpstan(8): require('...')
#24 /srv/share/vendor/bin/phpstan(117): include('...')
#25 {main}
  thrown in /srv/share/vendor/reveal/reveal/packages/reveal-twig/src/Rules/NoTwigMissingVariableRule.php on line 20
Fatal error: Uncaught Error: Class "Symplify\PHPStanRules\Rules\AbstractSymplifyRule" not found in /srv/share/vendor/reveal/reveal/packages/reveal-twig/src/Rules/NoTwigMissingVariableRule.php:20
Stack trace:
#0 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/composer/ClassLoader.php(571): include()
#1 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/composer/ClassLoader.php(428): Composer\Autoload\includeFile()
#2 [internal function]: Composer\Autoload\ClassLoader->loadClass()
#3 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/nette/di/src/DI/Resolver.php(110): class_exists()
#4 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/nette/di/src/DI/Definitions/ServiceDefinition.php(139): _PHPStan_a355aaa14\Nette\DI\Resolver->resolveEntityType()
#5 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/nette/di/src/DI/Resolver.php(56): _PHPStan_a355aaa14\Nette\DI\Definitions\ServiceDefinition->resolveType()
#6 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/nette/di/src/DI/ContainerBuilder.php(231): _PHPStan_a355aaa14\Nette\DI\Resolver->resolveDefinition()
#7 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/nette/di/src/DI/Compiler.php(198): _PHPStan_a355aaa14\Nette\DI\ContainerBuilder->resolve()
#8 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/nette/di/src/DI/Compiler.php(159): _PHPStan_a355aaa14\Nette\DI\Compiler->processBeforeCompile()
#9 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/nette/di/src/DI/ContainerLoader.php(99): _PHPStan_a355aaa14\Nette\DI\Compiler->compile()
#10 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/nette/di/src/DI/ContainerLoader.php(66): _PHPStan_a355aaa14\Nette\DI\ContainerLoader->generate()
#11 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/nette/di/src/DI/ContainerLoader.php(34): _PHPStan_a355aaa14\Nette\DI\ContainerLoader->loadFile()
#12 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/src/DependencyInjection/Configurator.php(40): _PHPStan_a355aaa14\Nette\DI\ContainerLoader->load()
#13 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/nette/bootstrap/src/Bootstrap/Configurator.php(175): PHPStan\DependencyInjection\Configurator->loadContainer()
#14 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/src/DependencyInjection/ContainerFactory.php(81): _PHPStan_a355aaa14\Nette\Bootstrap\Configurator->createContainer()
#15 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/src/Command/CommandHelper.php(242): PHPStan\DependencyInjection\ContainerFactory->create()
#16 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/src/Command/AnalyseCommand.php(107): PHPStan\Command\CommandHelper::begin()
#17 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Command/Command.php(259): PHPStan\Command\AnalyseCommand->execute()
#18 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php(856): _PHPStan_a355aaa14\Symfony\Component\Console\Command\Command->run()
#19 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php(259): _PHPStan_a355aaa14\Symfony\Component\Console\Application->doRunCommand()
#20 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php(157): _PHPStan_a355aaa14\Symfony\Component\Console\Application->doRun()
#21 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/bin/phpstan(94): _PHPStan_a355aaa14\Symfony\Component\Console\Application->run()
#22 phar:///srv/share/vendor/phpstan/phpstan/phpstan.phar/bin/phpstan(95): _PHPStan_a355aaa14\{closure}()
#23 /srv/share/vendor/phpstan/phpstan/phpstan(8): require('...')
#24 /srv/share/vendor/bin/phpstan(117): include('...')
#25 {main}
  thrown in /srv/share/vendor/reveal/reveal/packages/reveal-twig/src/Rules/NoTwigMissingVariableRule.php on line 20
TomasVotruba commented 2 years ago

Thanks for suggestion. Instead of this huge dependency, we should refactor from it. See the packages/symplify-rules directory here.

gndk commented 2 years ago

I'll give it a shot.