Some functions were not callable because of wrong declaration
This commit is contained in:
parent
22b9a3f66f
commit
e6d8362fb2
|
@ -31,7 +31,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
|
||||||
|
|
||||||
### BREAKING CHANGE
|
### BREAKING CHANGE
|
||||||
|
|
||||||
- Introduction of namespaces for all classes, eg: `PHPExcel_Calculation_Function` becomes `PhpOffice\PhpSpreadsheet\Calculation\Functions`
|
- Introduction of namespaces for all classes, eg: `PHPExcel_Calculation_Functions` becomes `PhpOffice\PhpSpreadsheet\Calculation\Functions`
|
||||||
- Some classes were renamed for clarity and/or consistency:
|
- Some classes were renamed for clarity and/or consistency:
|
||||||
|
|
||||||
For a comprehensive list of all class changes, and a semi-automated migration path, read the [migration guide](./docs/Migration-from-PHPExcel.md).
|
For a comprehensive list of all class changes, and a semi-automated migration path, read the [migration guide](./docs/Migration-from-PHPExcel.md).
|
||||||
|
|
|
@ -7,7 +7,7 @@ require __DIR__ . '/Header.php';
|
||||||
// List functions
|
// List functions
|
||||||
$helper->log('List implemented functions');
|
$helper->log('List implemented functions');
|
||||||
$calc = \PhpOffice\PhpSpreadsheet\Calculation::getInstance();
|
$calc = \PhpOffice\PhpSpreadsheet\Calculation::getInstance();
|
||||||
print_r($calc->listFunctionNames());
|
print_r($calc->getImplementedFunctionNames());
|
||||||
|
|
||||||
// Create new Spreadsheet object
|
// Create new Spreadsheet object
|
||||||
$helper->log('Create new Spreadsheet object');
|
$helper->log('Create new Spreadsheet object');
|
||||||
|
|
|
@ -6,7 +6,7 @@ require __DIR__ . '/Header.php';
|
||||||
// List functions
|
// List functions
|
||||||
$helper->log('List implemented functions');
|
$helper->log('List implemented functions');
|
||||||
$calc = \PhpOffice\PhpSpreadsheet\Calculation::getInstance();
|
$calc = \PhpOffice\PhpSpreadsheet\Calculation::getInstance();
|
||||||
print_r($calc->listFunctionNames());
|
print_r($calc->getImplementedFunctionNames());
|
||||||
|
|
||||||
// Create new Spreadsheet object
|
// Create new Spreadsheet object
|
||||||
$helper->log('Create new Spreadsheet object');
|
$helper->log('Create new Spreadsheet object');
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,145 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace PhpOffice\PhpSpreadsheet\Calculation;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Copyright (c) 2006 - 2016 PhpSpreadsheet
|
|
||||||
*
|
|
||||||
* 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 PhpSpreadsheet
|
|
||||||
* @copyright Copyright (c) 2006 - 2016 PhpSpreadsheet (https://github.com/PHPOffice/PhpSpreadsheet)
|
|
||||||
* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
|
|
||||||
*/
|
|
||||||
class Categories
|
|
||||||
{
|
|
||||||
/* Function categories */
|
|
||||||
const CATEGORY_CUBE = 'Cube';
|
|
||||||
const CATEGORY_DATABASE = 'Database';
|
|
||||||
const CATEGORY_DATE_AND_TIME = 'Date and Time';
|
|
||||||
const CATEGORY_ENGINEERING = 'Engineering';
|
|
||||||
const CATEGORY_FINANCIAL = 'Financial';
|
|
||||||
const CATEGORY_INFORMATION = 'Information';
|
|
||||||
const CATEGORY_LOGICAL = 'Logical';
|
|
||||||
const CATEGORY_LOOKUP_AND_REFERENCE = 'Lookup and Reference';
|
|
||||||
const CATEGORY_MATH_AND_TRIG = 'Math and Trig';
|
|
||||||
const CATEGORY_STATISTICAL = 'Statistical';
|
|
||||||
const CATEGORY_TEXT_AND_DATA = 'Text and Data';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Category (represented by CATEGORY_*)
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
private $category;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Excel function name
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
private $excelName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Spreadsheet function name
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
private $spreadsheetName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new Categories
|
|
||||||
* @param string $pCategory Category (represented by CATEGORY_*)
|
|
||||||
* @param string $pExcelName Excel function name
|
|
||||||
* @param string $spreadsheetName Spreadsheet internal function name
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
public function __construct($pCategory = null, $pExcelName = null, $spreadsheetName = null)
|
|
||||||
{
|
|
||||||
if (($pCategory !== null) && ($pExcelName !== null) && ($spreadsheetName !== null)) {
|
|
||||||
// Initialise values
|
|
||||||
$this->category = $pCategory;
|
|
||||||
$this->excelName = $pExcelName;
|
|
||||||
$this->spreadsheetName = $spreadsheetName;
|
|
||||||
} else {
|
|
||||||
throw new Exception('Invalid parameters passed.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get Category (represented by CATEGORY_*)
|
|
||||||
*
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public function getCategory()
|
|
||||||
{
|
|
||||||
return $this->category;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set Category (represented by CATEGORY_*)
|
|
||||||
*
|
|
||||||
* @param string $value
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
public function setCategory($value = null)
|
|
||||||
{
|
|
||||||
if (!is_null($value)) {
|
|
||||||
$this->category = $value;
|
|
||||||
} else {
|
|
||||||
throw new Exception('Invalid parameter passed.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get Excel function name
|
|
||||||
*
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public function getExcelName()
|
|
||||||
{
|
|
||||||
return $this->excelName;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set Excel function name
|
|
||||||
*
|
|
||||||
* @param string $value
|
|
||||||
*/
|
|
||||||
public function setExcelName($value)
|
|
||||||
{
|
|
||||||
$this->excelName = $value;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get Spreadsheet function name
|
|
||||||
*
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public function getSpreadsheetName()
|
|
||||||
{
|
|
||||||
return $this->spreadsheetName;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set Spreadsheet function name
|
|
||||||
*
|
|
||||||
* @param string $value
|
|
||||||
*/
|
|
||||||
public function setSpreadsheetName($value)
|
|
||||||
{
|
|
||||||
$this->spreadsheetName = $value;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace PhpOffice\PhpSpreadsheet\Calculation;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Copyright (c) 2006 - 2016 PhpSpreadsheet
|
||||||
|
*
|
||||||
|
* 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 PhpSpreadsheet
|
||||||
|
* @copyright Copyright (c) 2006 - 2016 PhpSpreadsheet (https://github.com/PHPOffice/PhpSpreadsheet)
|
||||||
|
* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
|
||||||
|
*/
|
||||||
|
abstract class Category
|
||||||
|
{
|
||||||
|
/* Function categories */
|
||||||
|
const CATEGORY_CUBE = 'Cube';
|
||||||
|
const CATEGORY_DATABASE = 'Database';
|
||||||
|
const CATEGORY_DATE_AND_TIME = 'Date and Time';
|
||||||
|
const CATEGORY_ENGINEERING = 'Engineering';
|
||||||
|
const CATEGORY_FINANCIAL = 'Financial';
|
||||||
|
const CATEGORY_INFORMATION = 'Information';
|
||||||
|
const CATEGORY_LOGICAL = 'Logical';
|
||||||
|
const CATEGORY_LOOKUP_AND_REFERENCE = 'Lookup and Reference';
|
||||||
|
const CATEGORY_MATH_AND_TRIG = 'Math and Trig';
|
||||||
|
const CATEGORY_STATISTICAL = 'Statistical';
|
||||||
|
const CATEGORY_TEXT_AND_DATA = 'Text and Data';
|
||||||
|
}
|
|
@ -100,7 +100,7 @@ class Migrator
|
||||||
'PHPExcel_CalcEngine_CyclicReferenceStack' => '\\PhpOffice\\PhpSpreadsheet\\CalcEngine\\CyclicReferenceStack',
|
'PHPExcel_CalcEngine_CyclicReferenceStack' => '\\PhpOffice\\PhpSpreadsheet\\CalcEngine\\CyclicReferenceStack',
|
||||||
'PHPExcel_CalcEngine_Logger' => '\\PhpOffice\\PhpSpreadsheet\\CalcEngine\\Logger',
|
'PHPExcel_CalcEngine_Logger' => '\\PhpOffice\\PhpSpreadsheet\\CalcEngine\\Logger',
|
||||||
'PHPExcel_Calculation_Functions' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Functions',
|
'PHPExcel_Calculation_Functions' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Functions',
|
||||||
'PHPExcel_Calculation_Function' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Categories',
|
'PHPExcel_Calculation_Function' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Category',
|
||||||
'PHPExcel_Calculation_Database' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Database',
|
'PHPExcel_Calculation_Database' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Database',
|
||||||
'PHPExcel_Calculation_DateTime' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\DateTime',
|
'PHPExcel_Calculation_DateTime' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\DateTime',
|
||||||
'PHPExcel_Calculation_Engineering' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering',
|
'PHPExcel_Calculation_Engineering' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering',
|
||||||
|
|
|
@ -30,4 +30,17 @@ class CalculationTest extends \PHPUnit_Framework_TestCase
|
||||||
{
|
{
|
||||||
return require 'data/CalculationBinaryComparisonOperation.php';
|
return require 'data/CalculationBinaryComparisonOperation.php';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider providerGetFunctions
|
||||||
|
*/
|
||||||
|
public function testGetFunctions($category, $functionCall, $argumentCount)
|
||||||
|
{
|
||||||
|
$this->assertTrue(is_callable($functionCall));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function providerGetFunctions()
|
||||||
|
{
|
||||||
|
return Calculation::getInstance()->getFunctions();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue