Ontwerpen usermanagement

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Full-stack developer

Als Full-stack developer bij KUBUS houd je je bezig met het ontwikkelen van de (web)applicatie en services van BIMcollab. Samen met je SCRUM team werk je aan zowel de front- als de back-end. Als softwarebedrijf bevindt KUBUS zich in een unieke positie. We bouwen aan onze eigen producten die wereldwijd door tienduizenden gebruikers worden gebruikt. Ons bedrijf heeft precies de juiste grootte: groot genoeg om echt impact te maken in de markt, maar klein genoeg om als individuele ontwikkelaar invloed uit te kunnen oefenen en echt het verschil te kunnen maken. Ons ontwikkelteam bestaat uit ruim 40 ontwikkelaars, testers, scrum

Bekijk vacature »

Front end ontwikkelaar

Functie Het huidige team bestaat uit momenteel uit 5 back end developers verdeeld van senior tot junior. Omdat de gehele front end van applicaties anders gaan insteken zijn ze op zoek naar een ervaren Front end developer die hen kan helpen de juiste keuzes te maken. Je krijgt veel vrijheid om te bepalen hoe je dit wilt ontwikkelen en vrijheid in welke techniek je hiervoor wilt gebruiken. Je zult je dus bezighouden met architectuur, documentatie en natuurlijk ontwikkeling van nieuwe functionaliteiten binnen de verschillende applicaties. natuurlijk heb jij ook mogelijkheden om te sparren binnen het team, maar ze gaan uit

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Medior/senior Python developer

Functie Bedrijven komen bij deze organisatie om technische vraagstukken op te lossen en hierin ook tot oplossingen te komen waar ze zelf misschien niet aan gedacht hadden. Jij gaat vanuit je ervaring dus niet alleen hands-on aan de slag met het ontwikkelen, maar zult ook zeker adviseren en proactief meedenken met de klant. Er zijn meerdere lange en/of korte projecten en het type klanten is heel uiteenlopend. Zo kun je terecht komen in een multidisciplinair scrumteam waarin je als Python developer meewerkt, of juist voor een kleiner (Greenfield) project aan de slag gaan waarin je veel breder bezig bent. Door

Bekijk vacature »

Lead developer

Functie Als lead developer wordt jij verantwoordelijk voor een van onze development teams. Samen met de Software Architect bewaak jij de kwaliteit en uitvoering van onze complexe vraagstukken. Daarnaast ben jij verantwoordelijk voor het inschatten, designen en ontwikkelen van middelgrote tot grote veranderingen in de software. Ook coördineer jij het proces rondom complexe technische vraagstukken. Verder bestaat jouw takenpakket uit het volgende: – Het aansturen van jouw development team; – Het begeleiden van Junior Software Engineers; – Het maken van technische analyses m.b.t. nieuwe aanvragen en het tijdsbestek inschatten voor de uitvoering hiervan; – Het uitvoeren van de ontwikkeling van

Bekijk vacature »

Java developer

Als Java Developer bij Sogeti ben je onderdeel van onze toonaangevende community die bestaat uit ruim 100 gepassioneerde professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze klanten. Geen werkdag is hetzelfde, je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfskritische systemen. Een voorbeeld hiervan is een cliënt-volgsysteem bij Reclassering Nederland. Andere klanten waar wij onder andere voor werken: KPN, Philips, Nationale-Nederlanden, Kamer van Koophandel, ABN AMRO, Bovemij, Arval en de Politie. Werken bij Sogeti Nieuwe ontwikkelingen volgen we op de voet en delen we binnen de

Bekijk vacature »

Senior Front-End Developer

As a Senior Front-end Developer you maintain the balance between creativity and functionality for our webshop, and you coach your fellow developers. How do I become a Senior Front-End Developer at Coolblue? As a Front-end Developer you work on the user-friendliness of our webshop for millions of customers. You enjoy working with the UX Designer to pick up stories. You get energy from coming up with creative solutions and are happy to present this within the team. You are also proud of your work and welcome all feedback. Would you also like to become a Senior Front-End Developer at Coolblue?

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Back end developer Digital Agency

