Bug #66473

Cannot create object implementing Serializable on PHP 5.6

Added by Mathias Brodala over 6 years ago. Updated almost 4 years ago.

Status:
Closed
Priority:
Must have
Category:
Extbase
Target version:
Start date:
2015-04-17
Due date:
% Done:

100%

Estimated time:
TYPO3 Version:
7
PHP Version:
5.6
Tags:
Complexity:
Is Regression:
No
Sprint Focus:
Stabilization Sprint

Description

Starting with PHP 5.6 classes implementing the Serializable interface are represented as C instead of O in the serialized output.

The Container::getEmptyObject method which creates objects with the unserialize hack to avoid calling the constructor thus yields an error like this:

Warning: Erroneous data format for unserializing 'Foo' in ...
Notice: unserialize(): Error at offset 13 of 15 bytes in ...

Starting with PHP 5.4 this usecase can be dealt with by ReflectionClass::newInstanceWithoutConstructor

This also needs to fixed for TYPO3 6.2 though which supports PHP 5.3, in which case checking for the Serializable interface and using C instead of O could work.


Related issues

Related to TYPO3 Core - Bug #66468: TYPO3 6.2 will live longer than PHP 5.5 but is not compatible with PHP 5.6Rejected2015-04-17

Actions
Related to TYPO3 Core - Task #66911: Travis: Verify no git submodule existsClosed2015-05-12

Actions
Related to TYPO3 Core - Bug #67272: initializeObject() not called for Extbase Domain ModelClosed2015-06-03

Actions
Related to TYPO3 Core - Bug #67402: Document "__wakeup" no longer called in AbstractDomainObjects as breaking (?)ClosedChristian Kuhn2015-06-10

Actions
Related to TYPO3 Core - Bug #67408: Nail down php 5.6 instantiation issues in testsClosed2015-06-11

Actions
Related to TYPO3 Core - Bug #66482: Extbase persistence layer fails to create empty objects in PHP 5.6.Closed2015-04-19

Actions
Related to TYPO3 Core - Task #72112: travis-ci: PHP 5.6 not allowed_failure anymoreClosed2015-12-08

Actions

Also available in: Atom PDF