Praktisch voorbeeld public/private/protected

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Python Developer vacature

Jij volgt ontwikkelingen op de voet. Sterker nog: je bent er onderdeel van. Jij loopt voorop. Jij denkt met klanten mee en helpt hen innoveren. Zo kun jij een bijdrage leveren aan de Rabobank-app, de beveiliging van treinen voor Pro-rail verbeteren of de website van ING een boost geven. Vergaderen? Liever gewoon zorgen dat het werkt! Hoe omschrijft men een Sogetist? Gedreven, resultaatgericht en niet snel tevreden. Wat niet wil zeggen dat je nooit met hem of haar kunt lachen. Integendeel. Plezier hoort wat ons betreft net zo goed bij werken. Maar we gaan op de eerste plaats voor de

Bekijk vacature »

Front-end Developer ( Junior/Medior/Senior)

Organisatie Een van de grootste digital agencies van Nederland ben ik opzoek naar een Front-end Ontwikkelaar. Dit zal een hub worden voor innovatieve nationale en internationale samenwerking met ’s werelds grootste multinationals. Hierbij wordt er gewerkt met de nieuwste technieken, van 3D-printen tot VR, en van chatbots tot AI. Als Front-end Developer begrijp je dat kwaliteit alleen kan worden bereikt door een menselijk perspectief te hebben. Je begrijpt dat klanten succesvol geholpen kunnen worden door design technologie en onderzoek met elkaar te verbinden. Deze high-tech organisatie kenmerkt zich door middel van een open en relaxte sfeer. Er is weinig hiërarchie

Bekijk vacature »

Medior/Senior PHP Developer

Organisatie Ruim 10 jaar geleden heeft de eigenaar van dit bedrijf een winkeltje aan huis geopend. Inmiddels telt dit bedrijf 10 jaar latere ruim 100 medewerkers, meerdere grote filialen en zijn ze internationaal actief. Er liggen nog een hoop uitdagingen, zo zijn de ambities om de hele Europese markt te gaan bedienen. Voor een groeiend bedrijf in de regio Den Bosch ben ik opzoek naar een Medior/Senior PHP Developer die samen met een team van 14 ontwikkelaars een webshop verder uit gaat bouwen. Er liggen technisch zeer uitdagende projecten die opgepakt kunnen worden. Iedere afdeling heeft een eigen werkruimte die

Bekijk vacature »

Senior developer PHP/ Laravel

Deze Digital Agency in Barendrecht specialiseert zich met name op klanten in de non-profit sector. Het concept, de code, het design en vervolgens de online marketing wordt volledig uit handen genomen door deze organisatie. Met ruim 15 man in dienst in een organisatie die al ruim 10 jaar bestaat kom je terecht in een omgeving waar zowel backend als frontend developers werken en wat marketeers. Opererend vanuit Barendrecht omgeving bedienen ze de gehele Nederlandse markt met een breed klanten bestand van goede doelen tot overheidsinstanties. De meeste applicaties worden wereldwijd gebruikt en hebben tienduizenden eindgebruikers. Een leuke bijkomstigheid aan deze

Bekijk vacature »

PHP Developer

Organisatie Vanaf de buitenkant is het lastig te zien maar in een kantoor in het centrum van Eindhoven gaat een heuse PHP paradijs schuil, aan de `hemelpoort` beneden bij de receptie zit een lieve dame die jou als een Petrus feilloos weet te vertellen welke kant je op moet om het heilige grond te betreden. Eenmaal boven wacht daar een hemelse bak koffie of thee en verwelkom jij je andere 20 teamleden met een goede (vrijdag)morgen. Vandaag is de dag dat jij je bezig gaat houden met 2 verschillende projecten, een hiervan staat in de ochtend centraal en de andere

Bekijk vacature »

Medior C#/.NET Developer

Ben jij een .NET Developer in hart en nieren en loop jij niet weg van complexe technische uitdagingen op dat vlak dan zij wij voor onze Business Partner op zoek naar jou! Deze organisatie te Amsterdam heeft zich de afgelopen 30 jaar gespecialiseerd in documenten archivering en digitale maatwerk oplossingen. Zij hebben software ontwikkeld dat razendsnel grote documentenstroom kan verwerken. Dit doen zij o.a. voor grote klanten als Siemens, BMW, de Overheid en Airbus. Aangezien zij continu willen blijven innoveren en jaarlijks sterk groeien zijn wij tot de conclusie gekomen dat er extra expertise op het gebied van .NET/C# nodig

