Mojavi 2.0 PHP4 Problem with object storage

Mojavi 2.0 PHP4 Problem with object storage

am 08.01.2008 12:51:41 von ezahn

Hello,

I need to store in user session an instance of an OWN class, "Foo",
for example.
Its works inside a single action but the object doesn't "survive"
between two actions (1)
Trying to access this object in the second action display :

Fatal error: Unknown(): The script tried to execute a method or access
a property of an incomplete object. Please ensure that the class
definition "Foo" of the object you are trying to operate on was loaded
_before_ the session was started

Thanks a lot for your help and ideas !

(1)
In the first action :
require_once ('Foo.php');
$foo = new Foo ();
$user->setAttribute ("foo", $foo, "my-user-namespace");

The following ... ok in the first action, but not in a second action
$newfoo = $user->getAttribute ("foo","my-user-namespace");
$newfoo->bar ();

Re: Mojavi 2.0 PHP4 Problem with object storage

am 08.01.2008 13:14:18 von luiheidsgoeroe

On Tue, 08 Jan 2008 12:51:41 +0100, ezahn wrote=
:

> Hello,
>
> I need to store in user session an instance of an OWN class, "Foo",
> for example.
> Its works inside a single action but the object doesn't "survive"
> between two actions (1)
> Trying to access this object in the second action display :
>
> Fatal error: Unknown(): The script tried to execute a method or access=

> a property of an incomplete object. Please ensure that the class
> definition "Foo" of the object you are trying to operate on was loaded=

> _before_ the session was started
>
> Thanks a lot for your help and ideas !
>
> (1)
> In the first action :
> require_once ('Foo.php');
> $foo =3D new Foo ();
> $user->setAttribute ("foo", $foo, "my-user-namespace");
>
> The following ... ok in the first action, but not in a second action
> $newfoo =3D $user->getAttribute ("foo","my-user-namespace");
> $newfoo->bar ();

1. Be sure you have loaded the class definition before session_start(), =
do =

NOT trust __autoload().
2. References won't survive serialisation (which is how most sessions ar=
e =

stored).
3. Look at the manual regarding objects & serialisation (and their =

associated magic methods..)
-- =

Rik Wasmus

[Resolved] Re: Mojavi 2.0 PHP4 Problem with object storage

am 08.01.2008 15:24:44 von ezahn

On 8 jan, 12:51, ezahn wrote:
> Hello,
>
> I need to store in user session an instance of an OWN class, "Foo",
> for example.
> Its works inside a single action but the object doesn't "survive"
> between two actions (1)
> Trying to access this object in the second action display :
>
> Fatal error: Unknown(): The script tried to execute a method or access
> a property of an incomplete object. Please ensure that the class
> definition "Foo" of the object you are trying to operate on was loaded
> _before_ the session was started
>
> Thanks a lot for your help and ideas !
>
> (1)
> In the first action :
> require_once ('Foo.php');
> $foo = new Foo ();
> $user->setAttribute ("foo", $foo, "my-user-namespace");
>
> The following ... ok in the first action, but not in a second action
> $newfoo = $user->getAttribute ("foo","my-user-namespace");
> $newfoo->bar ();

Re: Mojavi 2.0 PHP4 Problem with object storage

am 08.01.2008 15:40:46 von ezahn

On 8 jan, 13:14, "Rik Wasmus" wrote:
> On Tue, 08 Jan 2008 12:51:41 +0100, ezahn wrote:
> > Hello,
>
> > I need to store in user session an instance of an OWN class, "Foo",
> > for example.
> > Its works inside a single action but the object doesn't "survive"
> > between two actions (1)
> > Trying to access this object in the second action display :
>
> > Fatal error: Unknown(): The script tried to execute a method or access
> > a property of an incomplete object. Please ensure that the class
> > definition "Foo" of the object you are trying to operate on was loaded
> > _before_ the session was started
>
> > Thanks a lot for your help and ideas !
>
> > (1)
> > In the first action :
> > require_once ('Foo.php');
> > $foo = new Foo ();
> > $user->setAttribute ("foo", $foo, "my-user-namespace");
>
> > The following ... ok in the first action, but not in a second action
> > $newfoo = $user->getAttribute ("foo","my-user-namespace");
> > $newfoo->bar ();
>
> 1. Be sure you have loaded the class definition before session_start(), do
> NOT trust __autoload().
> 2. References won't survive serialisation (which is how most sessions are
> stored).
> 3. Look at the manual regarding objects & serialisation (and their
> associated magic methods..)
> --
> Rik Wasmus

Yes, it works better with the "include" before the session_start
(arggh sorry !) and without references ... Thanks a lot !:-)