diff --git a/src/PhpSpreadsheet/Reader/BaseReader.php b/src/PhpSpreadsheet/Reader/BaseReader.php index 2ad8e6b2..c215e65b 100644 --- a/src/PhpSpreadsheet/Reader/BaseReader.php +++ b/src/PhpSpreadsheet/Reader/BaseReader.php @@ -2,9 +2,11 @@ namespace PhpOffice\PhpSpreadsheet\Reader; +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException; use PhpOffice\PhpSpreadsheet\Reader\Exception as ReaderException; use PhpOffice\PhpSpreadsheet\Reader\Security\XmlScanner; use PhpOffice\PhpSpreadsheet\Shared\File; +use PhpOffice\PhpSpreadsheet\Spreadsheet; abstract class BaseReader implements IReader { @@ -144,25 +146,41 @@ abstract class BaseReader implements IReader } } + protected function loadSpreadsheetFromFile(string $filename): Spreadsheet + { + throw new PhpSpreadsheetException('Reader classes must implement their own loadSpreadsheetFromFile() method'); + } + + /** + * Loads Spreadsheet from file. + */ + public function load(string $filename, int $flags = 0): Spreadsheet + { + $this->processFlags($flags); + + try { + return $this->loadSpreadsheetFromFile($filename); + } catch (ReaderException $e) { + throw $e; + } + } + /** * Open file for reading. - * - * @param string $filename */ - protected function openFile($filename): void + protected function openFile(string $filename): void { + $fileHandle = false; if ($filename) { File::assertFile($filename); // Open file $fileHandle = fopen($filename, 'rb'); - } else { - $fileHandle = false; } - if ($fileHandle !== false) { - $this->fileHandle = $fileHandle; - } else { + if ($fileHandle === false) { throw new ReaderException('Could not open file ' . $filename . ' for reading.'); } + + $this->fileHandle = $fileHandle; } } diff --git a/src/PhpSpreadsheet/Reader/Csv.php b/src/PhpSpreadsheet/Reader/Csv.php index 185f064c..0146fca0 100644 --- a/src/PhpSpreadsheet/Reader/Csv.php +++ b/src/PhpSpreadsheet/Reader/Csv.php @@ -236,13 +236,9 @@ class Csv extends BaseReader /** * Loads Spreadsheet from file. - * - * @return Spreadsheet */ - public function load(string $filename, int $flags = 0) + protected function loadSpreadsheetFromFile(string $filename): Spreadsheet { - $this->processFlags($flags); - // Create new Spreadsheet $spreadsheet = new Spreadsheet(); diff --git a/src/PhpSpreadsheet/Reader/Gnumeric.php b/src/PhpSpreadsheet/Reader/Gnumeric.php index 9b03cdc9..ead5ae51 100644 --- a/src/PhpSpreadsheet/Reader/Gnumeric.php +++ b/src/PhpSpreadsheet/Reader/Gnumeric.php @@ -227,13 +227,9 @@ class Gnumeric extends BaseReader /** * Loads Spreadsheet from file. - * - * @return Spreadsheet */ - public function load(string $filename, int $flags = 0) + protected function loadSpreadsheetFromFile(string $filename): Spreadsheet { - $this->processFlags($flags); - // Create new Spreadsheet $spreadsheet = new Spreadsheet(); $spreadsheet->removeSheetByIndex(0); diff --git a/src/PhpSpreadsheet/Reader/Html.php b/src/PhpSpreadsheet/Reader/Html.php index c37f1c1a..9d02fee9 100644 --- a/src/PhpSpreadsheet/Reader/Html.php +++ b/src/PhpSpreadsheet/Reader/Html.php @@ -19,7 +19,6 @@ use PhpOffice\PhpSpreadsheet\Worksheet\Drawing; use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet; use Throwable; -/** PhpSpreadsheet root directory */ class Html extends BaseReader { /** @@ -201,13 +200,9 @@ class Html extends BaseReader /** * Loads Spreadsheet from file. - * - * @return Spreadsheet */ - public function load(string $filename, int $flags = 0) + protected function loadSpreadsheetFromFile(string $filename): Spreadsheet { - $this->processFlags($flags); - // Create new Spreadsheet $spreadsheet = new Spreadsheet(); diff --git a/src/PhpSpreadsheet/Reader/Ods.php b/src/PhpSpreadsheet/Reader/Ods.php index 86b3ee38..08b8157b 100644 --- a/src/PhpSpreadsheet/Reader/Ods.php +++ b/src/PhpSpreadsheet/Reader/Ods.php @@ -217,13 +217,9 @@ class Ods extends BaseReader /** * Loads PhpSpreadsheet from file. - * - * @return Spreadsheet */ - public function load(string $filename, int $flags = 0) + protected function loadSpreadsheetFromFile(string $filename): Spreadsheet { - $this->processFlags($flags); - // Create new Spreadsheet $spreadsheet = new Spreadsheet(); diff --git a/src/PhpSpreadsheet/Reader/Slk.php b/src/PhpSpreadsheet/Reader/Slk.php index de3c6ce5..c33f0202 100644 --- a/src/PhpSpreadsheet/Reader/Slk.php +++ b/src/PhpSpreadsheet/Reader/Slk.php @@ -191,13 +191,9 @@ class Slk extends BaseReader /** * Loads PhpSpreadsheet from file. - * - * @return Spreadsheet */ - public function load(string $filename, int $flags = 0) + protected function loadSpreadsheetFromFile(string $filename): Spreadsheet { - $this->processFlags($flags); - // Create new Spreadsheet $spreadsheet = new Spreadsheet(); diff --git a/src/PhpSpreadsheet/Reader/Xls.php b/src/PhpSpreadsheet/Reader/Xls.php index 1644e40e..6fa51a1f 100644 --- a/src/PhpSpreadsheet/Reader/Xls.php +++ b/src/PhpSpreadsheet/Reader/Xls.php @@ -620,13 +620,9 @@ class Xls extends BaseReader /** * Loads PhpSpreadsheet from file. - * - * @return Spreadsheet */ - public function load(string $filename, int $flags = 0) + protected function loadSpreadsheetFromFile(string $filename): Spreadsheet { - $this->processFlags($flags); - // Read the OLE file $this->loadOLE($filename); diff --git a/src/PhpSpreadsheet/Reader/Xlsx.php b/src/PhpSpreadsheet/Reader/Xlsx.php index f7625d5e..c9134c8e 100644 --- a/src/PhpSpreadsheet/Reader/Xlsx.php +++ b/src/PhpSpreadsheet/Reader/Xlsx.php @@ -384,10 +384,9 @@ class Xlsx extends BaseReader /** * Loads Spreadsheet from file. */ - public function load(string $filename, int $flags = 0): Spreadsheet + protected function loadSpreadsheetFromFile(string $filename): Spreadsheet { File::assertFile($filename, self::INITIAL_FILE); - $this->processFlags($flags); // Initialisations $excel = new Spreadsheet(); diff --git a/src/PhpSpreadsheet/Reader/Xml.php b/src/PhpSpreadsheet/Reader/Xml.php index 8552509e..bac40961 100644 --- a/src/PhpSpreadsheet/Reader/Xml.php +++ b/src/PhpSpreadsheet/Reader/Xml.php @@ -231,13 +231,9 @@ class Xml extends BaseReader /** * Loads Spreadsheet from file. - * - * @return Spreadsheet */ - public function load(string $filename, int $flags = 0) + protected function loadSpreadsheetFromFile(string $filename): Spreadsheet { - $this->processFlags($flags); - // Create new Spreadsheet $spreadsheet = new Spreadsheet(); $spreadsheet->removeSheetByIndex(0); diff --git a/tests/PhpSpreadsheetTests/Calculation/CalclationFunctionListTest.php b/tests/PhpSpreadsheetTests/Calculation/CalculationFunctionListTest.php similarity index 97% rename from tests/PhpSpreadsheetTests/Calculation/CalclationFunctionListTest.php rename to tests/PhpSpreadsheetTests/Calculation/CalculationFunctionListTest.php index 8fde09ce..bb71ee6e 100644 --- a/tests/PhpSpreadsheetTests/Calculation/CalclationFunctionListTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/CalculationFunctionListTest.php @@ -7,7 +7,7 @@ use PhpOffice\PhpSpreadsheet\Calculation\Functions; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PHPUnit\Framework\TestCase; -class CalclationFunctionListTest extends TestCase +class CalculationFunctionListTest extends TestCase { /** * @var string