У меня есть класс с именем PdfRenderer
class PdfRenderer
{
function __construct(Fpdi $pdf)
{
$this->pdf = $pdf;
}
}
У меня тоже есть класс PdfProposalRenderer
class PdfProposalRenderer extends PdfRenderer
{
function __construct(Fpdi $pdf, array $filename)
{
parent::__construct($pdf);
}
}
Мне нужно внести изменения в класс PdfRenderer
, добавив новый параметр в конструктор:
class PdfRenderer
{
function __construct(Fpdi $pdf, StreamFactory $streamFactory)
{
$this->pdf = $pdf;
$this->streamFactory = $streamFactory;
}
}
Обычно после этого изменения я ищу в кодовой базе любые вхождения "new PdfRenderer", и если они есть, я обновляю параметры инстанции в этих местах. Это все, что нужно сделать, верно? Есть ли еще что-нибудь? Обычно нет? Вот где я обычно останавливаюсь.
Ну, вот в чем проблема ... У меня много уроков, я не всегда это помню ...
В моем случае PdfProposalRenderer
расширяет PdfRenderer
", поэтому мне нужно перейти к PdfProposalRenderer
и методу construct
, чтобы обновить строку parent::__construct($pdf)
в соответствии с изменениями, которые я внес в параметры PdfRenderer
Кроме того, существуют ли другие классы, расширяющие PdfRenderer
? Может быть, я должен проверить, теперь, когда я знаю об этом.
Но обычно я не запускаю такие проверки, поэтому изменения такого типа пропадают до тех пор, пока PdfProposalRenderer
не прервется в реальном коде.
Вопрос
Есть ли способ изменить код в конструкторе PdfProposalRenderer
или в других местах, где, когда я обновляю параметры конструктора в PdfRenderer
, более болезненно очевидно, что мне нужно изменить его и в этих местах
Например, есть ли способ изменить код в PdfProposalRenderer's constructor say
new PdfRenderer`?
Если нет, есть ли другие способы проверить это изменение, кроме поиска в кодовой базе слова "extends PdfRenderer" и последующей проверки на наличие строк кода "parent :: __ construct"?