Functie Wij zijn van origine een wordpress bureau, maar sinds 2006 zijn wij dit wel redelijk ontgroeid. Naar mate de jaren verstreken zijn we gegroeid in omvang, maar ook in de complexiteit van opdrachten waarin wij onze klanten kunnen bedienen. Momenteel bestaat onze organisatie uit 4 front end developers, 12 back end developer 3 projectmanagers en een 2 koppig management. Wij zijn een hele informele, bijna familiaire organisatie. Geen strak pak of overhemd, nee gewoon dragen waar jij je prettig bij voelt. De gemiddelde leeftijd ligt tussen de 25 en 30 en wij doen er veel aan om onze hechte

Bekijk vacature »

Fullstack Developer

Functieomschrijving Voor een erkende werkgever in regio Etten-Leur zijn wij op zoek naar een Fullstack Developer met PHP/Laravel ervaring. Je gaat aan de slag met het bouwen van maatwerk software voor klanten die actief zijn in een specifieke markt. Als fullstack developer ben je samen met een enthousiast team van 7 collega’s verantwoordelijk voor de ontwikkeling, beheer en innovatie van informatiesystemen voor klanten in een specifieke branche. Verder ondersteun je complexe uitdagingen van klanten. Je brengt hun wensen in kaart en vertaalt deze door naar maatwerk software. Ervaring met Laravel is een must. Om de klant zo goed mogelijk te

Bekijk vacature »

Fullstack developer

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en zou jij graag bij een platte maar informele organisatie werken? Voor een mooi softwarebedrijf in omgeving Alblasserdam zijn wij op zoek naar versterking op de afdeling Software Development! Als Fullstack react.js developer wordt je bij dit bedrijf onderdeel van de volledige ontwikkeling van requirement tot oplevering! Jouw focus ligt op de front end en alles wat daarbij komt kijken. Je gaat ontwerpen, ontwikkelen, testen en valideren. Je zult voornamelijk werken met React.js en Typescript. Maar ook Javascript, HTML en CSS komen aanbod. Daarnaast zal je ook regelmatig met de back

Bekijk vacature »

Software Developer

Dit ga je doen Je bent verantwoordelijk voor de warehouse applicatie die een integratie heeft met de PLC laag; Je ontwikkelt in C#/.Net; Je bent verantwoordelijk voor het ontwikkelen van interfaces en het visualiseren van componenten; Je denkt mee over het design voor business oplossingen; Je bent verantwoordelijk voor het testen van de gebouwde oplossing. Hier ga je werken Voor een internationale organisatie in de transport zijn wij momenteel op zoek naar een Software Developer. Ze zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van de warehouses. Op dit moment wordt er nog gebruik

Bekijk vacature »

C++ Ontwikkelaar

Functieomschrijving Ben jij als software ontwikkelaar toe aan een nieuwe uitdaging? Dan zoeken wij jou! Voor het maken van de procesbesturingssoftware gebruiken onze projectteams een in C++ en C# geschreven tool. Dit is een gedistribueerd object framework wat alle kernfuncties biedt voor een procesautomatisering. Verder zullen jouw werkzaamheden o.a. bestaan uit: Ontwerpen, programmeren en testen van product aanpassingen; Analyseren van vragen en wensen van gebruikers en deze vertalen naar een functioneel ontwerp; Inzichtelijk maken van voortgang omtrent softwarewerkzaamheden, o.a. door middel van SCRUM; Continu toetsen van het effect van nieuwe releases op andere tools en processen; Implementeren van nieuwe product

Bekijk vacature »

Starter/junior Magento developer gezocht!

Functie Je komt te werken in een zelfsturend team waarin vertrouwen voorop staat en inbreng en ideeën worden gewaardeerd. Ook staat innovatie centraal. Ze bieden jou de mogelijkheid om jezelf door te ontwikkelen. Denk hierbij aan cursussen en een persoonlijk ontwikkelplan. Je komt terecht in het team van momenteel 4 (ervaren) collega’s en zal meewerken aan de doorontwikkeling en nieuwbouw van de Magento platformen van meerdere opdrachtgevers volgens Agile/Scrum. Denk hierbij aan nieuwe functionaliteiten, UX en koppelingen met verschillende back-end systemen. Als starter/junior developer zul je direct begeleid worden door een senior uit het team. Het is van belang dat

Bekijk vacature »

Pagina: « vorige 1 2 3 4 5 volgende »

Write Down

Write Down

