User Class

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Full stack Developer / .NET / Angular / Azure

Dit ga je doen Jij gaat je als Full Stack .NET Developer voornamelijk bezighouden met: Het vertalen van concepten naar passende innovatieve en duurzame oplossingen; Het ontwikkelen van bedrijf kritische en gebruiksvriendelijke applicaties voor de internationale markt en intern gebruik; Bouwen aan software om het Internet of Things netwerk te ondersteunen; Het maken en onderhouden van interfaces tussen systemen aan de hand van API's; Het onderhouden en blijven verbeteren van de ontwikkelde software. Hier ga je werken Binnen deze organisatie zal jij als Full Stack .NET Developer een belangrijke rol krijgen en ga je dagelijks de uitdaging aan om maatwerk

Bekijk vacature »

Python (Django) developer - Remote in The Netherla

Functie Together with your team, consisting of a senior, 2 mediors and one junior developer, you will work on their software in an Agile-based approach. You have an eye for quality, risk, and customer interest. Communication with your colleagues and, where necessary, with customers, plays an important role in achieving a successful result. As a person, you are smart, get things done, and are result-oriented. There is a lot of independence within the development team, apart from the stand-up (10:00 am) and occasional pair-programming sessions. Techniques they use include Python, Django, MySQL, Mercurial, Ubuntu Linux, Nginx. In terms of front-end

Bekijk vacature »

Programmeur / Developer

Voor een familiebedrijf in Doetinchem, actief in de machinebouw voor de food-sector, zijn wij op zoek naar een programmeur / developer. In deze functie ben je werkzaam in een team van 5 medewerkers. Je werkzaamheden bestaan onder andere uit het verhelderen van requirements vanuit de opdrachtgever, de klant en de afdeling ontwikkeling. Je verricht haalbaarheidsstudies en werkt specificaties uit die je afstemt met de opdrachtgever. Je ontwerpt design in software en stemt af met je collega's. De huidige vision-systemen zijn geschreven in C software, welke draait op een CUDA platform. Je schrijft en codeert software en zal gaan testdraaien. Tot

Bekijk vacature »

Software programmeur

Functieomschrijving Voor een uitdagende werkgever in regio Breda zijn wij op zoek naar een Full Stack C#.NET programmeur. Je bent verantwoordelijk voor het ontwikkelen van apps, webapplicaties en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere developers en engineers om de sensoren in machines te scannen en vervolgens de data om te zetten in management informatie voor de klanten. Taken en verantwoordelijkheden: Je gaat aan de slag met de volgende technologieën en frameworks: C#, JS frameworks, HTML, TypeScript, SQL & C++, CSS. Geen ervaring met één van deze technologieën is dan ook geen enkel probleem! Deze werkgever biedt

Bekijk vacature »

PHP Developer

Functie omschrijving Voor een bedrijf in Den Bosch zoek ik een PHP Developer, die al wat werkervaring heeft. Jij gaat aan de slag met de verdere professionalisering van de interne applicaties en software. In de functie ga je verder: Verdere ontwikkeling eigen CRM systeem, vooral middels PHP; Bouwen van verschillende API's & koppelingen; Meedenken om de software/applicaties te verbeteren/optimaliseren; Aan de slag met de interne tooling. Bedrijfsprofiel Dit bedrijf is actief binnen de telecombranche. Het hoofdkantoor zit in regio van Den Bosch en er werken ruim 70 medewerkers, verdeeld over verschillende afdelingen. De afdeling Development bestaat uit vijf collega's, onder

Bekijk vacature »

Dynamische Oracle/APEX Ontwikkelaar in de logistie

Bedrijfsomschrijving De organisatie in de regio Rotterdam is gespecialiseerd in het ontwikkelen van moderne webbased software voor de ERP branche. In totaal is er 20FTE aan specialisten actief binnen de organisatie. De ICT afdeling bestaat momenteel uit 15FTE. Ze groeien ontzettend hard en daarom zoeken zij een Oracle/APEX Developer die het reeds sterke team nog sterker komt maken. Hier werken ze op projectbasis voor verschillende grote organisaties in de logistieke sector. Het is een informele organisatie waarbinnen een fijne werksfeer heerst. Zoals aangegeven willen ze het team nog sterker maken en daarvoor zoeken ze bij voorkeur medior of senior Oracle/APEX

