В примере TCPDF 002 показаны пользовательские методы верхнего / нижнего колонтитула в расширенном классе. Работает нормально.
У меня есть более общая иерархия классов
В одном файле
Class Three extends Two{
public function Header(){
die;
}
public function Footer(){
die;
}
}
В другом файле
Class Two extends One{
public function Header(){
die;
}
public function Footer(){
die;
}
}
В еще одном файле
Class One extends TCPDF{
public function Header(){
die;
}
public function Footer(){
die;
}
}
Где бы (класс первый, два или три) я не размещал свои функции Header()
а также Footer()
они не переопределяют базовые методы в TCPDF.
Может кто-нибудь сказать мне, как переопределение метода терпит неудачу для меня? Операторы die никогда не достигаются, и отображается базовый заголовок, поэтому мои переопределения не работают.
Обновить:
get_declared_classes показывает, что все классы загружены и в правильном порядке.
[316] => String(5) "TCPDF"[317] => String(15) "TCPDF_FONT_DATA"[318] => String(11) "TCPDF_FONTS"[319] => String(12) "TCPDF_COLORS"[320] => String(12) "TCPDF_IMAGES"[321] => String(12) "TCPDF_STATIC"[322] => String(24) "Drupal\pdf\One"[323] => String(30) "Drupal\pdf\Two"[324] => String(38) "Drupal\pdf\Three"
Проблема в том, что вы расширяете класс, который еще не загружен. Обратный порядок ваших определений классов.
Если вы включите error_reporting(E_ALL)
Вы должны увидеть некоторые ошибки, похожие на:
«Неустранимая ошибка: класс« Три »не найден в пути / к / файлу в строке x»
Так что, просто поменяв их, следует решить:
include('TCPDF.php');
//In yet another file
Class One extends TCPDF
{
public function Header()
{
die;
}
public function Footer()
{
die;
}
}
//In another file
Class Two extends One
{
public function Header()
{
die;
}
public function Footer()
{
die;
}
}//in one file
Class Three extends Two
{
public function Header()
{
die;
}
public function Footer()
{
die;
}
}
У меня был этот код
$pdf = new \TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
в
Class One extends \TCPDF
фактически наличие двух экземпляров TCPDF !!
Все снова замечательно. Какое-то время это так. Спасибо.