Is het mogelijk om een class object te hergebruiken in een volgende pagina ?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Davy Carmans

Davy Carmans

14/06/2013 09:30:02
Quote Anchor link
Stel, je hebt een tool waarbij je meerdere pagina's doorloopt om tot een resultaat te komen.
In 3de stap maak je via een "class" een "object" aan.
Kan je deze objecten in een volgende stap (bv stap 6) hergebruiken ? Dus m.a.w. laten onthouden in het geheugen ?
 
PHP hulp

PHP hulp

17/11/2024 16:38:35
 
Ozzie PHP

Ozzie PHP

14/06/2013 09:44:11
Quote Anchor link
Je kunt het onthouden door het op te slaan in een sessie.
 
Davy Carmans

Davy Carmans

14/06/2013 10:03:05
Quote Anchor link
Dus m.a.w. gewoon het "object" in een $_SESSION variabele steken ?
Ik zal het eens testen... :-)

Toevoeging op 14/06/2013 10:14:09:

Heb net geprobeerd, maar loopt ergens mis. Hoe moet ik het object in de sessie steken ?
Ik heb geprobeerd met

$_SESSION['prijsObj'] = $prijs;

Maar $prijs is natuurlijk ook een soort van array want er zit bv een $prijs['Vullen'] in enzovoort...

Hoe krijg ik deze "objecten" dan in de sessie ?
 
Rowdy Klijnsmit

Rowdy Klijnsmit

14/06/2013 11:50:23
Quote Anchor link
je kan ook natuurlijk cookies gebruiken ??
 
Davy Carmans

Davy Carmans

14/06/2013 13:04:32
Quote Anchor link
Daar ben ik niet zo'n voorstander van.
 
Koen Vlaswinkel

Koen Vlaswinkel

14/06/2013 13:09:33
Quote Anchor link
Je moet serialize en unserialize gebruiken. Daarmee zou het wel moeten lukken.

Als je zelf controle erover wilt hebben, kan je de functies __sleep en __wakeup toevoegen aan de class toevoegen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
class User {
    public $name;
    public $password;
}


session_start()

// voor opslaan
$user = new User();
$user->name = "Test";
$user->password = "welkom";

$_SESSION['user'] = serialize($user);

// bij volgende request
$user = unserialize($_SESSION['user']);
echo $user->name;
 
Ozzie PHP

Ozzie PHP

14/06/2013 15:22:48
Quote Anchor link
Zoals Koen zegt (alhoewel ik niet met public properties zou werken, maar dat is weer een ander verhaal...)
 
Koen Vlaswinkel

Koen Vlaswinkel

14/06/2013 15:30:20
Quote Anchor link
Ozzie PHP op 14/06/2013 15:22:48:
Zoals Koen zegt (alhoewel ik niet met public properties zou werken, maar dat is weer een ander verhaal...)

Ik werk normaal ook niet met public properties, maar ik typte dit even vanuit de losse hand en dan zou ik ook weer getters en setters moeten gaan schrijven, daar had ik even geen zin. Als ik gewoon in mijn eigen editor zou hebben geschreven, had ik wel private/protected properties toegevoegd met getters en setters, daar is het namelijk binnen 10 seconden gebeurd.
 
Ozzie PHP

Ozzie PHP

14/06/2013 16:07:20
Quote Anchor link
@Koen: okeej ;-)
 
Davy Carmans

Davy Carmans

14/06/2013 21:38:26
Quote Anchor link
Thanks allemaal ! Het heeft gewerkt met de serialize ...

Is dit trouwens best practice om in het begin van een tool alles in objecten te steken en dan doorheen alle pagina's te gebruiken op deze manier ?

Toevoeging op 14/06/2013 21:39:01:

Koen, over welke editor spreek je hier eigenlijk ?
 
Koen Vlaswinkel

Koen Vlaswinkel

14/06/2013 21:49:21
Quote Anchor link
Ik gebruik een trial van Sublime Text 2 met PHP snippets, specifiek php-getset. Dat voer ik in en dan hoef ik alleen nog maar de variabele in te voeren, makkelijker kan (bijna) niet!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.