User Class

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Full Stack 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: Ontwikkelen en onderhouden van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Testen en valideren van de ontwikkelde software. Actief deelnemen aan code reviews en bijdragen aan het verbeteren van de kwaliteit van de software. Je gaat aan

Bekijk vacature »

PHP ontwikkelaar

Functie Met een complex en uitgebreid e-commerce platform, een eigen PIM-systeem en eigen scan applicatie – krijg jij dagelijks te zien hoe jouw werk gebruikt wordt door miljoenen gebruikers. En we staan qua development pas in de startblokken, aangezien er nog meerdere projecten op de plank liggen te wachten! Ons huidige development team bestaat uit 8 programmeurs. Er wordt dagelijks gereflecteerd op geschreven code, Scrum taken en kennisdelen onderling is een must. Onze voertaal binnen ons team is Engels, dit omdat wij twee internationale collega’s hebben. Ons huidige “IT Landschap” bestaat voornamelijk uit allerlei losse onderdelen die individueel, maar ook

Bekijk vacature »

Ervaren PHP Software Developer

Functieomschrijving Voor een toffe opdrachtgever in regio Breda zijn wij op zoek naar een medior PHP Developer met affiniteit met Laravel. Je komt te werken bij een uitdagende opdrachtgever met supergave klanten in een specifieke branche. Als PHP ontwikkelaar ben je samen met een vooruitstrevende team van 6 collega’s verantwoordelijk voor de ontwikkeling, beheer en het vernieuwen van informatiesystemen voor een specifieke branche. Je ondersteunt complexe uitdagingen van klanten. Vervolgens breng je hun wensen in kaart en vertaalt deze door naar maatwerk software. Affiniteit met Laravel is een pré. Om de klanten zo goed mogelijk te ondersteunen en snel in

Bekijk vacature »

Junior Java Developer

Dit ga je doen Je ontwikkelt innovatieve, maatschappelijk belangrijke applicaties; Je implementeert nieuwe features; Je gaat in gesprek met eindgebruikers en designers om de applicaties continu te finetunen; Je draait mee in een professionele Agile/Scrum omgeving. Hier ga je werken Onze klant is een internationale organisatie gevestigd in de omgeving van Amsterdam. Ze staan zeer goed bekend in de markt door hun innovatieve dienstverlening op IT gebied en hun gepassioneerde werknemers. Voor hun inspanningen op het gebied van IT hebben ze meerdere prijzen gewonnen! Onze klant is onderdeel van een Corporate werkgever en heeft zelf 300 mensen in dienst. Om

Bekijk vacature »

SQL Database Ontwikkelaar

Functie omschrijving Kan jij goed overweg met complexe algoritmes en het schrijven van procedures in T-SQL? Heb jij al wat ervaring opgedaan met SQL en vind je het tijd voor de volgende stap? Lees dan snel verder! Dit software bedrijf, gespecialiseerd in de ontwikkeling van logistieke software, is op zoek naar een ervaren SQL database developer. Jouw werkzaamheden zullen onder andere bestaan uit: Je houdt je bezig met het ontwerp en de ontwikkeling van MS SQL server databases, dit doe je met T-SQL als programmeer laag. De begeleiding van projecten van A tot Z, je zult aansluiten bij meetings met

Bekijk vacature »

.NET Developer

Dit ga je doen Programmeren in .NET, Javascript & C# en ontwikkelen in Web Services, Windows Services en MS SQL Server; Zelfstandig verbanden maken Analyseren, testen, bugs fixen, reviewen en rapporteren; Juiste prioriteiten stellen en verantwoordelijkheid nemen; Op architectuur niveau meedenken; Af en toe klanten bezoeken. Hier ga je werken Voor onze relatie zijn wij opzoek naar een .NET ontwikkelaar met minimaal 3 jaar werkervaring. Je komt te werken in een groeiend bedrijf met betrokken collega's die zorgen voor een familiaire sfeer op de werkvloer. Als .NET ontwikkelaar word jij vanaf de eerste werkdag betrokken bij het gehele ontwikkelproces. De

Bekijk vacature »

PHP Back-end Developer

Vacature details Vakgebied: Software/IT Opleiding: Starter Werklocatie: Nijmegen Vacature ID: 13633 Introductie OUr client develop websites, webshops, and digital environments that are used by many visitors daily. They are seeking an experienced PHP-Developer Back-end to join the team. If you're looking for a position where you can tackle challenging, innovative, and multidisciplinary ICT projects and make a difference, this vacancy might be for you! Functieomschrijving As a PHP developer, you'll develop websites and digital environments used by many visitors daily. You'll work as a back-end developer and want to continuously develop in this field. You can work independently and efficiently,

Bekijk vacature »

Database ontwikkelaar

Functieomschrijving Wil jij aan gave logistieke softwareprojecten werken en bij een uniek softwarebedrijf in de regio van Tilburg? Wacht niet langer en reageer snel op deze vacature. Als Database ontwikkelaar ga je aan de slag het schrijven van stored procedures en verder uitbouwen van de SQL database. Je werkt in een database team, met allemaal mensen die energie krijgen van software en techniek. Verder krijg je als taak: Optimaliseren en uitbouwen van de MS SQL databases die gebruikt worden; Optimaliseren van query's, waardoor er efficiënter gewerkt kan worden; Je werkt met de technieken T-SQL of PL/SQL; Bij interesse kan je

