web-dev-qa-db-ja.com

PHP7.1にアップグレードすると、MPDFにエラーが表示されます-30648行目で数値以外の値が検出されました

PHP 5.xとmPDF6.xを長い間使用しています。

今週、システムをPHP7.1にアップグレードすることにしましたが、それでもmPDF6を使用しています。

アップグレード後に問題が発生しました。

問題1 ::

コンソールにエラーメッセージが表示されます:クラス名と同じ名前のコンストラクタは非推奨です。

各phpファイルを調べてクラスを見つけ、コンストラクター関数を__construct(...)に置き換えます。

問題2 ::

コンソールにエラーメッセージが表示されます::プロパティIDを$ attrに割り当てることができません関数MergeCSS(...)のファイルmPDF.phpに移動します。 3行目に新しいコード行を追加します。

if(empty($ attr)){$ attr = array();}

問題3 ::

コンソールに次のエラーメッセージが表示されます::「行30648に数値以外の値が見つかりました」。

この問題を解決するための私の解決策は、次のとおりです。

  1. mPDF.phpファイルのmPDF-> ConvertSize()関数をMPDF7からのコーディングに置き換えます。

    関数ConvertSize()を関数ConvertSize()およびmultiplyFontSize()に置き換える。

https://github.com/mpdf/mpdf/blob/development/src/SizeConverter.php

  1. MPDFクラスに定数を追加する

const SCALE = 72/25.4;

この問題に直面している誰かのためにこの助けを願っています。

7
Chanatip Yim

完全な「数値以外の値が検出されました」という修正が必要な場合。 commit でmpdf6.1.3のフォークされたリポジトリを見てください。

5
Bas Elbers

参考:PHP7は、複数のデフォルトブロックを持つswitchステートメントを検出すると、コンパイル時エラーをスローします。 mpdfは、switchステートメントで複数のデフォルトブロックを使用します。

2
CrazyMerlin