website/errors/staticMethod.internalClass.md
<?php declare(strict_types = 1);
namespace Vendor {
/** @internal */
class InternalService {
public static function doFoo(): void {}
}
}
namespace App {
function test(): void {
\Vendor\InternalService::doFoo(); // error: Call to static method doFoo() of internal class Vendor\InternalService from outside its root namespace Vendor.
}
}
A static method is being called on a class that is marked as @internal. Internal classes are not meant to be used outside of their own package, and calling methods on them creates a dependency on an implementation detail that can change at any time without following semantic versioning.
Use the public API provided by the package instead of accessing internal classes directly:
namespace App {
function test(): void {
- \Vendor\InternalService::doFoo();
+ \Vendor\PublicService::doFoo();
}
}