Bekijk vacature »

Software Developer Java

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »

Front-End React Developer

As a Front-End React Developer you improve the user-experience of our web applications for your colleagues in Coolblue. How do I become a Front-End React Developer at Coolblue? As a Front-End React Developer you are responsible for developing user interface components and implementing them using React.js concepts and workflows. You work with the UX Designer and get energy from coming up with creative solutions and present these within the team. During the day you gather and welcome feedback on your technical and soft skills. Would you like to become a Front-End React Developer at Coolblue? Read below if the job

Bekijk vacature »

Full stack .NET developer Microsoft 365

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

C# developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als C# Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling. Mede hierdoor zij wij dit jaar Microsoft Partner of the Year geworden. Sogetisten staan klaar voor elkaar, hebben lol met elkaar en daarmee behalen we de mooiste resultaten! Werken bij Sogeti

Bekijk vacature »

API Developer Red Hat Fuse

Dit ga je doen Als API Developer zal je verantwoordelijk zijn voor het: het maken van API's en het correct laten draaien van de API's op het platform. Hierdoor kom je in aanraking met Red Hat Fuse, Springt Boot, 3Scale, Red Hat SSO, Openshift en Azure DevOps; zorgen voor de kwaliteit van de ontwikkeling, integratie en prestaties van de API's; zorgen voor een stabiel integratieplatform. Hier ga je werken Deze organisatie is een toonaangevende speler in de vastgoedbranche en telt momenteel ruim 500 medewerkers. Met meer dan 150 applicaties staat er een complex applicatielandschap dat hoofdzakelijk op OpenShift, Azure en

Bekijk vacature »

Web Application Developer

Dit ga je doen Samen met het team werk je aan de visualisatie functionaliteiten en hoe dit gebruikt kan worden in een operationele setting; Het ontwerpen, ontwikkelen, onderhouden en leveren van support betreft het Warehouse Management Systeem en de bijbehorende web visualisaties; Je gebruikt hierbijde tools WebGL en ASP.net; Het meewerken in implementatieprojecten; Het leveren van Go-Live Support; Sparren met jouw Amerikaanse collega's. Hier ga je werken Voor een internationale organisatie in de transport zijn wij momenteel op zoek naar een Web Application Developer. Ze zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van

Bekijk vacature »

C#.NET developer

Functieomschrijving Wij zijn op zoek naar een gepassioneerde Full Stack C#.NET Software Developer. Als Software Developer ben je verantwoordelijk voor het ontwikkelen van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere ontwikkelaars en engineers om de sensoren in machines uit te lezen en deze data om te zetten in management informatie voor jullie klanten. Taken en verantwoordelijkheden: Testen en valideren van de ontwikkelde software. Ontwikkelen en onderhouden van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je gaat aan de slag met diverse technologieën en frameworks. Denk hierbij aan C#, JS frameworks, HTML, CSS, TypeScript,

Bekijk vacature »

Back end developer Python, PHP

Functie Jij als full stack ontwikkelaar zult komen te werken samen met 1 PHP ontwikkelaar een PO en een flexibele schil aan ontwikkelaars . Samen ga je ervoor zorgen dat de huidige producten doorontwikkeld worden. De marketplace is geschreven in PHP Laravel en in de front end React. De roostersoftware is ontwikkeld in Python in combinatie met React in de front end. Jij zult voornamelijk (lees 75%) werken aan de roostersoftware. Momenteel ligt de uitdaging in het feit dat de roostersoftware breder schaalbaar moet worden zodat het voor meerdere flexwerkers ingezet kan worden. Verder willen ze financiële koppelingen gaan maken

Bekijk vacature »

Lead Webdeveloper