29/08/2012 16:20:01
Quote Anchor link
Simpel zal dit inderdaad niet zijn, maar volgens mij wel flexibel. Dan kan ik perfect bepalen welke pagina's welke rechten nodig hebben. Voor de gebruikers van het systeem, lijkt me dit ook prima. Ik kan in de GUI dan door middel van checkboxes laten selecteren wat welke groep mag uitvoeren.

Maar goed, even kijken of mijn idee hoe ik het wil uitwerken volgens de 'regels' van OO zijn. Ik zal dit doen a.d.h.v. een korte bespreking wat de functionaliteit is van elke klasse.

Authentication
De gebruiker inloggen / uitloggen. Uiteraard een paar checks invoegen zoals gebanned om gelijk welke reden. Deze methods geven dan iets terug van geslaagd / niet geslaagd (+reden)

Authorization
Is de ingelogde nog wel wie hij/zij zou moeten zijn? Moet er niet gevraagd worden om opnieuw ingelogd te worden?

Permission
Kijken welke permissies nodig zijn voor deze pagina / opvragen welke permissies de gebruiker heeft.

User
Naam bijhouden, user ID, ... Ik vraag me af wat het verstandigste is, een referentie naar de permission class leggen, of de 'rij' bits opslaan?

UserMapper
Zorgt voor de data uitwisseling tussen database en het user object.
 
PHP hulp

PHP hulp

19/04/2024 10:31:46
 
Wouter J

Wouter J

29/08/2012 16:33:05
Quote Anchor link
De authentication heeft niks te maken met in/uit loggen. De authentication moet per pagina request kijken wie de bezoeker is: is hij ingelogd of is hij anoniem? Hoe heet hij? Ect? De Authentication maakt dus het User object aan.

Vervolgens hebben we de Authorization die gaat kijken welke rechten er nodig zijn om de pagina te bekijken en kijkt of het User object wel die rechten heeft, zoniet => permission denied, zo ja => pagina laten zien.
 
Write Down

Write Down

29/08/2012 17:38:53
Quote Anchor link
Okay Wouter, alleen, je gaat toch niet telkens authentication een user object laten aanmaken? Ik dacht eerder aan het user object te serializen (zie eerder dit topic) en dit in een sessie te plaatsen. (sessie verwerking ga ik wellicht via de database doen)

Overigens, wil ik bij authorization niet altijd dat per definitie een pagina bekeken mag worden of niet. Ik wil ook de mogelijkheid hebben om delen van een pagina niet te tonen. Denk bijvoorbeeld aan een inkomsten module. Deze staat dan gelijk op het controlepaneel, alleen ik wil niet dat een support medewerker dit kan zien. Anderzijds, wil ik hem andere delen van die pagina niet ontzeggen. Maak ik hiervoor best een apparte class aan, of toch ook hier in?

In welke class zou ik dan het inloggen moeten afhandelen?

Toevoeging op 29/08/2012 17:42:09:

Even wel toevoegen dat ik uiteraard authentication wil toepassen, controle is belangrijk. Dus het user object deserializen en nakijken.
 
Wouter J

Wouter J

29/08/2012 17:46:50
Quote Anchor link
Je kan het ook zo doen dat de Authentication kijkt of de sessie bestaat: Zoniet dan wordt de gebruiker geverifieerd en wordt er een User object aangemaakt (die in een sessie wordt geplaatst). Mocht de sessie wel bestaan dan zal de Authentication die User object pakken en kijken of we nog steeds met dezelfde gebruiker te doen hebben.

We praten nu met Authentication en Authorization op pagina (route) niveau. Maar je kunt dit natuurlijk met dezelfde 2 klassen ook toepassen op Controller niveau (de inkomsten module wordt door een andere controller gemaakt dan het controlepanel) of zelfs op een action niveau.

Als je de 2 klassen een beetje snel programmeert kun je het voor elkaar krijgen dat je met 2 klassen (authorization en authentication) op elk niveau voor beveiliging kan zorgen. De Authentication zal je 1 keer aanroepen, als eerste, en de authorization zal je misschien vaker aanroepen (mag de user de pagina zien -> ja, mag de user de inkomstenmodule zien -> nee, enz.)

En het inloggen handel je af met een eigen SecurityController oid. Dit is geen taak van een normaal object, maar zul je 'moeten' afhandelen met een Controller.

