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

Reply via email to