Als Lead webdeveloper bij KUBUS ben je verantwoordelijk voor het implementatie design van requirements en de software architectuur van de webapplicatie en services van BIMcollab. In je rol als lead developer zoek je als vanzelf op een creatieve manier naar het optimum tussen benodigde implementatie-tijd, de performance van de applicatie en een snelle go-to-market van features, aansluitend bij onze geautomatiseerde test- en release train. Hierbij bewaak je in samenwerking met de andere senior ontwikkelaars in je team de architectuur van de applicatie en adviseer je de product owner over noodzakelijke refactoring om de onderhoudbaarheid van het platform te verbeteren. Ons

Bekijk vacature »
Joakim Broden

Joakim Broden

16/07/2012 21:34:10
Quote Anchor link
Ik heb een User Class geschreven in OO, zouden jullie kunnen kijken of ik het een beetje goed heb gedaan kwa OOP denkwijze etc? Zo niet graag uitleg :D

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
Class User {
    // Private variabelen

    public function __construct() {
        // Hier word database geset en roept setUser() aan.
    }

    public function existUser() {
        // Dit is een functie om in de database te kijken of een user bestaat aan de hand van een e-mail adres en/of wachtwoord.
    }

    public function existLogin() {
        // Deze functie kijkt of er een 'remember me' cookie bestaat en handelt dit af. (roept bv setLogin() aan)
    }

    public function setLogout() {
        // Deze function logt de user uit (verwijderd sessies en cookies)
    }

    public function setLogin() {
        // Deze function logt de in (set sessies en cookies) en roept setUser() aan.
    }

    private function setUser() {
        // Deze functie set de user (naam gebruikers naam etc) en kijkt of de user echt is ingelogd, bestaan de sessies? Is er geen login word de pagina geredirect naar de login pagina.

        // Als user is ingelogd word de class userRights aangeroepen:
        // $this->rights = new userRights()

    }

    // Hier zitten nog get functies zoals getUserName(), getUserID() etc
}

class userRights {
    // Private variabelen

    public function __construct() {
        // Hier word database geset en roept setRights() aan.
    }

    private function setRights() {
        // Hier word de user level geset en roept vervolgens setRules aan (om de machtingen (rules) te setten).
    }

    private function setRules() {
        // Hier worden de user machtingen opgehaald. En roept vervolgens setAllow() of setDeny() aan (afhankelijk van de machtiging)
    }

    private function setAllow() {
        // Zet alle toegestane machtigingen.
    }

    private function setDeny() {
        // Zet alle niet toegestane machtigingen.
    }

    public function isAllow() {
        // Kijkt of bepaalde actie is toegestaan en returned true of false.
    }

    public function isDenied() {
        // Kijkt of bepaalde actie is toegestaan en returned true of false.
    }
}


?>
 
PHP hulp

PHP hulp

10/01/2025 17:50:47
 
Joakim Broden

Joakim Broden

18/07/2012 09:54:29
Quote Anchor link
Bumpje :-)
 
Reshad F

Reshad F

18/07/2012 10:29:57
Quote Anchor link
ik denk dat je het nu wel even moet uitbreiden wil je er commentaar op.. beetje zoals

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 User {
  protected $username;

  public function setUsername($name) {
    $this->username = $name;
  }


  public function getUsername() {
    return $this->username;
  }
}


class Premium_User extends User {
  private $premiumId;

  public function setData($username, $id) {
    $this->username = $username;
    $this->premiumId = $id;      
  }
}


$user = new Premium_User();
$user->setData('jan', 100);

echo $user->username;
?>


want je hebt wel staan

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
//private variablen
?>


maar welke variabelen? dus ik geef je als tip mee om het wat aan te vullen.
Gewijzigd op 18/07/2012 10:30:31 door Reshad F
 
Write Down

Write Down

18/07/2012 10:37:28
Quote Anchor link
Ik ben geen OO specialist, maar ik zou toch bepaalde zaken anders doen.

