Praktisch voorbeeld public/private/protected

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ervaren .NET Back-End Developer

Organisatie Ben jij een programmeur die houdt van het afleveren van producten in hoog tempo? Niet tot in den treuren werken aan iets wat daarna misschien wel, misschien niet gebruikt wordt. Dan wil je gegarandeerd verder lezen! Dit in een industrieel gelegen pand gevestigde bedrijf focust zich volledig op de ontwikkeling van apps en websites. Hierbij werken ze intensief binnen het zelf gecreëerde CMS systeem. In deze high-paced omgeving moet je snel schakelen. Ze hebben een ontzettend groot klantenbestand die allemaal de producten willen afnemen. Om dit te realiseren werken ze in de .NET omgeving. Jouw functie richt zich volledig

Bekijk vacature »

Gemotiveerde Senior PHP Developer (Symfony)

Organisatie Stel je voor; je schakelt binnen een van de meest toonaangevende organisaties binnen de zorg- en verzekeringsbranche. De informatie die feilloos door de zeer complexe applicaties stroomt die jij en je team elke dag weer perfectioneren is uiterst betrouwbaar. Jij bent dan ook een absolute PHP-held die zich kan vinden in het gezegde; ‘’onmogelijk bestaat niet, het kost alleen wat meer tijd’’. Je bekleed de rol van PHP developer binnen een team van absolute eindbazen op het gebied van software development. De producten en opdrachten zijn zeer divers, maar dat jij telkens weer diep in de code duikt verandert

Bekijk vacature »

C# developer / nieuwbouw / Cloud infrastructuur

Functieomschrijving C# .NET / ASP .NET / Microsoft / Cloud / Azure Verantwoordelijk voor het ontwerpen en ontwikkelen van nieuwe software modules op het cloud platform; Verantwoordelijk voor het implementeren van applicaties; Verantwoordelijk voor het integreren van API's (JSON/REST); Ontwikkelen en uitvoeren van validatietests. Functie-eisen Minimaal HBO/WO opleiding (richting IT, wiskunde of andere BETA opleidingen); Minimaal 3 jaar ervaring als C# Ontwikkelaar; Ervaring met cloud infrastructuren (Azure); Kennis van Agile development pricipes en tools: bitbucket, confluence, Jira; Kennis van SQL, SQL Server, Oracle, API Management, REST en JSON is een pré; Goede beheersing van de Nederlandse en Engelse taal. Bedrijfsomschrijving

Bekijk vacature »

Innovatieve Back-end Software ONTWIKKELAAR HBO C#

Innovatieve Back-end SoftwareONTWIKKELAAR HBO C# SQL Voor de uitbreiding van ons ontwikkelteam zijn we op zoek naar een enthousiaste ontwikkelaar die deel uit komt maken van ons team voor de ontwikkeling van interne applicaties en databases Onze toepassingen en data zijn bedoeld voor professionals in de auto- en verzekeringsbranche. Wij maken gebruik van bekende ontwikkeltalen, design patterns, frameworks en tools zoals Scrum, C#, SQL, enz.. Er wordt in een scrum team van 2 man gewerkt en er is ruimte om nieuwe ideeën- en innovaties te verkennen en te ontwikkelen. Bedrijfsprofiel: Onze software AutotelexPRO wordt door bijna alle autobedrijven gebruikt om

Bekijk vacature »

PHP Developer

Organisatie Wanneer je binnen komt lopen bij dit bedrijf zie je meteen waarom dit bedrijf zo goed gegroeid is! De kwaliteit is namelijk van het hoogste niveau. Wat begonnen is op een zolderkamer is uitgegroeid tot een organisatie waar tijdens het hoogseizoen zo’n 300 mensen werken. In de showroom staat een greep van de collectie prachtig uitgesteld en zie je meteen waar je het voor doet. Aan de muur hangen verschillende awards die zij gewonnen hebben en middels zijn ze Nederland al ontgroeid. Ze hebben voet aan de grond in onze buurlanden maar ook Frankrijk en dit is nog maar

Bekijk vacature »

PHP Developer

Jij draagt bij aan het vlaggenschip platform binnen deze organisatie. Dit platform draagt bij aan het selecteren van de juiste mediakanalen om zowel passieve als actieve kandidaten te bereiken. Hun doel is om het platform voor de klanten zo gebruiksvriendelijk mogelijk te maken. Je werkt in een agile (scrum) omgeving waarin jij je bijdrage levert applicaties en diensten van hoge kwaliteit. Hierbij ga je proactief ontwikkelingsplannen leiden voor nieuwe productinitiatieven en functieontwikkelingen. Samen met jou team ondersteun je het DevOps team bij het gebruiken van werkwijzen zoals CI, CD en geautomatiseerde releasemanagement. Je werkt in een team met ervaren webontwikkelaars

Bekijk vacature »

Junior Full-Stack Developer

Organisatie Dit bedrijf stond aan de voorgrond van de webdesign bureau’s. Zij zijn een van de eerste geweest die hun eigen CMS hebben ontwikkeld om de klant mee verder te helpen. Inmiddels zijn ze uitgegroeid tot een speler die zich begeeft tussen de kleine en de grote bedrijven in. Dat vinden ze prettig en daar willen ze ook blijven. Ze werken nu voor klanten die zelfs buiten de aarde actief zijn(!) Maar zo hebben ze ook een digitaal e-learning platform ontwikkeld wat er voor zorgt dat ouderen, en minder begaafde dingen ook met voor hun moeilijke dingen overweg kunnen. Hier

Bekijk vacature »

Junior PHP Developer

