Versio

Static class/methods vraagje

Overzicht Reageren

Niek Ha

Niek Ha

16/01/2010 12:08:00
Quote Anchor link
Goedemorgen PHPers!

Zoals meerdere van jullie ben ik bezig met php en wel volledig OO te programmeren.

Nu zat ik te denken om een $_SESSION["username"] en overige gegevens in 1 klasse te stoppen en daar te controleren op geldigheid enzo.

Nu wil ik in andere klasses ook de username aanroepen. Maar dit wil ik niet met $_SESSION ophalen, maar via die klasse hierboven beschreven.

Is het verstandig om de klasse static te maken zodat je een methode gelijk kan aanroepen zonder dat je een nieuw object van die klasse aanmaakt. Of is het toch verstandiger om steeds een nieuw object aan te maken van die klasse om die username op te halen?

Ik ben er nu niet mee aan het scripten, zat gewoon eens te denken.
 
PHP hulp

PHP hulp

25/05/2012 18:38:18
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Joren de Wit
Beheerder

Joren de Wit

16/01/2010 12:45:00
Quote Anchor link
Je moet goed letten op het verschil tussen static properties en normale properties. Elk object (instantie van een class) heeft in principe zijn eigen eigenschappen. In het geval van een session class zou het dus niet wenselijk zijn om iedere keer een nieuw object aan te maken aangezien de properties (sessievariabelen) dan ook anders zullen zijn.

Static properties daarentegen zijn eigenschappen van de class (en niet van het object). Deze zijn direct benaderdbaar zonder een instantie van die class aan te maken. Maar in dit geval zou de class niets meer zijn dan een extra laag om je sessievariabelen heen en zou ik het gebruik dus niet aanraden.

Als je een class schrijft of je sessies af te handelen, moet je dat niet zien als een grote bak waar je al je sessievariabelen in gooit. Nee, deze vangt dan alle handelingen met betrekking tot sessies, zoals wegschrijven en ophalen, op. Kijk hiervoor eens naar verschillende voorbeelden van session handlers die op internet te vinden zijn.
 
Niek Ha

Niek Ha

16/01/2010 15:01:00
Quote Anchor link
Oke bedankt voor de info!
Ik heb nog niet gekeken naar handlers dat ga ik zeker wel even doorlezen. Hoe word dit in grote cms systemen opgelost, ook door handlers of zijn er nog andere manieren?
 
Joren de Wit
Beheerder

Joren de Wit

16/01/2010 16:05:00
Quote Anchor link
In de meeste gevallen waarschijnlijk gewoon de session handler van PHP zelf. Je hoeft namelijk niet per se een aparte session handler te gebruiken, die van PHP voldoet in de meeste gevallen...
 



Overzicht Reageren