Een User object maak je aan door bepaalde gegevens op te geven. Die gegevens kunnen uit een tekstbestand, een database, of iets anders komen. Een 'vraag' in de klasse User 'exists' is dan ook uit den boze. Uiteraard bestaat hij, anders bestaat je object niet.

Verder heb je ook een aantal methods die te maken hebben met inloggen. Een User object hoeft niet te weten hoe het moet inloggen / uitloggen. Dat is iets dat op zijn eigen bestaat. Dit zou je in andere klassen moeten plaatsen die de authenticatie (=inloggen) regelen en eventueel ook een klasse autorisatie (= controle op ingelogd).

Het geven van de rechten is ook niet volledig OO. Maar zoals ik al zei ben ik geen OO-specialist. Ik kan je daarin ook niet ten gronde adviseren. (zoiets als: ik weet wel hoe, maar ik kan het niet uitleggen)
 
Joakim Broden

Joakim Broden

18/07/2012 10:46:24
Quote Anchor link
Write Down op 18/07/2012 10:37:28:
Een User object maak je aan door bepaalde gegevens op te geven. Die gegevens kunnen uit een tekstbestand, een database, of iets anders komen. Een 'vraag' in de klasse User 'exists' is dan ook uit den boze. Uiteraard bestaat hij, anders bestaat je object niet.

Dat is meer voor formulieren bedoelt. Bv bij een inlog formulier, probeert iemand in te loggen met e-mail + wachtwoord. Dan roep ik de functie existUser() aan om te kijken of de gebruiker wel in de database staat.

Write Down op 18/07/2012 10:37:28:
Verder heb je ook een aantal methods die te maken hebben met inloggen. Een User object hoeft niet te weten hoe het moet inloggen / uitloggen. Dat is iets dat op zijn eigen bestaat. Dit zou je in andere klassen moeten plaatsen die de authenticatie (=inloggen) regelen en eventueel ook een klasse autorisatie (= controle op ingelogd).

Daar dacht ik ook al aan, ik kan beter een login class en user class maken. Moet ik eerst maar even goed op papier zetten hoe of wat.

Graag hoor ik nog even goede tips/nuttig commentaar van een paar OO specialisten :-)
 
Erwin H

Erwin H

18/07/2012 10:51:19
Quote Anchor link
Of ik een OO specialist ben weet ik niet, maar ik wil je de volgende tip geven. Schrijf voor jezelf eens op wat het doel is van deze class. Wat moet deze class kunnen doen binnen je applicatie? Zodra je meer dan 1 regel nodig hebt, of met een 'en' komt in de regel, weet je dat er iets niet goed zit. Elke class zou namelijk maar 1 verantwoordelijkheid moeten hebben. Heeft de class er meer dan moet je het eigenlijk al gaan splitsen in meerdere classes.
 
Wouter J

Wouter J

18/07/2012 10:54:15
Quote Anchor link
Dit is nog lang geen OO. In OO heb je 1 grote basis regel: Elke klasse/method mag maar 1 verantwoordelijkheid hebben. Je moet dus alle verantwoordelijkheden opsplitsen en in hun eigen klasse stoppen.

In jou code hier heb je verschillende verantwoordelijkheden:
- Is de gebruiker ingelogd?
- Een gebruiker in-/uit-loggen
- Connectie maken met een database
- Gegevens van een gebruiker vasthouden (username, password, wat mag hij, ect.)

Maar dan heb je nog een volgende basis regel: Haal wat veranderd uit de basis klasse en plaats dat in hun eigen klasse In ons geval hebben we bij de gebruiker dat er steeds veranderd wat hij wel en niet mag, dat halen we dus uit de User klasse en plaatsen we allemaal in hun eigen klasse.
Als je dat dan mooi uitbouwt heb je per ding wat je wilt meerdere klassen die aangeven wat je wel en niet mag.

Als laatst heb je nog de regel: Altijd programmeren naar een interface. Dit betekend dat je altijd, ook al heb je maar 1 klasse, een interface erboven moet hebben. Dit is handig voor controle, afhankelijkheid van klasse weergeven en om klasse te groeperen.