Bedrijfsinfo De organisatie is ruim 3 jaar geleden opgericht door 2 vrienden die van hun hobby hun werk wilde maken . Het bedrijf liggend in de regio Den Bosch bestaat uit 6 werknemers waarvan 1 front end en 2 back end developers en is gelegen in een grote oude kerk. De core business van het bedrijf is het maken van response websites. Daarbuiten richten ze zich op een stukje maatwebsites en het ontwerpen van huisstijlen van bedrijven. Ze werken sinds kort op een framework vergelijkbaar met Symony2. Functieomschrijving Binnen het bedrijf ga je aan de slag als junior ontwikkelaar ga

Bekijk vacature »

Senior PHP Developer

Heb jij het gevoel dat je uitgeleerd bent binnen de organisatie? Dat je het glazen plafond bereikt hebt of dat je niet genoeg verschil kunt maken binnen de organisatie? Denk jij dat je genoeg PHP (OOP/MVC) ervaring hebt opgedaan en daarnaast de leiding kan nemen over een product dat gebruikt wordt door A merken? Lijkt jou het leuk om met niet alleen maar techneuten samen te zitten maar ook te schakelen met de marketing, sales en support? LEES SNEL VERDER! Organisatie Op een van de vetste locaties in Eindhoven is deze organisatie gevestigd. Je komt binnen in een groot glazen

Bekijk vacature »

Medior .NET developer / Utrecht /

Wil jij werken op de mooiste locatie van de Utrechtse Heuvelrug? Wordt je beperkt in je huidige werk en wil je op zoek naar die baan met veel vrijheid? En wil je werken met een leuke club ontwikkelaars die passie hebben voor het werk wat ze doen? Dan ben ik op zoek naar jou! Organisatie: Deze organisatie is gelegen, zoals de titel al vermeld, midden in de Utrechtse Heuvelrug. Lekker wandelen in de pauze, of een wild zwijn spotten vanaf je eigen bureau? Alles is hier mogelijk! Met 20 man sterk kan deze organisatie als klein & informeel worden beschouwd,

Bekijk vacature »

Senior PHP Developer

Organisatie Vroeger bestond ‘vandaag besteld morgen in huis’ nog niet. Vandaag de dag zorgt dat bij veel bedrijven er voor dat ze het gehele e-commerce platform om moeten gooien en vernieuwen om met de tijd mee te gaan. Bij mijn opdrachtgever ligt een van deze uitdagingen. Dit bedrijf is actief in meer dan 30 landen waarvan ze meer dan 850.000 klanten hebben en dagelijks meer dan 25.000 bezoekers op de platformen. Alle websites zijn meertalig en spelen in op de behoefte van het land. In 2005 is het bedrijf opgericht Door groei en vraag in de markt is het de

Bekijk vacature »

Medior .NET Developer

Organisatie Al meer dan 10 jaar helpt dit toonaangevende bedrijf haar klanten met software ten behoeve van de manier van verkopen aan eindgebruikers. Innovatief zijn is hierin ontzettend belangrijk, vanwege de constante ontwikkelingen op het gebied van technologie in combinatie met de manier van verkopen. Verder staat binnen dit softwarehuis de gebruiksvriendelijkheid van de software voor de eindgebruiker centraal. Aangezien deze organisatie gelegen is in hartje centrum van Utrecht, kun je in de pauze makkelijk de stad in of een wandeling maken in het park. Functie Onder de 12 werknemers binnen de organisatie, vallen 3 gepassioneerde developers. Je komt dus

Bekijk vacature »

Medior/Senior PHP Developer

Organisatie Dit bedrijf bestaat nu sinds 2013 en is sindsdien uitgegroeid tot een van de grootste tools voor webshops om hun bestellingen mee te verzenden. Op dit moment zijn er twaalf werknemers actief verdeeld over development, sales/marketing en administratie. Waar ze voorheen de groei lieten verwezenlijken door de salesafdeling hebben ze het nu compleet omgegooid. In plaats van sales te leiden is het nu de IT die bepaalt welke koers het bedrijf gaat varen. Binnen het bedrijf hangt een informele sfeer waar iedereen goed samenwerkt aan een gezamenlijk doel namelijk: “Verzenden makkelijker maken, voor iedereen!” Functie Je komt te werken

Bekijk vacature »

Front End Developer

Organisatie Voor een bedrijf in Amsterdam ben ik opzoek naar een Front-end Developer. Deze organisatie ontwikkelt een eigen SaaS oplossing die door de grootste zorginstellingen in Nederland worden gebruikt Dit doen ze uit de ijzersterke fundering die 25 (!) jaar geleden gelegd is. Ondertussen is deze organisatie marktleider in wat zij doen en focussen ze zich volledig op de toekomst. Er zijn veel ouderentehuizen en zorginstellingen voor gehandicapten in Nederland. In die instellingen moeten verpleegsters natuurlijk het dossier hebben van die patiënt om de juiste zorgt te kunnen aanbieden en administratie te doen. Tegenwoordig hoeven ze dat niet meer op

Bekijk vacature »

Native Mobile developer en eigen Apps ontwikkelen!

Functieomschrijving De organisatie is op zoek naar een mobile developer die zich thuis voelt in het werken met Android of iOS. Met een team van developers ga je aan de slag om innovatieve apps te ontwikkelen. Door het hoge kennisniveau van het team leer je elke dag bij. Je werkt op verschillende projecten zowel in teamverband als zelfstandig. Om dit hoge kennisniveau te handhaven is de organisatie op zoek naar iemand die een grote passie heeft voor mobile development en graag elke dag wil leren. Daarnaast is het erg belangrijk dat je graag op de hoogte blijft van de nieuwste

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

22/08/2019 18:47:01
 
- 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.