Bekijk vacature »

Medior PHP developer gezocht

Bedrijfsinfo Deze groeiende organisatie is constant bezig om verschillende bedrijven te adviseren op het gebied van E-Commerce. Naast het adviseren wordt er ook onafhankelijk advies gegeven. Voor de elke klant wordt er uitgebreide support geboden en online marketing mogelijkheden! Het bedrijf bestaat uit ruim 250 werknemers en is een onderdeel van een overkoepelende organisatie die al 12 jaar bestaat. Het is een erg platte organisatie waar je terecht komt in een team 10 webdevelopers, verdeeld in front-end en back-end. Het uiteindelijke doel is dat je doorgroeit naar een full-stack developer. Functieomschrijving Als back-ender ben je tijdens projecten de technische wederhelft

Bekijk vacature »

Medior C# developer Traineeship

‘Wij willen goede engineers nog beter maken’ is een veelgebruikt gezegde binnen deze organisatie. Vanuit deze organisatie zijn ze op zoek naar de beste top 5% van de markt als het gaat om software ontwikkeling, motivatie en doorzettingsvermogen! Het probleem waar veel banken en verzekeraars tegen aanlopen is dat ze de transitie hebben gemaakt tot softwarehuizen. Om de kwaliteit te waarborgen worden de beste consultants ingehuurd en zijn ze gewend aan de hoge kwaliteit van inhuur. Het probleem is dat dergelijke bedrijven blijven zitten met een gigantisch kennisgat als deze consultants wegvallen. Daar speelt deze organisatie perfect op in door

Bekijk vacature »

Technisch Ontwerper / Applicatieontwikkelaar max.

Uitdagende projecten, afwisseling, de zekerheid van een vast contract en groei is wat CIMSOLUTIONS jou onder andere biedt. Benieuwd hoe wij dit aanpakken? Kom op woensdag 17 april naar ons ICT Professional Event, op 7 locaties in Nederland. Tijdens deze avond kun je naast een hapje en een drankje onze sfeer komen proeven. Maak kennis met CIMSOLUTIONS, onze collega’s en beleef de ervaringen van onze ICT specialisten én de projecten waar zij het verschil maken. Kijk voor meer informatie en/of aanmelden op: https://www.cimsolutions.nl/nl/Evenement/CIMSOLUTIONS-ICT-Professionals-Event Wie zoeken we? Je bent de beste in je vak of hebt de ambitie en de potentie

Bekijk vacature »

Back-end Developer (medior/senior)

BERT is op zoek naar een bedreven en kundige medior/senior back-end developer voor hun kantoor in Enschede! Heb jij ervaring in Java of PHP en lijkt het je een uitdaging om aan internationale projecten te werken? Solliciteer direct! Functie omschrijving Als back-end developer bij BERT ben je een fundamenteel onderdeel van ons multidisciplinaire (ontwikkel)team. Samen met UI/UX-designers, front-end developers en strategen werken we op nationaal en internationaal niveau aan de vetste producties, websites die verleiden, sprankelende campagnes en applicaties die knallen. Je werkt met een Craft CMS-systeem aangepast met eigen ontwikkelde componenten. Je werkt aan toffe klantopdrachten met strakke deadlines

Bekijk vacature »

Junior C# .NET software developer

Organisatie Dit familiebedrijf is gevestigd in de omgeving van Den Bosch en is al ruim 30 jaar actief. Deze organisatie heeft een unieke en eigen zoektechnologie ontwikkeld. Deze technologie wordt onder andere gebruikt door gemeenten en overheden. Het hoofdkantoorgebouw van deze organisatie is een zeer modern complex met een open cultuur. Je merkt aan alles dat dit een familiebedrijf is. Iedereen maakt gezellig een praatje met elkaar en de directeur is bijna dagelijks op de vloer te vinden. De directeur kent de namen van alle medewerkers. Zelfs kent hij in de meeste gevallen de namen van de partners en kinderen

Bekijk vacature »

Full Stack .NET Developer

