rename 'Object' classes to 'ObjectElement' (php 7.2 compatibility) (#1185)

merge develop branch
This commit is contained in:
Maxim 2017-12-29 21:19:35 +02:00 committed by troosan
parent 709ea1e14c
commit 400a8e65d3
10 changed files with 34 additions and 25 deletions

View File

@ -16,6 +16,11 @@ matrix:
- php: 5.6
env: COVERAGE=1
allow_failures:
<<<<<<< HEAD
=======
- php: 7.0
- php: 7.1
>>>>>>> branch 'php72_support_object_classes' of https://github.com/SailorMax/PHPWord
- php: 7.2
cache:

View File

@ -37,7 +37,8 @@ This version brings compatibility with PHP 7.0 & 7.1
### Fixed
- Loosen dependency to Zend
- Images are not being printed when generating PDF - @hubertinio #1074 #431
- Fixed some PHP 7 warnings - @likeuntomurphy #927
- Fixed some PHP 7 warnings - @ likeuntomurphy #927
- Fixed PHP 7.2 compatibility (renamed `Object` class names to `ObjectElement`) - @SailorMax #1185
- Fixed Word 97 reader - @alsofronie @Benpxpx @mario-rivera #912 #920 #892
- Fixed image loading over https - @troosan #988
- Impossibility to set different even and odd page headers - @troosan #981

View File

@ -37,7 +37,7 @@ namespace PhpOffice\PhpWord\Element;
* @method PageBreak addPageBreak()
* @method Table addTable(mixed $style = null)
* @method Image addImage(string $source, mixed $style = null, bool $isWatermark = false)
* @method \PhpOffice\PhpWord\Element\Object addObject(string $source, mixed $style = null)
* @method \PhpOffice\PhpWord\Element\OLEObject addObject(string $source, mixed $style = null)
* @method TextBox addTextBox(mixed $style = null)
* @method Field addField(string $type = null, array $properties = array(), array $options = array(), mixed $text = null)
* @method Line addLine(mixed $lineStyle = null)
@ -87,7 +87,7 @@ abstract class AbstractContainer extends AbstractElement
);
$functions = array();
foreach ($elements as $element) {
$functions['add' . strtolower($element)] = $element;
$functions['add' . strtolower($element)] = $element == 'Object' ? 'OLEObject' : $element;
}
// Run valid `add` command
@ -193,7 +193,7 @@ abstract class AbstractContainer extends AbstractElement
'Link' => $generalContainers,
'TextBreak' => $generalContainers,
'Image' => $generalContainers,
'Object' => $generalContainers,
'OLEObject' => $generalContainers,
'Field' => $generalContainers,
'Line' => $generalContainers,
'Shape' => $generalContainers,

View File

