Hallo,

Ik heb een tijdje terug een beheersysteem gemaakt in procedural PHP code.
Nu zou ik dit graag willen omzetten in OO code, aangezien ik het systeem voor meerdere gebruikers wil opzetten, en dus ook toekomstgericht een ordelijk systeem wil hebben.

Ik ben nog niet zo lang bezig met het leren van OOP, maar ik ken wel de basisprincipes.

Wat ik nu wel al zeker weet, is dat het niet makkelijk is om een bepaalde blueprint te schetsen van de nodige classes en methods.
Ik heb veel moeite met het afwegen of ik van iets een class moet maken, of een method in een meer algemene class.

Een voorbeeld hiervan: inloggen.
Kan ik hier best een Login {} class (en file) van maken?
Of zou ik beter een User {} class maken, met een method login() {} ?

In mijn systeem werk ik voornamelijk met tabellen die gegevens bevatten.
Dit vind ik makkelijker om te plaatsen, namelijk een aparte class Table {}, met bijhorende methods.

Het is voor mijn systeem dan ook belangrijk dat ik voor elke User verschillende resultaten kan genereren, maar dat spreekt voor zich.
Kan ik hieruit afleiden dat class User {} één van mijn voornaamste classes gaat zijn?

Alvast bedankt!
Alle methods zijn toch in te delen in welk onderdeel het gebruikt wordt?
Zo is login() een onderdeel van een inlog/sessie class.

Lees ook eens dit:
http://phptuts.nl/view/45/
offtopic: Algemene structuur beheersysteem
Eerst een topic waarin Write Down een paar maanden geleden aan hetzelfde grote project begon als hij, daarin heb ik al enorm veel uitgelegd en geef ik ook een best wel uitgebreid voorbeeld die je kan downloaden. Zie dat topic hier: http://www.phphulp.nl/php/forum/topic/ontwerpen-usermanagement/85413/ (zie ook de andere OO topics van Write Down)

Dan inkomen op je vraag:
Wat we met login doen is altijd een groot discussiepunt. Jelmer heeft het ooit eens goed uitgelegd waarom je User en Login klassen zou moeten scheiden: http://www.phphulp.nl/php/forum/topic/starten-met-oop/74690/2/#530213

Ik gebruik veel datamappers om de User te koppelen aan een Database en andersom. Deze datamapper geef ik dan ook een functie login en logout mee, onder de noemer KISS (Keep It Simple Stupid). Dit is ong. gelijk aan de User_Store klasse van Jelmer.
@Albert de Wit: Aangepast, bedankt.

@- Aar -: Bedankt voor de zeer duidelijke tutorial, heb em helemaal gelezen.

Ik ga zelf nog wat experimenteren..

@Wouter: In dat topic heb je inderdaad zeer veel uitgelegd (wat ik zeker kan gebruiken!), maar voor nu was mijn probleem eigenlijk alleen "het geheel in classes zien".

Voor het gebruik bijvoorbeeld:


<?php
	
	require_once('classes/database.class.php');
	
	$db = new Database('host', 'dbname', 'username', 'password');
	
	require_once('classes/login.class.php');
	
	$login = new Login('?');
	$login->checkRights(1);
	
	require_once('classes/user.class.php');
	
	$user = new User('?');
	$username = $user->getName();
	
?>


Maar zoals ik al zei, ik ga eerst nog wat verder experimenteren.
Je kunt ook eens mijn OO serie lezen: wouterj.nl/serie/orienteer-je-in-objecten/
Leuke site! Ga het zeker eens doornemen, merci!
Om hier nog even op terug te komen.. Ik heb mijn overzicht geschetst (zie afbeelding), maar ik moet dus telkens op iedere pagina, voor iedere user, een controle doen op mijn mysql server. En de opgeslagen inhoud op iedere pagina, van iedere user, ophalen op ieder hun server.

Ik zit dus op iedere pagina met twee database connecties (lees server connecties).
Aangezien ik alle users op één plek wil kunnen beheren, lijkt het me niet mogelijk om dit anders te doen, toch?

Wat vinden jullie ervan?

Xaboteur, hoe maak je zo'n plaatje?
Ik heb dat met het SimpleMind Free programma gedaan. Voor Mac OS X.
Maar er zullen vast betere Mindmap apps zijn.
ah oke... geinig :)

[size=xsmall]Toevoeging op 20/10/2012 16:19:54:[/size]

kwist niet dat mindmap softwrae bestond :)

Reageren