Als je dat goed toepast krijg je zoiets: http://phphulp.wouterj.nl/usermanagement.zip (was heel veel code dus even in een zip bestand geplaatst)
 
Joakim Broden

Joakim Broden

18/07/2012 11:20:08
Quote Anchor link
Oke bedankt voor de informatie maar dan kom ik met het volgende, als je echt OO gebruikt gebruik je dan niet heel veel Queries?

Stel ik heb een user class en een login class.

Login Class:
Hier kijkt hij of iemand is ingelogd -> dus query naar database naar de user table (kijkt of sessies ID, IP's etc overeenkomen).

User Class:
Hier kijkt hij of ingelogde persoon bestaat -> dus query naar de database naar de user table.

Oftewel dat zijn al queries die eigenlijk het zelfde doen?
 
Write Down

Write Down

18/07/2012 11:27:22
Quote Anchor link
Het aantal queries gaat op zich niet stijgen. Of je nu OO werkt of niet.

Want stel je logt in, dan controleer je of die login inderdaad correct is. Maar daarna, ten minste als je het veilig wenst, controleer je op elke pagina of de gebruiker wel echt de gebruiker is.

Of je die queries nu in een object gerichte context gaat gebruiken of eerder in spaghetti code, blijft hetzelfde.
 
Wouter J

Wouter J

18/07/2012 11:29:23
Quote Anchor link
Hoe kan een User nou kijken of hij zelf bestaat? Één user object stelt maar 1 user voor. Als er dus een User object is dan bestaat er een User.
Je inlog class kijkt of de gebruiker bestaat in de DB en controleert of de wachtwoorden kloppen en maakt dan een User object aan met de zojuist ingelogde User.

De authorisatie class krijgt vervolgens het resultaat van de Authenticatie klasse terug, dat ene User object. Vervolgens kijkt hij of dat ene User object wel de juiste bevoegdheid heeft.
 
Joakim Broden

Joakim Broden

18/07/2012 11:42:14
Quote Anchor link
Wouter heb je misschien een voorbeeldje van zo'n authorisatie class? Zelf dacht ik aan zoiets? Is dit correct?

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
36
37
38
39
40
41
42
<?php
    /**
     * @acces private
     * @param $database Object
     */

    private $database = null;

    /**
     * @acces public
     * @param $database Object
     */

    public function __construct($database = null) {
        if ($database == null || !is_object($database)) {
            throw new coreException('Failed to initialize the Authentication Class, construct parameter #1 isn\'t set correctly, an object is needed.');
        }
else{
            $this->database = $database;
        }
    }


    /**
     * @acces public
     * @param $id Integer.
     */

    public function setAuthentication($id = null) {
        // Deze functie word aangeroepen naar dat het inlog formulier succesvol is verstuurd.
        // $id is de ID van de gebruiker en word opgeslagen in een sessie samen met IP nummer etc.

    }

    /**
     * @acces public.
     */

    public function getAuthentication() {
        // Deze functie kijkt of de juiste sessies zijn aangemaakt en de user bestaat??
    }

    /**
     * @acces public.
     */

    public function unsetAuthentication() {    
        // Deze functie word aangeroepen naar dat het uitlof formulier succesvol is verstuurd en verwijderd cookies etc.
    }        
?>
 
Wouter J

Wouter J

18/07/2012 11:52:46
Quote Anchor link
Geef mij nu even de omschrijving wat die authentication klasse van jou voor verantwoordelijkheid doet, wat handelt het af?
 
Joakim Broden

Joakim Broden

18/07/2012 11:57:44
Quote Anchor link
Zoals ik een beetje begrijp doet de authentication klasse dit:

1 ) Als een inlog formulier is gepost moet hij de sessies van een gebruiker aanmaken -> setAuthentication();
2 ) Als een uitlog formulier is gepost moet hij de sessies van een gebruiker verwijderen -> unsetAuthentication();
3 ) Zodra de klasse aangeroepen word moet hij kijken of een gebruiker is ingelogd aan de hand van bestaande sessies -> getAuthentication();

