Algemene structuur beheersysteem
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!
Gewijzigd op 16/10/2012 18:42:47 door Xaboteur X
Zo is login() een onderdeel van een inlog/sessie class.
Lees ook eens dit:
http://phptuts.nl/view/45/
Gewijzigd op 16/10/2012 17:06:31 door - Ariën -
Gewijzigd op 16/10/2012 17:24:27 door Albert de Wit
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.
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: 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.
@- 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:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?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();
?>
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.
Gewijzigd op 16/10/2012 19:10:09 door Xaboteur X
Je kunt ook eens mijn OO serie lezen: wouterj.nl/serie/orienteer-je-in-objecten/
Leuke site! Ga het zeker eens doornemen, merci!
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?
Gewijzigd op 20/10/2012 14:27:44 door Xaboteur X
Xaboteur, hoe maak je zo'n plaatje?
Maar er zullen vast betere Mindmap apps zijn.
Gewijzigd op 20/10/2012 15:55:41 door Xaboteur X
Toevoeging op 20/10/2012 16:19:54:
kwist niet dat mindmap softwrae bestond :)
Is toch best wel bekend, om je ideeën te schetsen of om te brainstormen. :)
k zal het onthouden... wel handig :)
Xaboteur, is elke blok een klasse? En die lijntjes, welke releatie betekend dat?
Thanks voor je aanvulling Wouter.
Login wordt hoogst waarschijnlijk wel een classe ja, inclusief de logincheck.
De gele bubbles moeten een aantal tables voorstellen in mijn database.
Maar hoe ik het wil, volgens bovenstaand schema, moet ik dus telkens twee database connecties gebruiken he?
1. Op elke pagina login controleren met mijn database
2. Ophalen gegevens user (niet-login-gerelateerd) in hun database
Gewijzigd op 20/10/2012 18:42:38 door Xaboteur X
Dat Visual Paradigm is een duur programma Wouter!
http://www.visual-paradigm.com/download/vpuml.jsp?edition=ce
Xaboteur, als het goed is ga je een database klasse maken (met weer verschillende klassen voor verschillende adapters). Die maak je dan 1 keer per request aan en deel je dan met allebei de klassen.
Ozzie, de gratis versie niet :) Xaboteur, als het goed is ga je een database klasse maken (met weer verschillende klassen voor verschillende adapters). Die maak je dan 1 keer per request aan en deel je dan met allebei de klassen.
210 MB om wat vierkantjes te tekenen...... gut, waar gaat het heen met de wereld? Past niet eens op 1 floppy.
Gewijzigd op 20/10/2012 20:07:03 door Wouter J