[oop] functie constructor

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Front-end developer / Supply Chain / Angular, Reac

Functie Het development team bestaat momenteel uit 9 fullstack (Python en .NET) developers. Binnen het team ga jij je toespitsen op het creëren van de optimale toegankelijkheid en user experience. Om dit voor elkaar te krijgen zul je ontwerpen, programmeren, testen en implementeren. Het hele proces dus! Maar ook bijvoorbeeld meedenken over strategie en design. Hierin krijg je veel vrijheid om de functie naar eigen inzicht in te vullen en te pionieren. Alle data die wordt gebruikt is zichtbaar in een webapplicatie, geschreven in Angular en React. Momenteel zijn ze bezig om de dashboards anders vorm te geven en de

Bekijk vacature »

Java Developer

Functie Wat ga je doen als Java Developer? Samen met jou gaan we één project vinden die het best jou past, leerzaam zijn en bedragen aan jouw wensen en ontwikkelingen. In een jaar tijd word je klaar gestoomd tot een zelfstandige Java Ontwikkelaar, doormiddel van een masterclasses, intensieve en interactieve trainingen van top coaches, die klaar staan om jouw kennis te vergroten en dit ook te realiseren in praktijk. Samen met jouw coach ga je een persoonlijke leerplan opzetten om jou doelen te behalen. Start nu jouw carrière. Eisen Wat wordt er van jou verwacht? • Een afgeronde HBO Informatica

Bekijk vacature »

Creatieve Front en developer

Functie Jij bent een (creative) Front-end developer die het leuk vindt om Verzorgde, lekker smullende webapplicaties te maken. We maken redelijk complexe applicaties die je toch graag intuïtief wil maken voor de gebruiker. Jij komt terecht in een allround development team bestaande uit slimme koppen. Bijna iedereen binnen ons team is een technische duizendpoot en leert graag nieuwe dingen. Sinds vorig jaar zijn wij los van technisch functionele applicaties ook vanuit Design optiek gaan kijken naar ons platform. Hierdoor hebben wij 2 UX designers aangenomen die zelf ook kunnen coderen. Dit bevalt ons zo goed dat we op zoek zijn

Bekijk vacature »

Full Stack Developer Schoenen

Over de werkgever: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Deze werkgever levert hoogwaardige heren- en vrouwenschoenen. Ben jij geschikt als Fullstack Developer? Heb je ervaring met Javascript? Vaste baan: Full Stack Developer Schoenen HBO 3.200 - 4.900 Full Stack Developer Deze werkgever is een e-commerce bedrijf gespecialiseerd in kleding en fashion. Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. Wat houdt de functie precies in?: Voor de vacature als Full Stack Developer Capelle

Bekijk vacature »

Lead developer gezocht! (PHP, Symfony3)

Functie Het applicatielandschap is volledig containerized en draait in een custom kubernetes omgeving verspreid over meerdere datacenters. Alle applicaties zijn gebouwd in o.a. Symfony4. De data staan opgeslagen in een MariaDB database en caching wordt gedaan met Redis. De objectstore met CDN staat op Amazon S3. Momenteel bestaat het IT-team uit 1 front-end en 3 fullstack ontwikkelaars. Gezamenlijk werken zij aan zowel de shop, hun intranet als de WMS-applicatie. Vanwege hun groeiplannen hebben ze flinke ambities, en willen ze dit team uitbreiden tot 2 development teams, 1 infra en 1 R&D team. Leuke plannen waarmee zij aan de slag willen

Bekijk vacature »

Mobile Developer