Offtopic:
Ik heb geen ervaring met Security regeling. Wat ik je hier vertel is hoe het opgelost wordt in het Symfony Framework.
Ik weet niet wat het doel is van dit experiment, maar ik raad je zeker aan ook eens naar een framework te kijken ZF2, Symfony, CakePHP maakt me niks uit. Dan wordt het een stuk makkelijker voor je.
Mocht je dit als doel hebben OO te leren dan kun je natuurlijk vrolijk verder gaan, je leert er echt goed OO door!
Gewijzigd op 29/08/2012 17:49:26 door Wouter J
 
Write Down

Write Down

29/08/2012 17:52:34
Quote Anchor link
Alweer bedankt voor de reactie!

Maar jij zou dus geen extra klasse Permission maken? Want ik dacht bij authorization controles te doen als, bestaat de sessie nog, is de sessie nog niet vervallen, klopt het IP nog, is de persoon niet op meerdere locaties ingelogd, ... En dan dacht ik emt de Permission klasse effectief na te gaan kijken mag de gebruiker x en y wel doen?

Toevoeging op 29/08/2012 17:56:04:


Offtopic:
In eerste instantie wil ik zelf gewoon een mooie basis uitwerken. Hiermee wil ik dan eigenlijk gelijk welke soort applicatie gaan opbouwen.

Mijn eerste applicatie die ik er werkelijk wil gaan opbouwen is een CMS.

Zelf gebruik ik liever geen framework. Ik wil het liefst alles zelf netjes regelen zoals ik het wil. Ik vind persoonlijk zo'n framework vaak nogal log, en onnodig veel mogelijkheden hebben. Daarom maak ik liever zelf iets, wat ook nog leuk en leerzaam is.
 
Wouter J

Wouter J

29/08/2012 18:04:45
Quote Anchor link
Wat jij wilt met de Authorization is wat je in de Authentication moet doen. Die kijkt wie de gebruiker is, of die nog steeds dezelfde is en dus ook meteen alles van de sessie. Met authorization kijk je wat deze gebruiker mag en of dat gelijk is aan wat er nodig is om iets (pagina, controller, actie) te mogen zien.

Misschien helpt het als ik de worden even vertaal:
Authentication betekend 'verificatie' hierin verifieer je dus de gebruiker, je zorgt dat je een compleet beeld hebt over wie jou bezoeker is.
Authorization betekend 'machtiging'. Je kijkt of die bezoeker die je net helemaal hebt geschetst wel gemachtigd is om iets te bekijken.

Lees anders even deze tutorial: http://symfony.com/doc/current/book/security.html (totaan 'Using a Traditional Login Form' aangezien het vanaf daar over Symfony gaat)
 
Write Down

Write Down

29/08/2012 23:15:48
Quote Anchor link
Rest mij nog een vraag. De permissies in het user object bijhouden of toch maar telkens via de UserMapper ophalen?
 
Write Down

Write Down

04/09/2012 17:52:05
Quote Anchor link
Wegens weinig tijd afgelopen week, ben ik nog niet veel verder geraakt. Vandaag ben ik dan meer weer eens verder gaan nadenken hoe ik nu alles over gebruikers flexibel kan bijhouden.

Op die opzet zou ik graag wat reacties krijgen, bij deze dus het idee.

De User class wil ik beperkt houden. In een User object zou ik het user_id en de permission_group. Ik twijfel nog een beetje of ik de naam hier ga in bij houden of niet.

Daarnaast wil ik een Person class gaan ontwerpen. Deze moet dan een paar basis gegevens bijhouden zoals de voornaam, achternaam, e-mailadres (e.v.t. nog andere andere algemene zaken, zoals geboortedatum e.t.c.). Eveneens een 'lijst' (array) naar Address, Telephone en Note objecten.

Die laatste drie zijn dus ook classes, wat die juist doen lijkt me duidelijk. Uiteraard, voor elke class die ik noem, zal er ook een Mapper zijn.

Wat denken jullie van deze opzet?
 
Wouter J

Wouter J

04/09/2012 18:34:28
Quote Anchor link
Ik zou het User object de Person klasse laten extenden. Verder klinkt het we goed.
 
Write Down

Write Down

04/09/2012 19:03:32
Quote Anchor link
Wouter J op 04/09/2012 18:34:28:
Ik zou het User object de Person klasse laten extenden. Verder klinkt het we goed.


Ik dacht het net omgekeerd te doen. De bedoeling is namelijk dat ik het User object serialize en in de sessie ga stoppen. Dit wil ik dus liefst zo klein mogelijk houden.