En meer die de authentication klasse volgens mij niet toch? Of moet ik hier de 'rechten' van een gebruiker ook aan koppelen?

bedoel je dit Wouter of?
 
Wouter J

Wouter J

18/07/2012 12:04:52
Quote Anchor link
Plaatst i.p.v. punten alles in 1, of meerdere zinnen, door er en tussen te plaatsen en lees dan eens wat erwin had gezegd:
Quote:
Schrijf voor jezelf eens op wat het doel is van deze class. Wat moet deze class kunnen doen binnen je applicatie? Zodra je meer dan 1 regel nodig hebt, of met een 'en' komt in de regel, weet je dat er iets niet goed zit. Elke class zou namelijk maar 1 verantwoordelijkheid moeten hebben. Heeft de class er meer dan moet je het eigenlijk al gaan splitsen in meerdere classes.
 
Joakim Broden

Joakim Broden

18/07/2012 12:10:00
Quote Anchor link
Dus wat ik wil zijn eigenlijk 3 verschillende klassen?

Klasse: getAuthentication -> Hier word een authentication bekeken?
Klasse: setAuthentication -> Hier word een authentication gemaakt?
Klasse: unsetAuthentication -> Hier word een authentication verwijderd?
 
Wouter J

Wouter J

18/07/2012 12:12:45
Quote Anchor link
Bijna, je hebt hier een Authentication klasse. Die heeft als enige doel kijken of we informatie kunnen krijgen wie die bezoeker is; hoe heet hij? Is hij ingelogd? Daarna heb je een Authorization klasse die kijkt mag de bezoeker deze pagina wel bezoeken? En vervolgens heb je nog een UserMapper of Login klasse die de bezoeker inlogt, een User object aanmaakt en die vervolgens een User ook weer kan uitloggen.
 
Joakim Broden

Joakim Broden

18/07/2012 12:16:15
Quote Anchor link
Ik kom dus in de buurt, kun je misschien een kort voorbeeldje schrijven (of heb je die toevallig liggen). Met de klassen en de functies die er in zitten zoals ik in de begin post heb? Dan kan ik als voorbeeld gebruiken.
Gewijzigd op 18/07/2012 12:18:22 door Joakim Broden
 
Wouter J

Wouter J

18/07/2012 13:05:12
Quote Anchor link
Een voorbeeldje van het user systeem heb ik je al gegeven, in mijn eerste post. En van authenticatie, het lijkt me goed als je die zelf schrijft. Daarna kunnen we dan opmerkingen schrijven.

Maar voordat je gaat schrijven, eerst goed uitdenken. Welke verantwoordelijkheden zijn er nodig, welke klassen krijg ik, welke methods en properties krijgen die klassen, wat wordt het interface, welke methods staan er in het interface, ect. Missien eens leuk om te lezen: http://wouterj.nl/serie/orienteer-je-in-objecten/
 
Joakim Broden

Joakim Broden

18/07/2012 13:36:22
Quote Anchor link
Wouter bedankt voor je hulp, ik ga nu de tutorials lezen van je site en proberen user/authenticatie klasse uit te denken en te denken. Daarna plaats ik hem hier weer. Bedankt (de rest in dit topic natuurlijk ook)!

Toevoeging op 18/07/2012 14:19:37:

Afbeelding zoiets?

Ik neem aan dat de code dan zoiets word?:

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
<?php
    $this
->userMapper = new UserMapper($this->database);

    $this->user = $this->userMapper->getUserByID(1);

    print_r($this->user);

    // UserTest Object
    // (
        //     [id:protected] => 5001
        //    [name:protected] => Administrator
        //    [initials:protected] => T
      //    [firstname:protected] => Test
        //    [prefixes:protected] => de
        //    [lastname:protected] => Tester
        //    [email:protected] => [email protected]
        //    [phone:protected] => 0600000000
        //    [password:protected] => 22e21f231075b50bcdf8awdad0e63wdadaafcb933253
        //    [ip:protected] => 127.0.0.1
        //    [activefrom:protected] => 29/08/2011 12:00
        //    [activetill:protected] => 29/08/2021 12:00
    //)

