Ontwerpen usermanagement

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Creative Developer

We are expanding our UX team, therefore we’re looking for a new member for our Eindhoven location. Are you looking for a position where you can get hands-on with developing for the internet of things, AR/VR experiences, voice interfaces, smart systems and anything that combines the digital with the physical, as well as the back-end and cloud services? Are you a curious person, always prepared to collaborate? Are you ready to uncover your vast potential and work hard with your teammates to bring your ideas and software into reality? Then VanBerlo is the design agency you are looking for! What

Bekijk vacature »

C++ Developer

Our client is a leader in cybersecurity, whether it’s securing an office network, medical lab, IoT environment, or large-scale industrial plant. Their product portfolio covers it all. Their customers include electricity grid operators, water and gas providers, manufacturing and pharmaceutical companies, but also theme parks (yes, really!). Their family of products provides customers with visibility into their operation. What devices are on the network? Are they vulnerable? Is there any suspicious activity going on? For the growth of the company they are looking for a new colleague C++ Developer! Professional skills: 3+ years of c++ development experience – must. TCP/IP

Bekijk vacature »

Fullstack Developer Angular 6 Java Complexe omgevi

Functieomschrijving Ben jij toe aan een nieuwe uitdaging binnen een complexe technische omgeving en wil jij met je ruime kennis van Java bijdragen aan een optimaal wegennet? Dan is dit de vacature voor jou! Ontwikkelen van innovatie applicaties met behulp van Angular 6 & Java; Overleggen en samenwerken met architecten en Product Owners; Werken binnen een multidisciplinair Scrumteam met betrekking tot analyse, design en ontwikkeling; Samenwerken en ondersteunen van testers in het proces van automatische regressietesten. Functie-eisen Afgeronde HBO- opleiding (Technische richting is een pre); Minimaal 2 jaar relevante werkervaring als Fullstack Developer; Een passie voor techniek en programmeren; Technologieën,

Bekijk vacature »

Senior software developer .NET C#

Organisatie Deze organisatie is gevestigd in de omgeving van Eindhoven. Dit bedrijf is marktleider op het gebied van de aftermarket van elektronische apparaten. Het platform wat ze hiervoor gebruiken zijn twee webshops. Een van de webshops is gericht op consumenten (B2C) en de andere legt de focus op de zakelijke markt (B2B). Binnen de zakelijke markt werken ze samen de grootste spelers uit de consumentenelektronica branche. Deze organisatie heeft meer dan een half miljoen producten in het assortiment en daar komen 10.000 producten bij per maand! Functie Het totale team bestaan uit meer dan 100 personen. Binnen een development team

Bekijk vacature »

Een ambitieuze grote klant van ons is op zoek naar

Vacature Omschrijving Deze grote speler bestaat al 20 jaar en is financieel onafhankelijk. Ze werken vanuit Rotterdam en je kunt hier helemaal jezelf zijn. Het is een bedrijf met een gemiddelde leeftijd van 35 jaar en je hebt de kans om je zelf verder te ontwikkelen. De werksfeer is informeel en er word veel aan teambuilding gedaan in de vorm van stedentrips en buitenlandse conferenties. Als jij een sociale teamspeler bent die keihard kan werken dan is dit het juiste bedrijf voor jou! Functie omschrijving Je gaat werken in een sprint team of je zult individueel aan de slag gaan.

Bekijk vacature »

FRONT-END DEVELOPER JavaScript/Flow/TypeScript, Re

You will develop innovative front-end applications using technologies such as ReactJS, Redux, Redux-Saga and help them stay up to date in their technology selection as the frontend landscape continues to evolve. As a Frontend Developer, you will be responsible for: Developing frontend applications using a stack similar to “react-boilerplate”: ReactJS, Redux, Redux-Saga etc.; Advocating for front-end development best practices, and doing whatever it takes to help to get the right solutions implemented to deliver value to customers around the globe. We are looking for someone with a strong proficiency in JavaScript/Flow/TypeScript, React.js, Redux and: Extensive experience integrating with RESTful APIs;

Bekijk vacature »

Ontwikkel je in een snelgroeiende organisatie als

Vacature Omschrijving Deze organisatie is gericht op de bedrijfsgezondheid, snelgroeiend en hard op zoek naar een full stack developer. In 2003 is de organisatie opgericht en vijf jaar geleden zijn zij gereorganiseerd. Zij werken met passie aan het ontwikkelen van softwareoplossingen waarmee de kosten van verzuim beheersbaar worden. De organisatie is een leverancier via de Cloud SaaS-diensten aan bedrijven die gericht zijn op het ondersteunen van de samenwerking tussen professionals in die bedrijven. Zij hebben een stevige marktpositie als leverancier van verzuimsoftware en breidt uit naar een totaaloplossing voor bedrijfsgezondheidssoftware. Als voorloper op het gebied van security in SaaS producten

Bekijk vacature »

Senior PHP/ Laravel developer / Fintech StartUp

Ben jij een PHP en Laravel goeroe, vind je het geweldig om zowel op strategisch als op uitvoerend niveau nieuwe ontwikkelingen te realiseren binnen de bijzondere wereld van online betalen? Wil jij daadwerkelijk iets bijdragen aan innovatieve veilige betaalsystemen? Organisatie In 2012 opgericht en gevestigd in Delft. Op dit moment behoren zij toch een van de meest innovatieve FinTech start ups in Nederland. Met een hechte groep collega’s heeft deze organisatie met hun platform bewezen dat zij een grote speler zijn in de online betaalwereld. Naast grote klanten als ANWB, PayPal, Universiteiten en Mempay, behoort nu ook Marktplaats tot hun