Als ik User dus extend, lijkt me dat Person ook zal worden opgenomen?

Toevoeging op 04/09/2012 19:57:29:

Ik denk dat ik de oplossing al weet, dadelijk even testen. Eerst eten, ik kom straks terug bij jullie!

Toevoeging op 04/09/2012 22:35:05:

Om er even op terug te komen, mijn idee werkt dus. Even wat test code geschreven:

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
19
20
21
22
23
24
25
26
27
<?php
class Person {
    private $firstName;
    private $lastName;
    private $email;
    
    function
__construct($firstName, $lastName, $email) {
        $this->firstName = $firstName;
        $this->lastName = $lastName;
        $this->email = $email;
    }


    
    public function getFirstName() {
        return $this->firstName;
    }


    public function getLastName() {
        return $this->lastName;
    }


    public function getEmail() {
        return $this->email;
    }

}

?>


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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
class User extends Person implements Serializable {
    private $id;
    private $permissions_group;
    
    public function __construct(Person $person, $id, $permissions_group) {
        parent::__construct($person->getFirstName(), $person->getLastName(), $person->getEmail);
        $this->id = $id;
        $this->permissions_group = $permissions_group;
    }


    public function getId() {
        return $this->id;
    }


    public function getPermissions_group() {
        return $this->permissions_group;
    }


        
    public function serialize() {
        return serialize(array(
            'id' => $this->id,
            'perm' => $this->permissions_group
        ));
    }

    
    public function unserialize($serialized) {
        $data = unserialize($serialized);
        $this->id = $data['id'];
        $this->perm = $data['perm'];
    }
}


?>



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
<?php
session_start();
require_once 'Person.php';
require_once 'User.php';

$person = new Person('Write', 'Down', '[email protected]');

$user = new User($person, 7, 1);

echo $user->getFirstName(); //geeft perfect Write

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

?>

Gewijzigd op 04/09/2012 22:43:04 door Write Down
 
Write Down

Write Down

07/09/2012 11:21:53
Quote Anchor link
Ik loop nu bij nader inzien op deze manier toch nog tegen een probleem. Wanneer ik een User object wil maken, ben ik verplicht een Person object aan te maken (of de parameters in te vullen die dat mogelijk maken).

Dit is geen grote ramp, maar toch... Bij het inloggen bijvoorbeeld, heb ik totaal geen behoefte aan de gegevens van een persoon. Toch moet ik deze ophalen, wat dus onnodige queries kost. En nee, deze info wil ik niet gaan opslaan in de sessie, net omdat ik het zo weinig nodig heb.

Daarom overweeg ik het niet Person te extenden, maar User. Alleen weet ik niet of dit echt een goede oplossing is. Het klinkt in elk geval niet erg logisch. Graag jullie raad!
 
Eddy E

Eddy E

07/09/2012 11:27:24
Quote Anchor link
Ik zou Person er alleen bij betrekken als je daadwerkelijk die informatie nodig hebt.
En als User niet hetzelfde is als Person, waarom moeten ze dan 1 op 1 gelinkt worden?

Persoonlijk zou ik user_id en person_id gewoon als relatie beschouwen, maar dan alleen als je dat nodig hebt.
Person extend dus User.

User = id, loginnaam (kan ook email zijn), wachtwoord, sessie en rechten
Person = id, naam, email, leeftijd (en andere profiel-dingen)
 
Write Down

Write Down

07/09/2012 11:31:57
Quote Anchor link
Bedankt voor de reactie Eddy. Ik wacht nog even af op andere reacties. Maar het lijkt me inderdaad een goed plan. Al zijn er misschien nog wel betere oplossingen :-)

Verder heb je het denk ik wel meer over de database kan dan de PHP kant lijkt mij. Want ik zie bijvoorbeeld niet in waarom ik het wachtwoord in een User object zou opslaan.
 
Erwin H

Erwin H

07/09/2012 11:37:10
Quote Anchor link
Write Down op 07/09/2012 11:21:53:
Dit is geen grote ramp, maar toch... Bij het inloggen bijvoorbeeld, heb ik totaal geen behoefte aan de gegevens van een persoon. Toch moet ik deze ophalen, wat dus onnodige queries kost. En nee, deze info wil ik niet gaan opslaan in de sessie, net omdat ik het zo weinig nodig heb.

Waarom moet je die gegevens ophalen?
 
Write Down

Write Down

