mirror of
https://github.com/PHPOffice/PhpSpreadsheet.git
synced 2026-08-31 12:40:00 +00:00
Restore Mpdf Workaround for Php8.6
Misread dates - fix not available yet.
This commit is contained in:
@@ -40,6 +40,13 @@ class Mpdf extends Pdf
|
||||
|
||||
// Create PDF
|
||||
$config = ['tempDir' => $this->tempDir . '/mpdf'];
|
||||
$restoreHandler = false;
|
||||
if (PHP_VERSION_ID >= self::$temporaryVersionCheck) {
|
||||
// @codeCoverageIgnoreStart
|
||||
set_error_handler(self::specialErrorHandler(...));
|
||||
$restoreHandler = true;
|
||||
// @codeCoverageIgnoreEnd
|
||||
}
|
||||
$pdf = $this->createExternalWriterInstance($config);
|
||||
$ortmp = $orientation;
|
||||
$pdf->_setPageSize($paperSize, $ortmp);
|
||||
@@ -83,9 +90,30 @@ class Mpdf extends Pdf
|
||||
$str = $pdf->Output('', 'S');
|
||||
fwrite($fileHandle, $str);
|
||||
|
||||
if ($restoreHandler) {
|
||||
restore_error_handler(); // @codeCoverageIgnore
|
||||
}
|
||||
parent::restoreStateAfterSave();
|
||||
}
|
||||
|
||||
protected static int $temporaryVersionCheck = 80600;
|
||||
|
||||
/**
|
||||
* Temporary handler for Php8.6 mb_regex_encoding deprecation.
|
||||
*
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
public function specialErrorHandler(int $errno, string $errstr, string $filename, int $lineno): bool
|
||||
{
|
||||
if ($errno === E_DEPRECATED) {
|
||||
if (preg_match('/Function mb_\w+[(][)] is deprecated since 8[.]6/', $errstr) === 1) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false; // continue error handling
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert inches to mm.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user