GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - phpstan/phpstan-deprecation-rules: PHPStan rules for detecting usage of deprecated classes, methods, properties, constants and traits.

BranchesTags
Open more actions menu

Latest commit

 

History

220 Commits
220 Commits

Folders and files

NameName
Last commit message
Last commit date
.agents
.agents
 
 
.github
.github
 
 
src
src
 
 
tests
tests
 
 
tmp
tmp
 
 
.editorconfig
.editorconfig
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
CLAUDE.md
CLAUDE.md
 
 
LICENSE
LICENSE
 
 
Makefile
Makefile
 
 
README.md
README.md
 
 
collision-detector.json
collision-detector.json
 
 
composer.json
composer.json
 
 
phpstan-baseline.neon
phpstan-baseline.neon
 
 
phpstan.neon
phpstan.neon
 
 
phpunit.xml
phpunit.xml
 
 
rules.neon
rules.neon
 
 

Repository files navigation

Rules for detecting usage of deprecated classes, methods, properties, constants and traits.

Build Latest Stable Version License

  • PHPStan

Installation

To use this extension, require it in Composer:

composer require --dev phpstan/phpstan-deprecation-rules

If you also install phpstan/extension-installer then you're all set!

Manual installation

If you don't want to use phpstan/extension-installer, include rules.neon in your project's PHPStan config:

includes:
    - vendor/phpstan/phpstan-deprecation-rules/rules.neon

Deprecating code you don't own

This extension emits deprecation warnings on code, which uses properties/functions/methods/classes which are annotated as @deprecated.

In case you don't own the code which you want to be considered deprecated, use PHPStan Stub Files to declare deprecations for vendor files like:

/** @deprecated */
class ThirdPartyClass {}

Custom deprecation markers

You can implement extensions to support even e.g. custom #[MyDeprecated] attribute. Learn more.

Custom deprecated scopes

Usage of deprecated code is not reported in code that is also deprecated:

/** @deprecated */
function doFoo(): void
{
    // not reported:
    anotherDeprecatedFunction();
}

If you have a different way of marking code that calls deprecated symbols on purpose and you don't want these calls to be reported either, you can write an extension by implementing the DeprecatedScopeResolver interface.

For example if you mark your PHPUnit tests that test deprecated code with @group legacy, you can implement the extension this way:

class GroupLegacyScopeResolver implements DeprecatedScopeResolver
{

	public function isScopeDeprecated(Scope $scope): bool
	{
		$function = $scope->getFunction();
		return $function !== null
			&& $function->getDocComment() !== null
			&& strpos($function->getDocComment(), '@group legacy') !== false;
	}

}

And register it in your configuration file:

services:
	-
		class: GroupLegacyScopeResolver
		tags:
			- phpstan.deprecations.deprecatedScopeResolver

Learn more about Scope, a core concept for implementing custom PHPStan extensions.

About

PHPStan rules for detecting usage of deprecated classes, methods, properties, constants and traits.

Topics

deprecationsphpphp7phpstanstatic-analysisstatic-code-analysis

Resources

Readme
MIT license

Security policy

Security policy
Activity
Custom properties

Stars

465 stars

Watchers

5 watching

Forks

26 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.