Skip to content

Fix that style objects cannot be passed to element constructors #2685

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

hazington
Copy link
Contributor

@hazington hazington commented Sep 22, 2024

Description

I generally prefer to use style objects over style arrays in elements. But, if you pass a \PhpOffice\PhpWord\Style\Cell style element to the \PhpOffice\PhpWord\Element\Cell constructor then the $returnObject: true argument of the setNewStyle() method in the constructor completely ignores the passed style element, because the setNewStyle() method only checks if $styleValue is an array and returns $styleObject as empty style object otherwise. Imho, if $styleValue is a style object with the same type as $styleObject then the $returnObject: true should also be "ignored" and the passed style object should then be returned instead of the empty base style object.

Fixes # (issue)

Checklist:

  • My CI is 🟢
  • I have covered by unit tests my new code (check build/coverage for coverage report)
  • I have updated the documentation to describe the changes (not applicable, bugfix did not change the behavior)
  • I have updated the changelog

…NewStyle() method could not return style objects as value arguments, when $returnObject is true, like in the Cell element.
@hazington hazington changed the title Ensured that mt_rand() is passed as string to md5. Fixed that the set… Fix that style objects cannot be passed to elements Sep 22, 2024
@coveralls
Copy link

coveralls commented Sep 22, 2024

Coverage Status

coverage: 96.918%. remained the same
when pulling 15e69a6 on hazington:patch-abstract-element
into 43785fe on PHPOffice:master.

@hazington
Copy link
Contributor Author

It took me a while to find the cause of the phpstan errors. Never imagined that there would be such a long list of ignored errors.

@hazington hazington changed the title Fix that style objects cannot be passed to elements Fix that style objects cannot be passed to element constructors Sep 22, 2024
@hazington
Copy link
Contributor Author

@Progi1984 Is there a chance to look over this pull request? I see that PhpWord transforms to a strict typed library and thus elements should accept style objects. This is also necessary for a better html to word implementation. At the moment you can't pass style objects since they are ignored.

@hazington
Copy link
Contributor Author

@Progi1984 ?

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants