Modifications to folder structure, and re-organise a few classes into different folders; add bootstrap and PSR-4 autoloader; initial work on namespacing

This commit is contained in:
MarkBaker 2015-05-24 23:52:44 +01:00
parent 73b80d392f
commit fdcba9a90a
250 changed files with 2435 additions and 2331 deletions

69
Classes/Autoloader.php Normal file
View File

@ -0,0 +1,69 @@
<?php
namespace PHPExcel;
/**
*
* Autoloader for PHPExcel classes
*
* Copyright (c) 2006 - 2015 PHPExcel
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
* @category PHPExcel
* @package PHPExcel
* @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel)
* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
* @version ##VERSION##, ##DATE##
*/
class Autoloader
{
/**
* Register the Autoloader with SPL
*
*/
public static function register() {
if (function_exists('__autoload')) {
// Register any existing autoloader function with SPL, so we don't get any clashes
spl_autoload_register('__autoload');
}
// Register ourselves with SPL
return spl_autoload_register(array('PHPExcel\Autoloader', 'load'));
}
/**
* Autoload a class identified by name
*
* @param string $className Name of the object to load
*/
public static function load($className) {
if ((class_exists($className, false)) || (strpos($className, 'PHPExcel\\') !== 0)) {
// Either already loaded, or not a PHPExcel class request
return false;
}
$classFilePath = __DIR__ . DIRECTORY_SEPARATOR .
'src' . DIRECTORY_SEPARATOR .
str_replace(['PHPExcel\\', '\\'], ['', '/'], $className) .
'.php';
if ((file_exists($classFilePath) === false) || (is_readable($classFilePath) === false)) {
// Can't load
return false;
}
require($classFilePath);
}
}

32
Classes/Bootstrap.php Normal file
View File

@ -0,0 +1,32 @@
<?php
/**
*
* Bootstrap for PHPExcel classes
*
* Copyright (c) 2006 - 2015 PHPExcel
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
* @category PHPExcel
* @package PHPExcel
* @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel)
* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
* @version ##VERSION##, ##DATE##
*/
include_once __DIR__ . '/Autoloader.php';
\PHPExcel\Autoloader::register();

View File

