For Programmers: Free Programming Magazines  


Home > Archive > PHP Documentation > May 2005 > #24670 [NoF]: defining __call requires __sleep for serialize/session









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author #24670 [NoF]: defining __call requires __sleep for serialize/session
lsmith@php.net

2005-05-30, 8:56 am

ID: 24670
Updated by: lsmith@php.net
Reported By: tater at potatoe dot com
Status: No Feedback
Bug Type: Documentation problem
Operating System: OS X 10.2
PHP Version: Irrelevant
-Assigned To:
+Assigned To: dmitry
New Comment:

this seems to be a dupe of #30791


Previous Comments:
------------------------------------------------------------------------

[2005-04-22 01:00:03] phpdoc at lists dot php dot net

No feedback was provided for this bug for over a w, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".

------------------------------------------------------------------------

[2005-04-14 10:23:31] vrana@php.net

It seems that classes with __call or __sleep (!) methods simply can't
be serialized (serialize() returns "N;" for them). If you can reproduce
it, please change the Category of this bug to Zend Engine 2 problem.

And fill in your PHP Version, please.

------------------------------------------------------------------------

[2005-04-01 13:52:48] maka3d at yahoo dot com dot br

Does there is a workaround to this?
I did some tests but didn't work?
I thought it would be fixed until 5.0.4

------------------------------------------------------------------------

[2004-05-17 23:28:58] magicking89 at hotmail dot com

I have the same problem with PHP5 RC2 on Mac Os X 10.2 It's a real
problem because I must to close socket with __sleep but it doesn't work
correctly...

------------------------------------------------------------------------

[2003-07-16 01:07:06] tater at potatoe dot com

Description:
------------
If you create a __call() method for a class, and then try to serialize
it yourself, or store an object of that class in $_SESSION, you need to
either explicitly define a __sleep() method as well, or make sure that
__call() will respond appropriately. Otherwise serialize() will
complain. It seems unlikely that this is a bug, though I suppose it
might be a feature request. So it should just be spelled out in the
documentation for __call() when that gets written.

Reproduce code:
---------------
class foo { function __call() { return; } }
$a = new foo;
serialize($a);

Expected result:
----------------
n/a

Actual result:
--------------
n/a


------------------------------------------------------------------------


--
Edit this bug report at http://bugs.php.net/?id=24670&edit=1
Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com