Support DateTimeImmutable as cell value
This commit is contained in:
parent
6f76306de8
commit
fb5f8d4763
|
@ -2,7 +2,7 @@
|
|||
|
||||
namespace PhpOffice\PhpSpreadsheet\Cell;
|
||||
|
||||
use DateTime;
|
||||
use DateTimeInterface;
|
||||
use PhpOffice\PhpSpreadsheet\RichText\RichText;
|
||||
use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
|
||||
|
||||
|
@ -16,14 +16,14 @@ class DefaultValueBinder implements IValueBinder
|
|||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function bindValue(Cell $cell, $value = null)
|
||||
public function bindValue(Cell $cell, $value)
|
||||
{
|
||||
// sanitize UTF-8 strings
|
||||
if (is_string($value)) {
|
||||
$value = StringHelper::sanitizeUTF8($value);
|
||||
} elseif (is_object($value)) {
|
||||
// Handle any objects that might be injected
|
||||
if ($value instanceof DateTime) {
|
||||
if ($value instanceof DateTimeInterface) {
|
||||
$value = $value->format('Y-m-d H:i:s');
|
||||
} elseif (!($value instanceof RichText)) {
|
||||
$value = (string) $value;
|
||||
|
|
|
@ -12,5 +12,5 @@ interface IValueBinder
|
|||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function bindValue(Cell $cell, $value = null);
|
||||
public function bindValue(Cell $cell, $value);
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
namespace PhpOffice\PhpSpreadsheetTests\Cell;
|
||||
|
||||
use DateTime;
|
||||
use DateTimeImmutable;
|
||||
use PhpOffice\PhpSpreadsheet\Cell\Cell;
|
||||
use PhpOffice\PhpSpreadsheet\Cell\DataType;
|
||||
use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder;
|
||||
|
@ -11,9 +12,9 @@ use PHPUnit\Framework\TestCase;
|
|||
|
||||
class DefaultValueBinderTest extends TestCase
|
||||
{
|
||||
protected $cellStub;
|
||||
private $cellStub;
|
||||
|
||||
protected function createCellStub()
|
||||
private function createCellStub()
|
||||
{
|
||||
// Create a stub for the Cell class.
|
||||
$this->cellStub = $this->getMockBuilder(Cell::class)
|
||||
|
@ -53,6 +54,7 @@ class DefaultValueBinderTest extends TestCase
|
|||
['-123.456'],
|
||||
['#REF!'],
|
||||
[new DateTime()],
|
||||
[new DateTimeImmutable()],
|
||||
];
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue