Interfejs **TestInterface **i klasa **Parent **są już zaimplementowane w programie.
interface TestInterface
{
public function test1();
}
class Parent implements TestInterface
{
public function test1()
{
// coś tam wykonuje
}
}
Potrzebuję stworzyć dodatkową metodę, która będzie implementowała interfejs TestInterface.
class Child extends Parent
{
public function test2()
{
// coś tam wykonuje
}
}
Korzystam z tej metody wywołując ją poprzez wstrzyknięcie zależności.
class Handler
{
/**
* @var TestInterface
*/
private $test;
public function __construct(TestInterface $test)
{
$this->test = $test;
}
public function handlerMethod()
{
$this->test->test2();
}
}
I to działa ale PhpStorm podkreśla mi linijkę w funkcji handlerMethod() wskazując na brak metody w interfejsie TestInterface.
Method 'test2' not found in TestInterface
Inspection info: Referenced method is not found in subject class.
Czy powinienem w takim razie zmienić podejście i np. rozszerzyć interfejs TestInterface, dodając tam nową metodę?
Czy zostawić tak jak jest i nie przejmować się warningiem?
Wyżej podałem przykład w uproszczeniu, moim interfejsem jest: https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Mailer/MailerInterface.php
Natomiast klasa Parent to https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Mailer/TwigSwiftMailer.php