Menu

← Back to methodTag.*

Error Identifier: methodTag.internalInterface

Every error reported by PHPStan has an error identifier. Here’s a list of all error identifiers. In PHPStan Pro you can see the error identifier next to each error and filter errors by their identifiers.

Code example #

<?php declare(strict_types = 1);

namespace App;

// Assume InternalInterface is marked @internal in another package

/**
 * @method \Vendor\InternalInterface createHandler()
 */
class HandlerFactory
{
	// error: PHPDoc tag @method for createHandler() references
	//        internal interface Vendor\InternalInterface.
}

Why is it reported? #

The @method PHPDoc tag declares a magic method whose signature references an interface that is marked as @internal in another package. Internal types are not part of the public API and may change or be removed without notice. Depending on them from outside the package creates fragile coupling.

How to fix it #

Replace the internal interface reference with a public API type from the package, or define a local interface that mirrors the needed contract.

 /**
- * @method \Vendor\InternalInterface createHandler()
+ * @method \Vendor\HandlerInterface createHandler()
  */
 class HandlerFactory
 {
 }

How to ignore this error #

You can use the identifier methodTag.internalInterface to ignore this error using a comment:

// @phpstan-ignore methodTag.internalInterface
codeThatProducesTheError();

You can also use only the identifier key to ignore all errors of the same type in your configuration file in the ignoreErrors parameter:

parameters:
	ignoreErrors:
		-
			identifier: methodTag.internalInterface

Rules that report this error #

  • PHPStan\Rules\InternalTag\RestrictedInternalClassNameUsageExtension [1]

Edit this page on GitHub

Theme
A
© 2026 PHPStan s.r.o.