?>


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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
<?php
        class UserMapper {
            /**
             * @acces protected.
             * @param Object.
             */

            protected $database;
            
            /**
             * @acces public.
             * @param $database Object
             */

            public function __construct($database = null) {
                if ($database == null || !is_object($database)) {
                    throw new coreException('Failed to initialize the UserMapper Class, construct parameter #1 isn\'t set correctly, an object is needed.');
                }
else{
                    $this->database = (object) $database;
                }
            }

            
            /**
             * @acces public.
             * @param $id Integer.
             * @return Object
             */

            public function getUserByID($id = null) {
                if ($id == null || !is_integer($id)) {
                    throw new coreException('Failed to initialize the UserMapper Class, setUserByID parameter #1 isn\'t set correctly, an integer is needed.');
                }
else{
                    $result = $this->database->setQuery('SELECT id, name, initials, firstname, prefixes, lastname, email, phone, password, ip_number, DATE_FORMAT(activefrom, "%d/%m/%Y %H:%i") AS activefrom, DATE_FORMAT(activetill, "%d/%m/%Y %H:%i") AS activetill FROM cms_users WHERE id = "'.$this->database->getEscape($id).'" AND status = "true" AND deleted = "false"');
                
                    if (($items = $this->database->getNumRows($result)) >= 1) {
                        return (object) $this->getUser($this->database->getFetch($result));
                    }
                }
            }

            
            /**
             * @acces public.
             * @param $name String.
             * @return Object
             */

            public function getUserByName($name = null) {
                if ($name == null || !is_string($name)) {
                    throw new coreException('Failed to initialize the UserMapper Class, getUserByName parameter #1 isn\'t set correctly, a string is needed.');
                }
else{
                    $result = $this->database->setQuery('SELECT id, name, initials, firstname, prefixes, lastname, email, phone, password, ip_number, DATE_FORMAT(activefrom, "%d/%m/%Y %H:%i") AS activefrom, DATE_FORMAT(activetill, "%d/%m/%Y %H:%i") AS activetill FROM cms_users WHERE name = "'.$this->database->getEscape($name).'" AND status = "true" AND deleted = "false"');
                
                    if (($items = $this->database->getNumRows($result)) >= 1) {
                        return (object) $this->getUser($this->database->getFetch($result));
                    }
                }
            }

            
            /**
             * @acces private.
             * @param $data Array.
             * @return Array
             */

            private function getUser($data = array()) {
                if ($data == null || !is_array($data)) {
                    throw new coreException('Failed to initialize the UserMapper Class, getUser parameter #1 isn\'t set correctly, an array is needed.');
                }
else{
                    $user = new UserTest();
                    $user->setID($data['id']);
                    $user->setName($data['name']);
                    $user->setInitials($data['initials']);
                    $user->setFirstName($data['firstname']);
                    $user->setPrefixes($data['prefixes']);
                    $user->setLastName($data['lastname']);
                    $user->setEmail($data['email']);
                    $user->setPhone($data['phone']);
                    $user->setPassword($data['password']);
                    $user->setIP($data['ip_number']);
                    $user->setActiveTill($data['activetill']);
                    $user->setActiveFrom($data['activefrom']);
                    
                    return (object) $user;
                }
            }
        }

        
        class UserTest {
            /**
             * @acces protected.
             * @param Integer.
             */

            protected $id;
            
            /**
             * @acces protected.
             * @param String.
             */

            protected $name;
            
            /**
             * @acces protected.
             * @param String.
             */

            protected $initials;
            
            /**
             * @acces protected.
             * @param String.
             */

            protected $firstname;
            
            /**
             * @acces protected.
             * @param String.
             */

            protected $prefixes;
            
            /**
             * @acces protected.
             * @param String.
             */

            protected $lastname;
            
            /**
             * @acces protected.
             * @param String.
             */

            protected $email;
            
            /**
             * @acces protected.
             * @param String.
             */

            protected $phone;
            
            /**
             * @acces protected.
             * @param String.
             */

            protected $password;
            
            /**
             * @acces protected.
             * @param String.
             */

            protected $ip;
            
            /**
             * @acces protected.
             * @param String.
             */

            protected $activefrom;
            
            /**
             * @acces protected.
             * @param String.
             */

            protected $activetill;
            
            /**
             * @acces protected.
             */

            public function __construct() {
            
            }

            
            /**
             * @acces protected.
             */

            public function __destruct() {
            
            }

            
            /**
             * @acces public.
             * @param $id String.
             */

            public function setID($id = null) {
                $this->id = (integer) $id;
            }

            
            /**
             * @acces public.
             * @param $name String.
             */

            public function setName($name = null) {
                $this->name = (string) $name;
            }

            
            /**
             * @acces public.
             * @param $initials String.
             */

            public function setInitials($initials = null) {
                $this->initials = (string) $initials;
            }

            
            /**
             * @acces public.
             * @param $firstname String.
             */

            public function setFirstName($firstname = null) {
                $this->firstname = (string) $firstname;
            }

            
            /**
             * @acces public.
             * @param $prefixes String.
             */

            public function setPrefixes($prefixes = null) {
                $this->prefixes = (string) $prefixes;
            }

            
            /**
             * @acces public.
             * @param $name String.
             */

            public function setLastName($lastname = null) {
                $this->lastname = (string) $lastname;
            }

            
            /**
             * @acces public.
             * @param $email String.
             */

            public function setEmail($email = null) {
                $this->email = (string) $email;
            }

            
            /**
             * @acces public.
             * @param $phone String.
             */

            public function setPhone($phone = null) {
                $this->phone = (string) $phone;
            }

            
            /**
             * @acces public.
             * @param $password String.
             */

            public function setPassword($password = null) {
                $this->password = (string) $password;
            }

            
            /**
             * @acces public.
             * @param $ip String.
             */

            public function setIP($ip = null) {
                $this->ip = (string) $ip;
            }

            
            /**
             * @acces public.
             * @param $activefrom String.
             */

            public function setActiveFrom($activefrom = null) {
                $this->activefrom = (string) $activefrom;
            }

            
            /**
             * @acces public.
             * @param $activetill String.
             */

            public function setActiveTill($activetill = null) {
                $this->activetill = (string) $activetill;
            }

            
            /**
             * @acces public.
             * @return Integer.
             */

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

            
            /**
             * @acces public.
             * @return String.
             */

            public function getName() {
                return $this->name;
            }

            
            /**
             * @acces public.
             * @return String.
             */

            public function getInitials() {
                return $this->initials;
            }

            
            /**
             * @acces public.
             * @return String.
             */

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


            /**
             * @acces public.
             * @return String.
             */

            public function getPrefixes() {
                return $this->prefixes;
            }

            
            /**
             * @acces public.
             * @return String.
             */

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

            
            /**
             * @acces public.
             * @return String.
             */

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

            
            /**
             * @acces public.
             * @return String.
             */

            public function getPhone() {
                return $this->phone;
            }


            /**
             * @acces public.
             * @return String.
             */

            public function getPassword() {
                return $this->password;
            }

            
            /**
             * @acces public.
             * @return String.
             */

            public function getIP() {
                return $this->ip;
            }

            
            /**
             * @acces public.
             * @return String.
             */

            public function getActiveFrom() {
                return $this->activefrom;
            }

            
            /**
             * @acces public.
             * @return String.
             */

            public function getActiveTill() {
                return $this->activetill;
            }
        }

?>


Volgens mij heb ik echt het gevoel dat ik zoveel overbodige code heb? Mag ik in de UserMapper ook kijken welke user is ingelogd en dan getUserByID() doen? Of hoort dit bij een login class?
Gewijzigd op 18/07/2012 16:57:57 door Joakim Broden
 



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.