website/errors/class.extendsInternalClass.md
<?php declare(strict_types = 1);
namespace Vendor {
/** @internal */
class InternalBase {}
}
namespace App {
class MyClass extends \Vendor\InternalBase {}
}
The class extends another class that is marked as @internal by its declaring library. Internal classes are implementation details not meant to be extended by external code. The library may change, rename, or remove internal classes without notice, which would break any code that extends them.
Extend a public base class provided by the library instead:
-class MyClass extends \Vendor\InternalBase {}
+class MyClass extends \Vendor\PublicBase {}
Or implement a public interface instead of extending the internal class:
-class MyClass extends \Vendor\InternalBase {}
+class MyClass implements \Vendor\PublicInterface {}