@ -358,11 +358,14 @@ abstract class AbstractElement
*/
private function setMediaRelation()
{
if (!$this instanceof Link && !$this instanceof Image && !$this instanceof Object) {
if (!$this instanceof Link && !$this instanceof Image && !$this instanceof OLEObject) {
return;
}
$elementName = substr(get_class($this), strrpos(get_class($this), '\\') + 1);
if ($elementName == 'OLEObject') {
$elementName = 'Object';
}
$mediaPart = $this->getMediaPart();
$source = $this->getSource();
$image = null;
@ -372,7 +375,7 @@ abstract class AbstractElement
$rId = Media::addElement($mediaPart, strtolower($elementName), $source, $image);
$this->setRelationId($rId);
if ($this instanceof Object) {
if ($this instanceof OLEObject) {
$icon = $this->getIcon();
$rId = Media::addElement($mediaPart, 'image', $icon, new Image($icon));
$this->setImageRelationId($rId);

View File

@ -21,9 +21,9 @@ use PhpOffice\PhpWord\Exception\InvalidObjectException;
use PhpOffice\PhpWord\Style\Image as ImageStyle;
/**
* Object element
* OLEObject element
*/
class Object extends AbstractElement
class OLEObject extends AbstractElement
{
/**
* Ole-Object Src

View File

@ -20,11 +20,11 @@ namespace PhpOffice\PhpWord\Writer\Word2007\Element;
use PhpOffice\PhpWord\Writer\Word2007\Style\Image as ImageStyleWriter;
/**
* Object element writer
* OLEObject element writer
*
* @since 0.10.0
*/
class Object extends AbstractElement
class OLEObject extends AbstractElement
{
/**
* Write object element.
@ -33,7 +33,7 @@ class Object extends AbstractElement
{
$xmlWriter = $this->getXmlWriter();
$element = $this->getElement();
if (!$element instanceof \PhpOffice\PhpWord\Element\Object) {
if (!$element instanceof \PhpOffice\PhpWord\Element\OLEObject) {
return;
}

View File

@ -181,7 +181,7 @@ class CellTest extends \PHPUnit\Framework\TestCase
$element = $oCell->addObject($src);
$this->assertCount(1, $oCell->getElements());
$this->assertInstanceOf('PhpOffice\\PhpWord\\Element\\Object', $element);
$this->assertInstanceOf('PhpOffice\\PhpWord\\Element\\OLEObject', $element);
}
/**

View File

@ -18,9 +18,9 @@
namespace PhpOffice\PhpWord\Element;
/**
* Test class for PhpOffice\PhpWord\Element\Object
* Test class for PhpOffice\PhpWord\Element\OLEObject
*
* @coversDefaultClass \PhpOffice\PhpWord\Element\Object
* @coversDefaultClass \PhpOffice\PhpWord\Element\OLEObject
* @runTestsInSeparateProcesses
*/
class ObjectTest extends \PHPUnit\Framework\TestCase
@ -31,9 +31,9 @@ class ObjectTest extends \PHPUnit\Framework\TestCase
public function testConstructWithSupportedFiles()
{
$src = __DIR__ . '/../_files/documents/reader.docx';
$oObject = new Object($src);
$oObject = new OLEObject($src);
$this->assertInstanceOf('PhpOffice\\PhpWord\\Element\\Object', $oObject);
$this->assertInstanceOf('PhpOffice\\PhpWord\\Element\\OLEObject', $oObject);
$this->assertInstanceOf('PhpOffice\\PhpWord\\Style\\Image', $oObject->getStyle());
$this->assertEquals($src, $oObject->getSource());
}
@ -44,9 +44,9 @@ class ObjectTest extends \PHPUnit\Framework\TestCase
public function testConstructWithSupportedFilesLong()
{
$src = __DIR__ . '/../_files/documents/sheet.xls';
$oObject = new Object($src);
$oObject = new OLEObject($src);
$this->assertInstanceOf('PhpOffice\\PhpWord\\Element\\Object', $oObject);
$this->assertInstanceOf('PhpOffice\\PhpWord\\Element\\OLEObject', $oObject);
$this->assertInstanceOf('PhpOffice\\PhpWord\\Style\\Image', $oObject->getStyle());
$this->assertEquals($src, $oObject->getSource());
}
@ -59,7 +59,7 @@ class ObjectTest extends \PHPUnit\Framework\TestCase
public function testConstructWithNotSupportedFiles()
{
$src = __DIR__ . '/../_files/xsl/passthrough.xsl';
$oObject = new Object($src);
$oObject = new OLEObject($src);
$oObject->getSource();
}
@ -69,9 +69,9 @@ class ObjectTest extends \PHPUnit\Framework\TestCase
public function testConstructWithSupportedFilesAndStyle()
{
$src = __DIR__ . '/../_files/documents/sheet.xls';
$oObject = new Object($src, array('width' => '230px'));
$oObject = new OLEObject($src, array('width' => '230px'));
$this->assertInstanceOf('PhpOffice\\PhpWord\\Element\\Object', $oObject);
$this->assertInstanceOf('PhpOffice\\PhpWord\\Element\\OLEObject', $oObject);
$this->assertInstanceOf('PhpOffice\\PhpWord\\Style\\Image', $oObject->getStyle());
$this->assertEquals($src, $oObject->getSource());
}
@ -82,7 +82,7 @@ class ObjectTest extends \PHPUnit\Framework\TestCase
public function testRelationId()
{
$src = __DIR__ . '/../_files/documents/sheet.xls';
$oObject = new Object($src);
$oObject = new OLEObject($src);
$iVal = rand(1, 1000);
$oObject->setRelationId($iVal);
@ -95,7 +95,7 @@ class ObjectTest extends \PHPUnit\Framework\TestCase
public function testImageRelationId()
{
$src = __DIR__ . '/../_files/documents/sheet.xls';
$oObject = new Object($src);
$oObject = new OLEObject($src);
$iVal = rand(1, 1000);
$oObject->setImageRelationId($iVal);

View File

@ -70,7 +70,7 @@ class SectionTest extends \PHPUnit\Framework\TestCase
'PageBreak',
'Table',
'ListItem',
'Object',
'OLEObject',
'Image',
'Title',
'TextRun',

View File

@ -44,7 +44,7 @@ class ElementTest extends \PHPUnit\Framework\TestCase
{
$elements = array(
'CheckBox', 'Container', 'Footnote', 'Image', 'Link', 'ListItem', 'ListItemRun',
'Object', 'PreserveText', 'Table', 'Text', 'TextBox', 'TextBreak', 'Title', 'TOC',
'OLEObject', 'PreserveText', 'Table', 'Text', 'TextBox', 'TextBreak', 'Title', 'TOC',
'Field', 'Line', 'Shape', 'Chart', 'FormField', 'SDT', 'Bookmark',
);
foreach ($elements as $element) {