Bekijk vacature »

Medior C# developer / .NETcore /

Om je even mee te nemen in deze gave organisatie, stel je het volgende voor: Je komt binnen in een open kantoortuin waar iedereen elkaar kan zien werken. Dit resulteert in een hecht team dat elkaar motiveert om het beste uit zichzelf en elkaar te halen. In deze kantoortuin bevindt zich niet alleen een tafeltennistafel, maar tevens een heuse bar waar elke vrijdag middag met elkaar wordt geborreld! Iedere twee maanden wordt er door de personeelsvereniging een activiteit georganiseerd met een hoge opkomst. Be there or be square! Deze organisatie is gelegen in regio Utrecht en is gespecialiseerd in het

Bekijk vacature »

Mobile developer @ jong full-service internetburea

Functieomschrijving Het ontwikkelteam bestaat uit 7 man, waarvan 3 app ontwikkelaars, een designer en 3 PHP developers. In dit team krijg je een zelfstandige rol waarbij je verantwoordelijk wordt voor het opleveren van je eigen deelprojecten. Uiteraard gaat dit in samenspraak met je collega's die waar mogelijk je ook ondersteunen. Er is sprake van veel kennisoverdracht binnen het team om zo een sterker software product af te leveren. Je krijgt de mogelijkheid om je te verdiepen in je vak/passie. Ben je sterker in Android, dan kun je ook aan de slag met iOS en andersom. Hiervoor kun je sparren met

Bekijk vacature »

Lead Developer .NET gezocht in de omgeving Ede

Organisatie Voor een van mijn business partners uit de omgeving van Ede ben ik op zoek naar een Lead Developer binnen het .NET platform. Dit bedrijf houdt zich enerzijds bezig met de ontwikkeling van tijdregistratie- en planningssoftware voor bedrijven. Anderzijds maken ze software ter bevordering van toegangscontrole en voor sleutelmanagement. De uit twintig medewerkers bestaand organisatie bestaat ruim twintig jaar en heeft grote ambities op de Europese markt. Deze ambitie kenmerkt zich in het feit dat ze continu bezig zijn met het onderzoeken van nieuwe development technieken. Je komt dus terecht in een hele veranderlijke technische omgeving. Inmiddels hebben ze

Bekijk vacature »

Solution Architect Real Estate - Visitor Experienc

Here’s a fantastic opportunity to showcase your technical expertise and make a real difference to our visitor experience at Shell. With every chance to stretch your solution architecture skills, working on cutting-edge projects. Where you fit You’re going to be part of our Global Real Estate business, working as a Real Estate Solution Architect for ‘Visitor Experience’ projects, with a focus on delivering solution designs across a varied and excited portfolio. This is both a challenging and rewarding role, where you’ll be helping to develop high-level designs that assure technical integrity and a measurable impact, driving performance and profitability, all

Bekijk vacature »

Medior .NET C# developer technische rol

Organisatie Voor een organisatie dat al meer dan 50 jaar bestaat ben ik opzoek naar een gedreven .NET C# software ontwikkelaar die veel werkervaring heeft met C# en affiniteit heeft met C ++ en technische automatisering. Het bedrijf houdt zich bezig met het produceren en analyseren en automatiseren van diverse processen. Denk aan robot analyses en diverse andere complexe processen. Deze organisatie heeft ongeveer 150 werknemers in dienst waarbij je gaat werken in een informele setting met een mix van verschillende soorten culturen. Functie Als .NET software engineer ga je werken in een diverse team met één senior ontwikkelaar, een

Bekijk vacature »

Senior Ontwikkelaar .NET

Organisatie Voor een van PHIND’s businesspartners ben ik opzoek naar een ervaren C# .NET Ontwikkelaar. Het draait om een grote creative agency, waar jij jezelf dagelijks bezig gaat houden met uitdagende .NET projecten. Het bedrijf focust zich op de webdevelopment voor grote klanten in de financiële wereld. Denk hierbij aan grote banken, verzekeraars en andere instellingen. Jij als Senior Ontwikkelaar gaat werken aan de websites en mobiele applicaties van deze bedrijven. De organisatie in kwestie heeft een aantal grote key-accounts die constant onderhoudt en optimalisatie nodig hebben met betrekking tot hun webapplicaties. Daarnaast zijn er ook andere klanten waar jij

Bekijk vacature »

.NET/ C# SharePoint ontwikkelaar gezocht in omgevi

Vacature Omschrijving Voor een klant zijn wij op zoek naar een .NET/ C# ontwikkelaar die graag met SharePoint wilt werken. Het bedrijf bestaat uit 25 werknemers waarvan 4 ontwikkelaars, met een specialisatie in het digitaliseren van bedrijfsprocessen. Hierbij moet je vooral denken aan document management dat ervoor zorgt dat post geregistreerd wordt, het onderhouden van kwaliteitssystemen en handboeken die gestructureerd worden. De softwarepakketten die het bedrijf aan haar klanten levert zijn Cloud-based en gericht op SharePoint. De eindgebruiker staat hierbij altijd centraal, waardoor jij ervoor moet zorgen dat de focus ligt op de mensen die gebruik gaan maken van de

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

21/09/2019 22:21:26
 
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', 'write@down.up');

$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.