mirror of
https://github.com/moodle/moodle.git
synced 2025-03-23 17:10:20 +01:00
MDL-75951 core: Update box/spout to address PHP 8.1 deprecation
This change is a direct pull from an upstream fix:
64a09a748d
This addresses the deprecation of auto_detect_line_endings in PHP 8.1.
This commit is contained in:
parent
7f5f04dbc2
commit
743fc68b4f
@ -4,6 +4,11 @@ Description of Spout library import
|
||||
* Only include the src/Spout directory.
|
||||
* Update lib/thirdpartylibs.xml with the latest version.
|
||||
|
||||
2022/11/25
|
||||
----------
|
||||
Imported PHP 8.1 patch from OpenSpout/OpenSpout 4.8.1
|
||||
https://github.com/openspout/openspout/commit/64a09a748d04992d63b38712599a9d8742bd77f7
|
||||
|
||||
2022/10/27
|
||||
----------
|
||||
Changes:
|
||||
@ -36,4 +41,4 @@ by Ankit Agarwal <ankit.agrr@gmail.com>
|
||||
2016/09/20
|
||||
----------
|
||||
Updated to v2.6.0 (MDL-56012)
|
||||
by Adrian Greeve <adrian@moodle.com>
|
||||
by Adrian Greeve <adrian@moodle.com>
|
||||
|
@ -3,6 +3,9 @@
|
||||
namespace Box\Spout\Reader\CSV;
|
||||
|
||||
use Box\Spout\Common\Exception\IOException;
|
||||
use Box\Spout\Common\Helper\GlobalFunctionsHelper;
|
||||
use Box\Spout\Common\Manager\OptionsManagerInterface;
|
||||
use Box\Spout\Reader\Common\Creator\InternalEntityFactoryInterface;
|
||||
use Box\Spout\Reader\Common\Entity\Options;
|
||||
use Box\Spout\Reader\CSV\Creator\InternalEntityFactory;
|
||||
use Box\Spout\Reader\ReaderAbstract;
|
||||
@ -22,6 +25,23 @@ class Reader extends ReaderAbstract
|
||||
/** @var string Original value for the "auto_detect_line_endings" INI value */
|
||||
protected $originalAutoDetectLineEndings;
|
||||
|
||||
/** @var bool Whether the code is running with PHP >= 8.1 */
|
||||
private $isRunningAtLeastPhp81;
|
||||
|
||||
/**
|
||||
* @param OptionsManagerInterface $optionsManager
|
||||
* @param GlobalFunctionsHelper $globalFunctionsHelper
|
||||
* @param InternalEntityFactoryInterface $entityFactory
|
||||
*/
|
||||
public function __construct(
|
||||
OptionsManagerInterface $optionsManager,
|
||||
GlobalFunctionsHelper $globalFunctionsHelper,
|
||||
InternalEntityFactoryInterface $entityFactory
|
||||
) {
|
||||
parent::__construct($optionsManager, $globalFunctionsHelper, $entityFactory);
|
||||
$this->isRunningAtLeastPhp81 = \version_compare(PHP_VERSION, '8.1.0') >= 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the field delimiter for the CSV.
|
||||
* Needs to be called before opening the reader.
|
||||
@ -84,8 +104,11 @@ class Reader extends ReaderAbstract
|
||||
*/
|
||||
protected function openReader($filePath)
|
||||
{
|
||||
$this->originalAutoDetectLineEndings = \ini_get('auto_detect_line_endings');
|
||||
\ini_set('auto_detect_line_endings', '1');
|
||||
// "auto_detect_line_endings" is deprecated in PHP 8.1
|
||||
if (!$this->isRunningAtLeastPhp81) {
|
||||
$this->originalAutoDetectLineEndings = \ini_get('auto_detect_line_endings');
|
||||
\ini_set('auto_detect_line_endings', '1');
|
||||
}
|
||||
|
||||
$this->filePointer = $this->globalFunctionsHelper->fopen($filePath, 'r');
|
||||
if (!$this->filePointer) {
|
||||
@ -123,6 +146,9 @@ class Reader extends ReaderAbstract
|
||||
$this->globalFunctionsHelper->fclose($this->filePointer);
|
||||
}
|
||||
|
||||
\ini_set('auto_detect_line_endings', $this->originalAutoDetectLineEndings);
|
||||
// "auto_detect_line_endings" is deprecated in PHP 8.1
|
||||
if (!$this->isRunningAtLeastPhp81) {
|
||||
\ini_set('auto_detect_line_endings', $this->originalAutoDetectLineEndings);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user