Skip to content

Commit

Permalink
feat: add dead code detector
Browse files Browse the repository at this point in the history
  • Loading branch information
gaelreyrol committed Feb 2, 2024
1 parent 613f1a3 commit e0ebfb9
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 0 deletions.
2 changes: 2 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@
"phpunit/phpunit": "^10.5",
"pyrech/composer-changelogs": "^2.1",
"roave/security-advisories": "dev-master",
"shipmonk/dead-code-detector": "^0.1.0",
"symfony/cache": "^6.4 || ^7.0",
"symfony/framework-bundle": "^6.4 || ^7.0",
"symfony/http-kernel": "^6.4 || ^7.0",
Expand All @@ -79,6 +80,7 @@
"symfony/phpunit-bridge": "^6.4 || ^7.0",
"symfony/twig-bundle": "^6.4 || ^7.0",
"symfony/yaml": "^6.4 || ^7.0",
"tomasvotruba/unused-public": "^0.3.5",
"twig/twig": "^3.8"
},
"suggest": {
Expand Down
10 changes: 10 additions & 0 deletions phpstan.neon
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,13 @@ parameters:
- tests/
editorUrl: 'phpstorm://open?file=%%file%%&line=%%line%%'
tmpDir: %currentWorkingDirectory%/.phpstan
unused_public:
methods: true
properties: true
constants: true

services:
-
class: FriendsOfOpenTelemetry\OpenTelemetryBundle\DeadCodeEntrypoint
tags:
- shipmonk.deadCode.entrypointProvider
26 changes: 26 additions & 0 deletions src/DeadCodeEntrypoint.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?php

namespace FriendsOfOpenTelemetry\OpenTelemetryBundle;

use FriendsOfOpenTelemetry\OpenTelemetryBundle\DependencyInjection\OpenTelemetryExtension;
use PHPStan\Reflection\ReflectionProvider;
use PHPUnit\Framework\TestCase;
use ShipMonk\PHPStan\DeadCode\Provider\EntrypointProvider;

class DeadCodeEntrypoint implements EntrypointProvider
{
public function __construct(
private ReflectionProvider $reflectionProvider
) {
}

public function isEntrypoint(\ReflectionMethod $method): bool

Check failure on line 17 in src/DeadCodeEntrypoint.php

View workflow job for this annotation

GitHub Actions / PHPStan (PHP 8.3)

Unused FriendsOfOpenTelemetry\OpenTelemetryBundle\DeadCodeEntrypoint::isEntrypoint
{
$methodName = $method->getName();
$reflection = $this->reflectionProvider->getClass($method->getDeclaringClass()->getName());

return ($reflection->is(OpenTelemetryBundle::class)
|| $reflection->is(OpenTelemetryExtension::class))
&& false === $reflection->isSubclassOf(TestCase::class);
}
}

0 comments on commit e0ebfb9

Please sign in to comment.