Bekijk vacature »

Network Engineer (f/m/d) in Heidelberg

Network Engineer (f/m/d) The IT Services team operates and supports the IT infrastructure and services at EMBL headquarters in Heidelberg and at the laboratory’s sites in Barcelona and Rome. As part of IT Services, the Network team is responsible for managing and developing the network infrastructure in our data centres, on campus, and to our external network providers. As a leading scientific institution with highly data-intensive research, extensive data flows at and between the laboratory’s six sites and to the Internet, EMBL is connected to national and international scientific networks using state-of-the-art technologies from vendors including Cisco, Extreme Networks and

Bekijk vacature »

.NET developer

Functie Heb jij veel kennis van ASP.NET Webforms en wil jij juist de overstap maken naar ASP.NET Core? Wij zijn per direct op zoek naar een ervaren .NET Webdeveloper die met ons samen ons platform wilt herschrijven van ASP.NET Webforms naar ASP.NET Core. Voor jou de unieke kans om met ons samen te innoveren en kennis op te doen van de nieuwste technieken binnen de Microsoft Stack. Wij hebben een development team met 10 IT specialisten bestaande uit onder andere 4 backend .NET developers en twee front-end developers. Wij zijn continu bezig om ons als team en bedrijf te blijven

Bekijk vacature »

Senior Applicatie ontwikkelaar Java

Bedrijfsomschrijving De IV- organisatie van de Belastingdienst is verantwoordelijk voor en verzorgt de ICT- voorzieningen. Het merendeel van de applicaties wordt op dit moment door de IV- organisatie zelf ontwikkeld, onderhouden en beheerd in het eigen data center. Naast de zorg voor continuïteit op de massale heffing- en inningsprocessen die plaatsvinden binnen een degelijke, stabiele omgeving, wordt er tevens volop gewerkt aan modernisering van het IV- landschap. Dit gebeurt deels intern door gebruik te maken van de expertise die intern aanwezig is, maar ook door het aantrekken van (kant-en-klaar) oplossingen en expertise uit de markt. Functieomschrijving We verwachten van je,

Bekijk vacature »

Junior Software Developer

Functie omschrijving Wij zijn op zoek naar een Junior Software Developer .NET, C# voor een gaaf bedrijf in de omgeving van Utrecht! Sta jij aan het begin van je carrière en heb je net je HBO of WO-diploma in de richting van ICT of Techniek mogen ontvangen? En heb jij grote affiniteit met software development? Lees dan snel verder! Voor een opdrachtgever in de omgeving van Utrecht, zijn wij op zoek naar een Junior Software Developer. Werk jij graag aan verschillende projecten en ga je graag klanten op bezoek? Dan is dit de ideale functie voor jou! Binnen deze functie

Bekijk vacature »

Senior Airport Developer ( System engineer)

De functie Nice to know (you) De nieuwe A-pier wordt de duurzaamste van Schiphol. Als deze af is ligt er 4000 vierkante meter zonnepanelen op het dak. En de toiletten? Die spoelen door met regenwater. we gaan ervoor: het creëren van de meest duurzame en hoogwaardige luchthavens ter wereld. een toekomstbestendig en duurzaam Schiphol. Daar werken we elke dag hard aan in team Development & Sustainability. Jij bent regisseur, expert én aanjager van de ontwikkeling van Schiphol. Connecting your world Hoe maak je de ambities en doelstellingen van Schiphol concreet in een project? De waarde voor Schiphol naar eisen die

Bekijk vacature »

SQL Database ontwikkelaar

Functie omschrijving Wil jij meewerken aan het creëren van slimme software om magazijnen als een geoliede machine te laten lopen? Wij zoeken een zorgvuldig persoon, iemand die niet snel de hand omdraait voor complexe algoritmes. Denk jij dat jij de SQL ontwikkelaar bent die wij zoeken? Lees snel verder en wie weet zitten we binnenkort samen aan tafel! Jouw werkzaamheden zullen er als volgt uitzien: Je houdt je bezig met het ontwerpen en ontwikkelen van MS SQL server databases, dit doe je met T-SQL als programmeer laag. Je gaat aan high-end software oplossingen werken, dit doe je voor de optimalisatie

Bekijk vacature »

Front-end developer - working on software for arou

Functie They have recently started looking for an experienced Front-end (mobile/app) developer. Because of the short lines within the team, they are also looking for someone who can communicate with the service desk, sales and support for technical questions. You will join their IT team consisting of about 10 colleagues divided over two teams in rooms opposite each other. Half of these are involved in their front-end. You will work together with, among others, the Architect, 1 senior, 1 junior and there is a Team Leader. In terms of technology, they work with a unique tech-stack, particularly because of the

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

28/11/2024 18:42:29
 
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.