07/09/2012 11:38:45
Quote Anchor link
Moeten is een groot woord. Ik kan null etc invullen, maar goed. Dan zit ik alsnog met een ongewenst / onnodig object. Als ik het er volledig uit sloop, dan kan ik even goed niet langer extenden.
 
Eddy E

Eddy E

07/09/2012 11:54:48
Quote Anchor link
Write Down op 07/09/2012 11:31:57:
Want ik zie bijvoorbeeld niet in waarom ik het wachtwoord in een User object zou opslaan.


Omdat een user/gebruiker moet kunnen inloggen met een wachtwoord?
Die hoef/mag je uiteraard niet opslaan in een sessie, maar om te wijzigen etc wel.
Was ook maar een voorbeeld: wellicht logged_in BOOLEAN is beter ;).
 
Erwin H

Erwin H

07/09/2012 11:55:05
Quote Anchor link
Nu ik er wat beter naar kijk zit er uberhaupt iets heel geks in je opbouw:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
class User extends Person implements Serializable {
    
    public function __construct(Person $person...){
    }

}

?>

De class User extends de class Person en je moet er nog een meegeven in de constructor. Dat is iets wat overbodig is en wat je nooit zou moeten doen. Alle data/methods die je nodig zou kunnen hebben in de class User heb je al, dus waarom nog eens meegeven?

Je zou je moeten afvragen of dat extenden uberhaupt nodig is.

Toevoeging op 07/09/2012 11:58:42:

En nog even terug naar een al wat oudere opmerking van je, maar mogelijk nu weer relevant.
Write Down op 04/09/2012 19:03:32:
Ik dacht het net omgekeerd te doen. De bedoeling is namelijk dat ik het User object serialize en in de sessie ga stoppen. Dit wil ik dus liefst zo klein mogelijk houden.

Dat maakt niet uit. Bij het serializen bepaal je zelf welke gegevens je meeneemt. Zelfs al heb je 10MB aan data in het object zitten, als jij alleen het id van het object wil serialiseren dan kan dat natuurlijk.
 
Write Down

Write Down

07/09/2012 12:06:47
Quote Anchor link
Het zou in elk geval handig zijn moest ik User kunnen extenden met Person. Of het echt nodig is, wellicht niet.

Daarom ook dat ik vraag, wat is volgens jullie de beste oplossing?

Wat betreft serialize, dit had ik inderdaad intussen ook al door, zie ook voorbeeld code.
 
Erwin H

Erwin H

07/09/2012 12:25:15
Quote Anchor link
Gezien je vragen is het misschien niet zo handig om het te extenden. En 'handig' is in elk geval geen juiste reden om het wel of niet te doen. Nodig wel.
Maar of het wel of niet moet is vanaf een afstand niet of nauwelijks te beantwoorden.

Stel jezelf eens de vragen:
- is Person dezelfde entiteit als User?
- is User dezelfde entiteit als Person?
- heb je de gegevens/methodes van User nodig in Person?
- heb je de gegevens/methodes van Person nodig in User?
- kan je gegevens/methodes die je in beide nodig hebt uitfilteren en wellicht in een gemeenschappelijke class onderbrengen?
 
Write Down

Write Down

07/09/2012 14:37:07
Quote Anchor link
Bedankt voor je reactie Erwin, uiteraard ook dank voor de andere reacties.

Ik zit nog steeds een beetje met een twijfel of ik ze nu al dan niet ga uit mekaar trekken. Ik wil nl. de mogelijkheid hebben om 'losse' personen aan te maken. Denk bijvoorbeeld aan het toevoegen van contactpersonen aan de applicatie. Ik zou bijvoorbeeld kunnen bijhouden wie mijn contactpersoon bij mijn hosting is. Die persoon is dus eigenlijk totaal geen gebruiker.

Anderzijds, is een gebruiker sowieso een persoon. Als ik iemand als gebruiker toevoeg, zou ik ook graag wat informatie over die persoon willen bijhouden. Vanuit dat punt, ben ik er vanuit gegaan dat er eigenlijk wel een relatie 'moet' zijn tussen beide klassen.

Verder ben ik vrij zeker dat de kans dat ik meer gebruikers (die dus ook 'persoon' zijn) heb dan enkel en alleen personen. Daarom dus toch nog enige twijfel.
 

Pagina: « vorige 1 2 3 4 5 volgende »



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.