Requirements You have at least 3 years work experience with; ASP.NET MVC; JavaScript; HTML / CSS; TypeScript experience is preferred, but is not a requirement; Clear codes and patterns; Fluent in the English language (written and spoken); You are energetic, ambitious and proactive; Attention to detail; Available for 32 to 40 hours per week. Living in The Netherlands or willing to relocate (we will provide visa and work permit) Technology that you will be working with: ASP.NET MVC 5, C # 7.2, Microsoft SQL Server, Redis, NHibernate, Fluent NHibernate, Ninject, SharePoint CSOM, Office 365, ADFS, Exchange Web Services, PowerBI; TypeScript,

Bekijk vacature »

Android Developer met mooie doorgroeimogelijkheden

Functieomschrijving Bij deze organisatie kom je te werken aan verschillende opdrachten, zowel aan opdrachten van de klanten van deze organisatie als aan eigen producten van deze club. Je krijgt veel verantwoordelijkheden binnen jouw functie, daarom zijn ze op zoek naar iemand met een groot verantwoordelijkheidsgevoel en iemand die graag meedenkt. Hiervoor ben je onder andere goed op de hoogte van de laatste ontwikkelingen in jouw vakgebied. Beschik jij daarnaast ook over een flinke dosis creativiteit, bedenk jij graag oplossingen en heb je een goed gevoel voor design? Dan kan het maar zo dat ze op zoek zijn naar jou! Functie-eisen

Bekijk vacature »

Mobile Developer

Wat je gaat doen: DPA GEOS is op zoek naar enthousiaste Mobile Developers om het team te versterken. Als Mobile Developer werk je in Agile teams bij onze klanten en ben je verantwoordelijk voor hun grotere mobiele web applicaties. Met collega’s ontwikkel je hoogwaardige software voor verschillende opdrachtgevers in jouw regio. Je ontwikkelt, adviseert over architectuur en past de nieuwste technologieën toe. Je bent een ambitieuze professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande interesse in Mobiele applicaties. Je staat met beide benen op de grond en je kunt goed samenwerken. Je bijt

Bekijk vacature »

.NET developer die ERP software maakt

Organisatie Deze organisatie is al ruim 25 jaar een grote speler als het gaat om ERP oplossingen voor onder meer de bouw- en installatiebranche. Deze organisatie telt meer dan 100 werknemers en is gevestigd in de omgeving van Breda. De klantgerichtheid van deze organisatie maakt het een unieke organisatie. Ze doen er alles aan om een langdurige relatie op de bouwen met de klant. Dit kan alleen als je ook echt in contact bent met de klant. Vergelijkbare bedrijven plaatsen een demo op de website over hoe de software werkt. Deze organisatie doet hier niet aan mee! Ze gaan langs

Bekijk vacature »
Lorre Mertens

Lorre Mertens

23/08/2015 17:14:04
Quote Anchor link
Beste forummers,

Ik ben OOP aan het leren. Ik snap de basis nu, maar kan me moeilijk inbeelden hoe het praktisch gebruikt kan worden.

Kan iemand een praktisch voorbeeld geven van hoe een visibility property bijvoorbeeld nuttig kan zijn?

Mvg
 
PHP hulp

PHP hulp

25/04/2019 04:57:04
Honeypot
 
- Ariën -
Beheerder

- Ariën -

23/08/2015 17:21:11
Quote Anchor link
Lees de OOP-tutorial van phptuts.nl eens door.
 
Lorre Mertens

Lorre Mertens

23/08/2015 17:32:05
Quote Anchor link
Dat heb ik gedaan, een goede tutorial.

Maar; het voorbeeld is daar private $username. Waarom zou je ervoor willen zorgen dat $username niet meer direct te benaderen is? Welk voordeel levert dat op? Beveiliging?
Gewijzigd op 23/08/2015 17:32:13 door Lorre Mertens
 
Wouter J

Wouter J

23/08/2015 18:04:50
Quote Anchor link
Binnen je class wil je een gecontroleerde omgeving hebben. Stel we hebben een BlogPost class die een property $tags heeft, met daarin een array van Tag classes:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
class BlogPost
{
    public $tags = array();

    // ...
}
?>


