ID: 39635 Updated by: scott...@php.net Reported By: t dot prochazka at centrum dot cz -Status: Open +Status: Assigned Bug Type: Feature/Change Request Operating System: all PHP Version: 5CVS-2006-11-26 (CVS) -Assigned To: +Assigned To: scottmac New Comment:
Patch already exists, just need to discuss when is the correct time to add it. http://whisky.macvicar.net/patches/php-transient.diff.txt Previous Comments: ------------------------------------------------------------------------ [2009-11-09 15:53:54] tjerkw at gmail dot com Using a transient keyword is better because if we have the following case: class A { $a; $b; } class B extends A { $c function __sleep() { return array("c"); } } now if you serialize b you will not serialize the $a and $b members from class A. So the sleep functions actually changes the encapsulated behaviour of A. Or we should call the superclass A::__sleep() method and join that with the new arrow. However this is much cleaner code. And wether a member is transient or not should be declered nearby the member to keep else other developers may not now wether the member will be serialized or not. ------------------------------------------------------------------------ [2007-01-25 15:54:50] spam at thishell dot com While it is possible to exclude members from serialization using __sleep(), it has downsides: - Using get_object_vars($this) to return the members is extremely slow - Manually maintaining an array with the members is error prone and can be quite some work A transient keyword to exclude members from serialization would make it easier ... ------------------------------------------------------------------------ [2006-11-26 11:40:40] t dot prochazka at centrum dot cz Description: ------------ PHP has no advanced support for serialization. I think, that is problem, that PHP serialize all properties. What about add single keyword (as transient) for property which can't be serializable? Example: class Foo { public $a; public transient $b; } Description of Java transient keyword: http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#78119 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=39635&edit=1