The version of iCalcreator required by this module is not PHP 7 compatible, because it uses class constructors with the same name as the class.
Not sure how to resolve this, since we can't upgrade to a newer version of the library. Or can we?
| Comment | File | Size | Author |
|---|---|---|---|
| #14 | date_ical-library_update-2707373-14-D7.patch | 1.37 KB | liam morland |
| #6 | iCalcreator-php-7-2707373-6.patch | 3.04 KB | joelstein |
| #2 | iCalcreator-php-7-2707373-2.patch | 2.79 KB | joelstein |
Comments
Comment #2
joelstein commentedAt the very least, here's a patch you can apply to the iCalcreator library for PHP 7 support.
Comment #3
coredumperror commentedWe can't upgrade to a newer version of the library without needing to also make significant changes to the Feeds import code. If anyone wants to put in the work to figure out what changes need to be made, mostly having to do with the way date_ical's code accesses member attributes that have been renamed/protected in the new version, I'd be happy to accept the patch. But my team isn't going to be using PHP 7, so my boss won't give me any cycles to work on this myself.
Comment #4
joelstein commentedUnderstood. Perhaps in the meantime you could add something to the README file pointing to this patch?
Comment #5
coredumperror commentedGood idea.
Comment #6
joelstein commentedHere's an updated patch with one constructor I missed.
Comment #7
geek-merlinCurrent ICalCreator 2.24 has this fixed.
https://github.com/iCalcreator/iCalcreator/tree/v2.24
Anyone tested if this is interoperable with us?
EDIT: Ups, #3 says: NO.
Comment #8
bkosborneI don't think it makes sense to mark this as postponed. The maintainer invited others to contribute fixes to make the module completely compatible with the latest version of iCalcreator - we should leave this issue active to help others find it.
For those that want to use the patch from #6 and are using a make file for their project, just add this to your make file:
It will overwrite the similar definition from that this module's own make file provides.
Comment #9
liam morlandI have submitted the patch in #6 as pull request on iCalcreator:
https://github.com/iCalcreator/iCalcreator/pull/68
Update: The author of iCalcreator has declined the pull request and apparently does not plan to make iCalcreator 2.20.x compatible with PHP 7.
Comment #10
joseph.olstadhmm, the upstream people didn't respond to our request for 2.20.3
Maybe we should fork iCalcreator and make a release, then update our documentation?
Comment #11
liam morlandThat makes sense to me.
Update: I have tagged the existing pull request:
https://github.com/lkmorlan/iCalcreator/releases/tag/v2.20.3
Comment #12
liam morlandMy fork of iCalcreator 2.20.x now supports PHP 7.4 in version 2.20.4.
https://github.com/lkmorlan/iCalcreator/releases/tag/v2.20.4
Comment #13
joseph.olstadThanks for the fork! Can you or someone please provide a patch to update the documentation /README.txt ?
Comment #14
liam morlandComment #15
damienmckennaLGTM.
Comment #16
solideogloria commentedI also reviewed the patch and the fork's commits for PHP 7.4 compatibility. +1 LGTM.
Comment #17
joseph.olstadok I will commit patch 14 and make a release very soon thanks for the reviews and the patch
Comment #19
joseph.olstadThanks everyone and especially @Liam Morland for his initiative of forking the iCalcreator library.
Comment #20
joseph.olstadComment #22
joelpittetThanks a lot for forking this @Liam Morland
Anybody using composer to manage the library can do this:
And with a plugin like https://github.com/mnsami/composer-custom-directory-installer you can install it to the libraries directory, or sort out the vendor autoloading.