Hij is nu publiek, dus niks weerhoud ons ervan om hier lekker andere waardes in te gooien:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$blogPost
= new BlogPost('De titel', $content);
$blogPost->tags[] = 'een string mag niet';
$blogPost->tags[] = $blogPost; // een blog post die zichzelf als tag heeft mag ook niet echt...
?>


We hebben dus geen gecontroleerde omgeving meer binnen deze class. Wanneer we de property nu protected maken hebben weer een, voorlopig, gecontroleerde omgeving:
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
<?php
class BlogPost
{
    protected $tags = array();

    public function addTag(Tag $tag)
    {

        // ... we kunnen hier bijv. ook controleren of de tag niet
        // al was toegevoegd

        $this->tags[] = $tag;
    }
}


$post = new BlogPost('De titel', $content);
$post->addTag(new Tag('phphulp'));
$post->addTag('een string'); // Error: Expected instance of Tag, got "string"
?>


We kunnen nu echter nog steeds de class extenden en verkeerde waardes toevoegen, dus maken we er private van zodat we erg echt zeker van zijn dat addTag() de enige manier is om tags toe te voegen aan de BlogPost.
 
Lorre Mertens

Lorre Mertens

23/08/2015 18:20:42
Quote Anchor link
Bedankt voor de heldere uitleg Wouter, het is nu veel duidelijker.
 

23/08/2015 22:35:28
Quote Anchor link
Ik vind PHP in vergelijking met andere talen een onhandige taal om de voordelen van OOP uit te leggen.

Het 'probleem' van een web-omgeving is dat PHP telkens eenmalig reageert op een verzoek van een browser. Dat is nogal procedureel en 'immer gerade aus'. Dan ben je ook nog eens de enige ontwikkelaar, en is het eigenlijk best wel handig dat je overal bij kunt. Private variabelen is dan gewoon onzin. Waarom zou je objecten in het geheugen vasthouden? Geen idee. Lukt ook prima zonder.

Als je deze weg blijft volgen loop je vanzelf tegen een probleem aan, ondanks hergebruik van code via include en require(_once) statements. Afhankelijk van hoe groot je programma wordt, wordt je code steeds meer spaghetti omdat je voor elk scherm weer andere code moet maken. Je kunt alleen nog maar snelheidswinst in programmeren krijgen door je eerdere code te copy-pasten. En als je dan bugs aan de ene kant gaat oplossen ontstaan ze weer aan de andere kant en vice versa. Het schiet niet op, je bent vastgelopen in je eigen denkwerk.

Om code uit elkaar te houden en gestructureerd (als een soort adresboek in familieboomstamvorm) is het concept van OOP geintroduceerd. Wat je dan doet is je code opdelen in zo klein mogelijke stukjes. Dat heeft als voordeel dat die stukjes heel overzichtelijk en foutvrij worden. Je zet die stukjes in een functie (methode) en je groepeert functies die samenwerken in een object. Als je de methoden benoemt naar wat ze doen, kan je je eigen code als een soort pseudo-code lezen, en wordt het voor jezelf volstrekt duidelijk wat de code precies in welke volgorde doet. Documentatie van code heb je dan bijna niet meer nodig.

Om variabelen binnen een naamruimte (namespace ;) qua naam en inhoud per functie gescheiden te houden, heb je een variabele scope met de keuze om variabelen private te houden. Zo van: 'die variabele is niet bedoeld om direct door andere code veranderd te worden', want dan weet je het op een gegeven moment zelf ook niet meer.

Naast dan OOP jezelf ontlast van de internals van je eigengeschreven code, geldt dat ook voor jou met code van anderen en andersom; je hoeft alleen nog maar elkaars API aan te roepen en je bent klaar. Dat vergroot de schaalbaarheid en onderhoudbaarheid van de code enorm. Daarbij worden de objecten/API's een soort zelfbedachte LEGO-stukjes, die niet als spaghetti maar met nopjes aan elkaar hangen, je kunt de code eenvoudig vervangen voor andere code die dezelfde nopjes heeft.

De praktische voorbeelden volgen vanzelf als je code schrijft.
Gewijzigd op 23/08/2015 22:37:12 door
 
Lorre Mertens

Lorre Mertens

23/08/2015 22:50:42
Quote Anchor link
Bedankt An tje, erg waardevol antwoord!
 



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.