Functie Wat ga je doen als Mobile Developer? Nieuwsgierig naar mobile development en hier alles over willen weten, niet afraffelen, maar puntjes op de i – clean code kunnen toepassen en op een nette manier code kunnen schrijven, nieuwe code kunnen schrijven, maar ook oude code op een nette manier kunnen herschrijven. We werken o.a. met AWS met microservices-architectuur. Java, Spring, Javascript, Typescript, NodeJS, en het Serverless Framework. Voor de Frontend werken we samen met React op verschillende webapplicaties. Daarnast zal veel nieuwe leuke dingen toevoegen aan de app en app naar Next level brengen op technisch vlak (nieuwe manier

Bekijk vacature »

Senior Azure Developer

DO - Be passionate, work hard and make it happen! Als Senior Developer maak je deel uit van een enthousiast en gedreven development team, bestaande uit 4 personen. Jij bent de Developer met ervaring die daarbij ook de collega’s weet mee te nemen op een innovatieve reis van nieuwe technologie. De werkzaamheden waar we jouw kennis en ervaring graag voor inzetten zijn met name: Het begeleiden van de transitie naar een volledig Azure landschap met componenten zoals Function Apps, ServiceBus en CosmosDB en de projecten die hieruit voortvloeien Het vormgeven van de integratie architectuur binnen de Microservices omgeving Het bewaken

Bekijk vacature »

Junior PHP ontwikkelaar

Functie Wij hebben onlangs onze eerste collega’s aangenomen, waardoor ons development team momenteel uit 4 personen bestaat. We bouwen onze software op basis van een PHP-framework (wat op zichzelf een Symfony framework is). Qua ontwikkeling focussen wij ons op 3 focus velden; – API-ontwikkeling/ Component Creatie – Implementatie – Framework ontwikkeling; het toevoegen van nieuwe functionaliteit of interne microservices Onze senior software engineer focust zich momenteel op de laatste twee punten, maar wij komen handen te kort op het eerste veld. Daarom zijn wij op zoek naar een enthousiaste junior software engineer die graag de kneepjes van het vak wil

Bekijk vacature »

Medior Fullstack (web)developer

Functie Momenteel bestaat het IT-team uit 2 vaste fullstack ontwikkelaars, beide hebben ze ruime ervaring met het platform en kennen ze echt de ins en outs. Ze zijn open-minded en zoeken ook iemand die met graag met een realistische blik te werk gaat, niet alles kan tegelijk, maar middels korte sprints kunnen ze iedere 2 weken waarde toevoegen aan het platform. Als fullstack (web)developer werk je samen met je collega’s aan het vernieuwen en efficiënter maken van het platform. Met de focus op de user experience. Functionaliteiten moeten niet alleen mooi zijn, maar zorgen voor een efficiënter verloop en meer/betere

Bekijk vacature »

Medior/ Senior PHP developer

Functie Je zal samen met jouw team gaan werken aan verschillende projecten. Dit zijn diverse opdrachten van diverse klanten. Het team bestaat momenteel uit 2 PHP developers die momenteel aangestuurd worden door een mede-eigenaar. Daarnaast zijn er 5 Python developers waarvan 1 Lead (mede-eigenaar) die het team aanstuurt. Ook zijn er 2 externe developers die momenteel het team versterken. Er zijn genoeg developers om jou heen waarmee jij zou kunnen sparren en daarnaast is er de mogelijkheid om jouw ervaring en kennis te delen aan anderen of om anderen te begeleiden/aan te sturen. Door de variëteit binnen het bedrijf zijn

Bekijk vacature »

Backend Java Developer

Functieomschrijving Are you an experienced backend developer who wants to build something that really makes an impact? How does building an entirely new microservices environment to handle contracts, placements, salary payments and invoicing for the world’s largest HR service provider sound? What will you be doing? As backend developer in a scrum team you of course develop user stories, review code and test. Within our teams the role of senior developer also includes: designing and developing scalable and maintainable solutions for all to use; empowering your peers to take ownership, responsibility and accountability of everything we build; identifying and solving

Bekijk vacature »

Team Lead / Java Developer

Functie Wat ga je doen als Java developer? Als Team Lead Java Developer draag een grote verantwoordelijk je stuurt ontwikkelaars aan en staat dagelijks in contact met jou ICT Manager. De team Bestaat uit front-end en backend systemen. Je ben in staat op hoog niveau de technische vak te bepalen en ook te bewaren. Je dag zie er als volgt uit, ontwikkelen van nieuwe en bestaande applicaties, het uitvoeren van processen en analyses en het beschrijven van functioneel ontwerpen. Ook zal samen met jouw Tester applicaties gaan testen door middel van peer reviews en het leveren van support aan gebruikers

Bekijk vacature »

UX designer/ front-end developer gezocht!

Functie De ICT-afdeling bestaat momenteel uit zo’n 10 developers, een tester, scrum master en een product owner. Vaak wordt dit verdeeld over 2 scrumteams. Er heerst een hele goede sfeer binnen het team met een leuke mix van jong en oud. Dit team werkt zowel aan interne als externe applicaties. Een voorbeeld hiervan is één van hun interne tools; dit is een AI bot die in een fractie van een seconde verschillende databases doorspit en kijkt naar bijvoorbeeld andere woningen, gegevens van het kadaster, maar ook op welke grond een woning staat of hoe het gesteld is met de Vereniging

Bekijk vacature »

Junior+/medior PHP developer

Functie Het applicatielandschap is volledig containerized en draait in een custom kubernetes omgeving verspreid over meerdere datacenters. Alle applicaties zijn gebouwd in o.a. Symfony4. De data wordt opgeslagen in een MariaDB database en caching wordt gedaan met Redis. De objectstore met CDN staat op Amazon S3. Momenteel bestaat het IT-team uit 1 front-end en 3 fullstack ontwikkelaars. Gezamenlijk werken zij aan zowel de shop, hun intranet als de WMS-applicatie. Vanwege hun groeiplannen hebben ze flinke ambities, en willen ze dit team uitbreiden tot 2 development teams, 1 infra en 1 R&D team. Leuke plannen waarmee zij aan de slag willen

Bekijk vacature »

Python Developer

Functie Wat ga je doen? Het team bestaat ongeveer uit 10 developers waarmee jij samen clean microservices in Python gaat ontwikkelen. Low code is een no go voor hen en zij willen graag een mooi en modern systeemarchitectuur designen en behouden. Daarom zal je meehelpen met het designen van verbeterde versies van hun clean, moderne, modulaire, robuuste en veilige systeemarchitectuur. Daarnaast zal je ook componenten van de dataprocessing en/of opslagsystemen implementeren, onder begeleiding van onze data engineers. Uiteraard werk je ook zeer nauw samen met onze collega’s binnen het China-domein, onze China experts, en van business development. Zo is er

Bekijk vacature »
Jaron T

Jaron T

04/07/2010 15:02:06
Quote Anchor link
Hey phphulpers, Ik heb de volgende situatie:

Ik heb een login class met een constructor: $gebruikersnaam en $wachtwoord.

Die wordt aangeroepen door:
$login = new Login($gebruikersnaam, $wachtwoord);

Binnen login escape ik de gebruikersnaam en wachtwoord.. + md5($wachtwoord).


Nu is mijn vraag:

Wat is de beste manier op mijn class aan te roepen? Moet ik vooraf de waardes al 'escapen' + 'md5' coderen? of moet ik dit pas binnen mijn class doen?

Bedankt.
 
PHP hulp

PHP hulp

14/08/2022 06:20:02
 
Wesley Overdijk

wesley Overdijk

04/07/2010 15:04:59
Quote Anchor link
Ik zou het anders aanpakken. Ik zou van je gebruikersnaam en wachtwoord een apart object maken.

$username = new class_username($user);
$password = new class_password($password);
$password->md5(); //Of een salt, sha1, whatever jij wilt.
$login = new login($username, $pasword);

EDIT:
Waarom ik dat zou doen, is omdat je dan meer controlle hebt over je element. Je kan de logica van dat element in je class stoppen, of een abstracte class maken voor al je elementen.
Gewijzigd op 04/07/2010 15:06:10 door wesley Overdijk
 
Jelmer -

Jelmer -

04/07/2010 17:09:51
Quote Anchor link
Login representeert je login-procedure? Dan vind ik dat md5-hash maken van je wachtwoord gewoon een onderdeel is van je login-procedure, en dus binnen die class moet gebeuren.

Mooier zou misschien zijn om een algemeen idee van een "login procedure" vast te leggen in een interface, en deze class die te laten implementeren. Zo kan je ook andere manieren van inloggen erbij schrijven. (bijvoorbeeld ingelogd blijven via een cookie -> aparte login-procedure waarbij de waarde in je cookie wordt gebruikt om een user-id terug te vinden)

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
<?php
interface AuthenticationProcedure
{
    public function authenticate(); // returns user-id
}

class Login implements AuthenticationProcedure
{
    public function __construct($username, $password)
    {

        $this->username = $username;
        $this->password = $password;
    }


    public function authenticate()
    {

        // md5(password)
        // query for user-id

        return $result['user-id'];
    }
}


class RemberMeCookie implements AuthenticationProcedure
{
    public function set_cookie($user_id);

    public function authenticate(); // probeert cookie uit te lezen, etc.
}
?>
Gewijzigd op 04/07/2010 17:10:15 door Jelmer -
 
Jaron T

Jaron T

05/07/2010 10:59:30
Quote Anchor link
Bedankt voor de reacties, ik heb eerlijk gezegd nog nooit met een 'interface' gewerkt. Hoe roep ik nu bijvoorbeeld de 'RemberMeCookie' functie aan die in de interface 'AuthenticationProcedure' zit?
 
Crude Oil

Crude Oil

05/07/2010 11:06:51
Quote Anchor link
Escapen hoeft toch niet bij een md5 codering?
 
Jelmer -

Jelmer -

05/07/2010 11:44:11
Quote Anchor link
Die interface is puur om vast te stellen dat objecten die instanties zijn van classes die die interface implementeren, in ieder geval een method authenticate hebben. Oftewel: als je vereist dat $taart instanceof AuthenticationProcedure, dan weet je zeker dat $taart->authenticate() aangeroepen kan worden. Een interface is niet vereist om het te laten werken, maar het is wel netjes.

Je zou hem kunnen gebruiken in een class die de sessie (en daarbij de current user) bijhoudt.
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
<?php
class Session
{
    public function login(AuthenticationProcedure $procedure)
    {

        $this->user_id = $procedure->authenticate();
    }
}

$login = new PasswordLogin($username, $password);

$session = Session::getInstance();

$session->login($login);
?>
 
Johan Dam

Johan Dam

05/07/2010 13:33:11
Quote Anchor link
Een interface is handig als je nog niet precies weet wat de inhoud van je classe word, als je je classe eenmaal gemaakt heeft, verliest het zijn waarde echter, gezien een interface alleen restricties oplegt aan de classe die het gebruikt.

Persoonlijk vind ik het zonde van de tijd om een interface te gebruiken,

Aparte classes maken van elementen is ook een beetje over-kill en druist ook wel in tegen het idee van OOP

hier is hoe ik het zou doen,
inloggen is iets wat een gebruiker kan doen, daarom zou login() een methode onder de classe gebruiker zijn,
een klein voorbeeldje,

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if(!empty($_POST['username']) && !empty($_POST['password'])){
    $username = eventuele_functie_tegen_xss($_POST['username']);
    $password = md5($_POST['password']);
    $gebruiker->login($username, $password);
}

?>
 
Ivo K

Ivo K

05/07/2010 13:43:46
Quote Anchor link
Maar Johan, het controleren en coderen van de userinput, is dat geen onderdeel van het inloggen? Dat lijkt mij tenminste. Zo ja, dan is er een aparte klasse nodig, zou ik zeggen, die dat afhandelt, zoals Jelmer het doet. Of wil je in je functie login die klasse aanroepen, wat mij overigens niet heel raar lijkt.
 
Jelmer -

Jelmer -

05/07/2010 13:47:32
Quote Anchor link
Een gebruiker kan ook een topic bekijken, een gebruiker kan ook een berichtje in het gastenboek lezen, achterlaten, verwijderen... Moet ik daarom al mijn code voor het lezen van een topic en het plaatsen van een berichtje in het gastenboek maar in m'n gebruiker class zetten?

Ik vind het veel handiger om te kijken wat een gebruiker allemaal aangedaan kan worden. Met methods zou je alleen de state van een object, en alleen dat object mogen veranderen. Dat is een van de principes van OOP: encapsulation. De class draagt de volledige verantwoordelijkheid en enkel de verantwoordelijkheid voor zichzelf.

In jouw voorbeeld heeft een interface inderdaad geen zin. In mijn voorbeeld is hij daarentegen heel nuttig. Het is dat PHP een dynamische taal is, maar stel dat het C++ zou zijn geweest, dan was het ook nog eens vereist. Want alleen dankzij die interface weet je zeker dat er een method authenticate bestaat. (Bij C++ zou dat tijdens compile time worden gecontroleerd, bij PHP tijdens runtime, dus bij PHP zou je alsnog wanneer je website al live is pas kunnen merken dat het fout gaat. Maar dat maakt het niet een overbodige controle)
 
Johan Dam

Johan Dam

05/07/2010 14:00:25
Quote Anchor link
ja, de validatie hoort eigenlijk in de login() functie, dat klopt, daar is echter helemaal geen andere classe voor nodig.

in een gastenboek posten / lezen / verwijderen is een mogelijkheid van het gastenboek,
een topic bekijken is een mogelijkheid van de topic.

Als je je hele website 100% OOP wilt hebben, dan horen dat soort functionaliteiten inderdaad in dat soort classes. (goed, wie wil nou een website 100% in OOP?)

Persoonlijk vind ik het overbodig om (in PHP) met een interface te werken, ja, je weet zeker dat een classe de juiste methodes heeft (of beter, je komt erachter wanneer dit niet het geval is) maar ik heb nog niet in een situatie gezeten waar ik een methode vergeten ben.

Mocht je toch zo'n controle willen, dan kan je beter een abstracte classe overerven, zelfde voordeel (behalve dat je meerdere interfaces kan aanroepen en maar 1 classe kan overerven) + het voordeel dat je daar nog echte code in kwijt kan (als ik het me goed herinner)
 



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.