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 - php: 5.6
env: COVERAGE=1 env: COVERAGE=1
allow_failures: allow_failures:
<<<<<<< HEAD
=======
- php: 7.0
- php: 7.1
>>>>>>> branch 'php72_support_object_classes' of https://github.com/SailorMax/PHPWord
- php: 7.2 - php: 7.2
cache: cache:

View File

@ -37,7 +37,8 @@ This version brings compatibility with PHP 7.0 & 7.1
### Fixed ### Fixed
- Loosen dependency to Zend - Loosen dependency to Zend
- Images are not being printed when generating PDF - @hubertinio #1074 #431 - 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 Word 97 reader - @alsofronie @Benpxpx @mario-rivera #912 #920 #892
- Fixed image loading over https - @troosan #988 - Fixed image loading over https - @troosan #988
- Impossibility to set different even and odd page headers - @troosan #981 - 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 PageBreak addPageBreak()
* @method Table addTable(mixed $style = null) * @method Table addTable(mixed $style = null)
* @method Image addImage(string $source, mixed $style = null, bool $isWatermark = false) * @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 TextBox addTextBox(mixed $style = null)
* @method Field addField(string $type = null, array $properties = array(), array $options = array(), mixed $text = null) * @method Field addField(string $type = null, array $properties = array(), array $options = array(), mixed $text = null)
* @method Line addLine(mixed $lineStyle = null) * @method Line addLine(mixed $lineStyle = null)
@ -87,7 +87,7 @@ abstract class AbstractContainer extends AbstractElement
); );
$functions = array(); $functions = array();
foreach ($elements as $element) { foreach ($elements as $element) {
$functions['add' . strtolower($element)] = $element; $functions['add' . strtolower($element)] = $element == 'Object' ? 'OLEObject' : $element;
} }
// Run valid `add` command // Run valid `add` command
@ -193,7 +193,7 @@ abstract class AbstractContainer extends AbstractElement
'Link' => $generalContainers, 'Link' => $generalContainers,
'TextBreak' => $generalContainers, 'TextBreak' => $generalContainers,
'Image' => $generalContainers, 'Image' => $generalContainers,
'Object' => $generalContainers, 'OLEObject' => $generalContainers,
'Field' => $generalContainers, 'Field' => $generalContainers,
'Line' => $generalContainers, 'Line' => $generalContainers,
'Shape' => $generalContainers, 'Shape' => $generalContainers,

View File

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

View File

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

View File

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

View File

@ -181,7 +181,7 @@ class CellTest extends \PHPUnit\Framework\TestCase
$element = $oCell->addObject($src); $element = $oCell->addObject($src);
$this->assertCount(1, $oCell->getElements()); $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; 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 * @runTestsInSeparateProcesses
*/ */
class ObjectTest extends \PHPUnit\Framework\TestCase class ObjectTest extends \PHPUnit\Framework\TestCase
@ -31,9 +31,9 @@ class ObjectTest extends \PHPUnit\Framework\TestCase
public function testConstructWithSupportedFiles() public function testConstructWithSupportedFiles()
{ {
$src = __DIR__ . '/../_files/documents/reader.docx'; $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->assertInstanceOf('PhpOffice\\PhpWord\\Style\\Image', $oObject->getStyle());
$this->assertEquals($src, $oObject->getSource()); $this->assertEquals($src, $oObject->getSource());
} }
@ -44,9 +44,9 @@ class ObjectTest extends \PHPUnit\Framework\TestCase
public function testConstructWithSupportedFilesLong() public function testConstructWithSupportedFilesLong()
{ {
$src = __DIR__ . '/../_files/documents/sheet.xls'; $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->assertInstanceOf('PhpOffice\\PhpWord\\Style\\Image', $oObject->getStyle());
$this->assertEquals($src, $oObject->getSource()); $this->assertEquals($src, $oObject->getSource());
} }
@ -59,7 +59,7 @@ class ObjectTest extends \PHPUnit\Framework\TestCase
public function testConstructWithNotSupportedFiles() public function testConstructWithNotSupportedFiles()
{ {
$src = __DIR__ . '/../_files/xsl/passthrough.xsl'; $src = __DIR__ . '/../_files/xsl/passthrough.xsl';
$oObject = new Object($src); $oObject = new OLEObject($src);
$oObject->getSource(); $oObject->getSource();
} }
@ -69,9 +69,9 @@ class ObjectTest extends \PHPUnit\Framework\TestCase
public function testConstructWithSupportedFilesAndStyle() public function testConstructWithSupportedFilesAndStyle()
{ {
$src = __DIR__ . '/../_files/documents/sheet.xls'; $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->assertInstanceOf('PhpOffice\\PhpWord\\Style\\Image', $oObject->getStyle());
$this->assertEquals($src, $oObject->getSource()); $this->assertEquals($src, $oObject->getSource());
} }
@ -82,7 +82,7 @@ class ObjectTest extends \PHPUnit\Framework\TestCase
public function testRelationId() public function testRelationId()
{ {
$src = __DIR__ . '/../_files/documents/sheet.xls'; $src = __DIR__ . '/../_files/documents/sheet.xls';
$oObject = new Object($src); $oObject = new OLEObject($src);
$iVal = rand(1, 1000); $iVal = rand(1, 1000);
$oObject->setRelationId($iVal); $oObject->setRelationId($iVal);
@ -95,7 +95,7 @@ class ObjectTest extends \PHPUnit\Framework\TestCase
public function testImageRelationId() public function testImageRelationId()
{ {
$src = __DIR__ . '/../_files/documents/sheet.xls'; $src = __DIR__ . '/../_files/documents/sheet.xls';
$oObject = new Object($src); $oObject = new OLEObject($src);
$iVal = rand(1, 1000); $iVal = rand(1, 1000);
$oObject->setImageRelationId($iVal); $oObject->setImageRelationId($iVal);

View File

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

View File

@ -44,7 +44,7 @@ class ElementTest extends \PHPUnit\Framework\TestCase
{ {
$elements = array( $elements = array(
'CheckBox', 'Container', 'Footnote', 'Image', 'Link', 'ListItem', 'ListItemRun', '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', 'Field', 'Line', 'Shape', 'Chart', 'FormField', 'SDT', 'Bookmark',
); );
foreach ($elements as $element) { foreach ($elements as $element) {