php 7.x にて tFPDFを使うとエラーになる。
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; tFPDF has a deprecated constructor in /var/www/html/***/tfpdf/tfpdf.php on line 13
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; TTFontFile has a deprecated constructor in /var/www/html/***/tfpdf/font/unifont/ttfonts.php on line 38
error_reporting(-1); で、Deprecatedを表示してしまうと、pdf出力がエラーになる。
FPDF error: Some data has already been output, can't send PDF file
error_reporting(4); とすれば大丈夫だが、ちょっとしらべたら簡単に対処できた。
エラーの内容をググる。
MaryCore https://marycore.jp/prog/php/deprecated-constructor/
このサイトより引用
--------------------------------------------------------------------------------
原因は PHP 4 時代のコンストラクタ宣言(function T())を用いていることです。
PHP 7 ではクラス名と同名のメソッドを定義することが出来なくなってしまいました。
代わりに__constructメソッドによる宣言(function __construct())を行う必要があります。
--------------------------------------------------------------------------------
なるほど!(MaryCoreさんありがとう)
tfpdf/tfpdf.php の 79行目
function tFPDF($orientation='P', $unit='mm', $size='A4')
↓
function __construct($orientation='P', $unit='mm', $size='A4')
tfpdf/font/unifont/ttfonts.php の 72行目
function TTFontFile() {
↓
function __construct() {
うまくいきました。
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; tFPDF has a deprecated constructor in /var/www/html/***/tfpdf/tfpdf.php on line 13
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; TTFontFile has a deprecated constructor in /var/www/html/***/tfpdf/font/unifont/ttfonts.php on line 38
error_reporting(-1); で、Deprecatedを表示してしまうと、pdf出力がエラーになる。
FPDF error: Some data has already been output, can't send PDF file
error_reporting(4); とすれば大丈夫だが、ちょっとしらべたら簡単に対処できた。
エラーの内容をググる。
MaryCore https://marycore.jp/prog/php/deprecated-constructor/
このサイトより引用
--------------------------------------------------------------------------------
原因は PHP 4 時代のコンストラクタ宣言(function T())を用いていることです。
PHP 7 ではクラス名と同名のメソッドを定義することが出来なくなってしまいました。
代わりに__constructメソッドによる宣言(function __construct())を行う必要があります。
--------------------------------------------------------------------------------
なるほど!(MaryCoreさんありがとう)
tfpdf/tfpdf.php の 79行目
function tFPDF($orientation='P', $unit='mm', $size='A4')
↓
function __construct($orientation='P', $unit='mm', $size='A4')
tfpdf/font/unifont/ttfonts.php の 72行目
function TTFontFile() {
↓
function __construct() {
うまくいきました。
※コメント投稿者のブログIDはブログ作成者のみに通知されます