@ -1,13 +1,6 @@
<?php
/** PHPExcel root directory */
if (!defined('PHPEXCEL_ROOT')) {
/**
* @ignore
*/
define('PHPEXCEL_ROOT', dirname(__FILE__) . '/../');
require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
}
namespace PHPExcel;
if (!defined('CALCULATION_REGEXP_CELLREF')) {
// Test for support of \P (multibyte options) in PCRE
@ -25,7 +18,7 @@ if (!defined('CALCULATION_REGEXP_CELLREF')) {
}
/**
* PHPExcel_Calculation (Multiton)
* PHPExcel\Calculation (Multiton)
*
* Copyright (c) 2006 - 2015 PHPExcel
*
@ -49,7 +42,7 @@ if (!defined('CALCULATION_REGEXP_CELLREF')) {
* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
* @version ##VERSION##, ##DATE##
*/
class PHPExcel_Calculation
class Calculation
{
/** Constants */
/** Regular Expressions */
@ -87,20 +80,20 @@ class PHPExcel_Calculation
/**
* Instance of the workbook this Calculation Engine is using
* Instance of the spreadsheet this Calculation Engine is using
*
* @access private
* @var PHPExcel
*/
private $workbook;
private $spreadsheet;
/**
* List of instances of the calculation engine that we've instantiated for individual workbooks
* List of instances of the calculation engine that we've instantiated for individual spreadsheets
*
* @access private
* @var PHPExcel_Calculation[]
*/
private static $workbookSets;
private static $spreadsheetSets;
/**
* Calculation cache
@ -2068,7 +2061,7 @@ class PHPExcel_Calculation
);
private function __construct(PHPExcel $workbook = null)
private function __construct(PHPExcel $spreadsheet = null)
{
$setPrecision = (PHP_INT_SIZE == 4) ? 14 : 16;
$this->savedPrecision = ini_get('precision');
@ -2077,11 +2070,11 @@ class PHPExcel_Calculation
}
$this->delta = 1 * pow(10, -$setPrecision);
if ($workbook !== null) {
self::$workbookSets[$workbook->getID()] = $this;
if ($spreadsheet !== null) {
self::$spreadsheetSets[$spreadsheet->getID()] = $this;
}
$this->workbook = $workbook;
$this->spreadsheet = $spreadsheet;
$this->cyclicReferenceStack = new PHPExcel_CalcEngine_CyclicReferenceStack();
$this->_debugLog = new PHPExcel_CalcEngine_Logger($this->cyclicReferenceStack);
}
@ -2109,17 +2102,17 @@ class PHPExcel_Calculation
* Get an instance of this class
*
* @access public
* @param PHPExcel $workbook Injected workbook for working with a PHPExcel object,
* @param PHPExcel $spreadsheet Injected spreadsheet for working with a PHPExcel object,
* or NULL to create a standalone claculation engine
* @return PHPExcel_Calculation
*/
public static function getInstance(PHPExcel $workbook = null)
public static function getInstance(Spreadsheet $spreadsheet = null)
{
if ($workbook !== null) {
if (isset(self::$workbookSets[$workbook->getID()])) {
return self::$workbookSets[$workbook->getID()];
if ($spreadsheet !== null) {
if (isset(self::$spreadsheetSets[$spreadsheet->getID()])) {
return self::$spreadsheetSets[$spreadsheet->getID()];
}
return new PHPExcel_Calculation($workbook);
return new PHPExcel_Calculation($spreadsheet);
}
if (!isset(self::$instance) || (self::$instance === null)) {
@ -2133,13 +2126,13 @@ class PHPExcel_Calculation
* Unset an instance of this class
*
* @access public
* @param PHPExcel $workbook Injected workbook identifying the instance to unset
* @param PHPExcel $spreadsheet Injected spreadsheet identifying the instance to unset
*/
public static function unsetInstance(PHPExcel $workbook = null)
public static function unsetInstance(PHPExcel $spreadsheet = null)
{
if ($workbook !== null) {
if (isset(self::$workbookSets[$workbook->getID()])) {
unset(self::$workbookSets[$workbook->getID()]);
if ($spreadsheet !== null) {
if (isset(self::$spreadsheetSets[$spreadsheet->getID()])) {
unset(self::$spreadsheetSets[$spreadsheet->getID()]);
}
}
}
@ -2636,10 +2629,10 @@ class PHPExcel_Calculation
try {
$result = self::unwrapResult($this->_calculateFormulaValue($pCell->getValue(), $pCell->getCoordinate(), $pCell));
$cellAddress = array_pop($this->cellStack);
$this->workbook->getSheetByName($cellAddress['sheet'])->getCell($cellAddress['cell']);
$this->spreadsheet->getSheetByName($cellAddress['sheet'])->getCell($cellAddress['cell']);
} catch (PHPExcel_Exception $e) {
$cellAddress = array_pop($this->cellStack);
$this->workbook->getSheetByName($cellAddress['sheet'])->getCell($cellAddress['cell']);
$this->spreadsheet->getSheetByName($cellAddress['sheet'])->getCell($cellAddress['cell']);
throw new PHPExcel_Calculation_Exception($e->getMessage());
}
@ -3611,7 +3604,7 @@ class PHPExcel_Calculation
}
$cellRef = PHPExcel_Cell::stringFromColumnIndex(min($oCol)).min($oRow).':'.PHPExcel_Cell::stringFromColumnIndex(max($oCol)).max($oRow);
if ($pCellParent !== null) {
$cellValue = $this->extractCellRange($cellRef, $this->workbook->getSheetByName($sheet1), false);
$cellValue = $this->extractCellRange($cellRef, $this->spreadsheet->getSheetByName($sheet1), false);
} else {
return $this->raiseFormulaError('Unable to access Cell Reference');
}
@ -3725,14 +3718,14 @@ class PHPExcel_Calculation
if ($matches[2] > '') {
$matches[2] = trim($matches[2], "\"'");
if ((strpos($matches[2], '[') !== false) || (strpos($matches[2], ']') !== false)) {
// It's a Reference to an external workbook (not currently supported)
// It's a Reference to an external spreadsheet (not currently supported)
return $this->raiseFormulaError('Unable to access External Workbook');
}
$matches[2] = trim($matches[2], "\"'");
// echo '$cellRef='.$cellRef.' in worksheet '.$matches[2].'<br />';
$this->_debugLog->writeDebugLog('Evaluating Cell Range ', $cellRef, ' in worksheet ', $matches[2]);
if ($pCellParent !== null) {
$cellValue = $this->extractCellRange($cellRef, $this->workbook->getSheetByName($matches[2]), false);
$cellValue = $this->extractCellRange($cellRef, $this->spreadsheet->getSheetByName($matches[2]), false);
} else {
return $this->raiseFormulaError('Unable to access Cell Reference');
}
@ -3759,15 +3752,15 @@ class PHPExcel_Calculation
if ($matches[2] > '') {
$matches[2] = trim($matches[2], "\"'");
if ((strpos($matches[2], '[') !== false) || (strpos($matches[2], ']') !== false)) {
// It's a Reference to an external workbook (not currently supported)
// It's a Reference to an external spreadsheet (not currently supported)
return $this->raiseFormulaError('Unable to access External Workbook');
}
// echo '$cellRef='.$cellRef.' in worksheet '.$matches[2].'<br />';
$this->_debugLog->writeDebugLog('Evaluating Cell ', $cellRef, ' in worksheet ', $matches[2]);
if ($pCellParent !== null) {
$cellSheet = $this->workbook->getSheetByName($matches[2]);
$cellSheet = $this->spreadsheet->getSheetByName($matches[2]);
if ($cellSheet && $cellSheet->cellExists($cellRef)) {
$cellValue = $this->extractCellRange($cellRef, $this->workbook->getSheetByName($matches[2]), false);
$cellValue = $this->extractCellRange($cellRef, $this->spreadsheet->getSheetByName($matches[2]), false);
$pCell->attach($pCellParent);
} else {
$cellValue = null;
@ -4215,7 +4208,7 @@ class PHPExcel_Calculation
list($pSheetName, $pRange) = PHPExcel_Worksheet::extractSheetTitle($pRange, true);
// echo 'New sheet name is '.$pSheetName, PHP_EOL;
// echo 'Adjusted Range reference is '.$pRange, PHP_EOL;
$pSheet = $this->workbook->getSheetByName($pSheetName);
$pSheet = $this->spreadsheet->getSheetByName($pSheetName);
}
// Extract range
@ -4273,7 +4266,7 @@ class PHPExcel_Calculation
list($pSheetName, $pRange) = PHPExcel_Worksheet::extractSheetTitle($pRange, true);
// echo 'New sheet name is '.$pSheetName, PHP_EOL;
// echo 'Adjusted Range reference is '.$pRange, PHP_EOL;
$pSheet = $this->workbook->getSheetByName($pSheetName);
$pSheet = $this->spreadsheet->getSheetByName($pSheetName);
}
// Named range?

View File

@ -1,17 +1,17 @@
ChartDirector
http://www.advsofteng.com/cdphp.html
GraPHPite
http://graphpite.sourceforge.net/
JpGraph
http://www.aditus.nu/jpgraph/
LibChart
http://naku.dohcrew.com/libchart/pages/introduction/
pChart
http://pchart.sourceforge.net/
TeeChart
http://www.steema.com/products/teechart/overview.html
ChartDirector
http://www.advsofteng.com/cdphp.html
GraPHPite
http://graphpite.sourceforge.net/
JpGraph
http://www.aditus.nu/jpgraph/
LibChart
http://naku.dohcrew.com/libchart/pages/introduction/
pChart
http://pchart.sourceforge.net/
TeeChart
http://www.steema.com/products/teechart/overview.html

View File

@ -1,5 +1,7 @@
<?php
namespace PHPExcel;
/**
* PHPExcel_IComparable
*
@ -23,7 +25,7 @@
* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
* @version ##VERSION##, ##DATE##
*/
interface PHPExcel_IComparable
interface IComparable
{
/**
* Get hash code

Some files were not shown because too many files have changed in this diff Show More