Read-only properties/fields

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Front end developer

Functie Het team bestaat uit User Experience designers, Data Scientists en Software Engineers met passie voor hun vak. De consultants en ontwikkelaars werken volgens de Design Thinking methode waarbij de eerste stappen van ontwerp en ontwikkeling zullen samenkomen in een proof of concept. Nadat is vastgesteld dat de oplossing voldoet aan de belangrijkste behoeftes worden producten of services gevalideerd door middel van korte iteraties. Hiermee zorgen ze ervoor dat het werk voldoet aan de technische vereisten en gebruikersbehoefte. Door het inzetten van de nieuwste technologieën die toekomstbestendig zijn weten ze klanten omver te blazen. Ook geven en organiseren ze veel

Bekijk vacature »

C# Ontwikkelaar

Functie omschrijving We are looking for a dutch native speaker Wil jij graag aan de slag als C# ontwikkelaar en jouw skills verder ontwikkelen? Zoek niet verder! Als C# ontwikkelaar ga je aan de slag met de volgende taken: (verdere) ontwikkeling van de software voor de interne processen binnen een .net omgeving; optimaliseren van de dataprocessing; ontwerpen en implementeren van zowel desktop- als web-programmatuur; ontwikkeling van tools ten behoeve van consultants en klanten. Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Den Bosch. Zij ontwikkelen business intelligence software voor een specifieke branche. Dit houdt in dat zij dashboards ontwikkelen

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 »

Front-end developer

Functie Als front-end developer kom je te werken in een team van 30 gedetacheerde, en het team is momenteel flink aan het groeien. Je hebt ervaring met het bouwen van complexe bedrijfsapplicaties waar je gebruik maakt van de nieuwste technologieën waarmee jij elke klant omver blaast. Het gaat om uitdagende projecten met een gemiddelde doorlooptijd van 2 jaar. Hierdoor heb jij echt de volledige focus op een project en kun je flinke impact maken. Het team zit boordevol met ervaren developers die samen dezelfde ambitie delen. Aan de hand van opleidingen en trainingen kun je certificaten halen in jouw expertise

Bekijk vacature »

C# .NET Developer

Functie omschrijving Wij zijn op zoek naar een C# .NET Developer voor een leuke opdrachtgever in de omgeving van Hilversum! Voor een leuk bedrijf in de omgeving van Hilversum zijn wij op zoek naar een Back-end developer die klaar is voor een nieuwe uitdaging. Ben jij iemand die graag aan verschillende projecten werkt en het ook leuk vindt om bij klanten op bezoek te gaan? Dan ben jij de perfecte kandidaat! Deze functie is erg divers, je moet dus goed kunnen schakelen. Je komt te werken in een klein team van developers. Binnen het bedrijf hangt er een gemoedelijke informele

Bekijk vacature »

Ervaren C#.NET programmeur

Functieomschrijving Voor een moderne werkgever in regio Prinsenbeek zijn wij op zoek naar een ervaren C#.NET programmeur die graag de uitdaging aangaat. Je houdt je bezig met het ontwikkelen van maatwerk webapplicaties voor diverse klanten, waarbij complexe processen optimaal worden ondersteund. Verder ziet jouw takenpakket er als volgt uit: Ontwikkelen en onderhouden van C#.NET-applicaties; Schrijven van hoogwaardige, herbruikbare codes; Schrijven van technische documentatie en gebruikershandleidingen; Bijdragen aan het ontwerp en de architectuur van softwaretoepassingen; Troubleshooten en oplossen van bugs in softwaretoepassingen; Werken met databases en dataopslagoplossingen; Implementeren van beveiligingsoplossingen en het waarborgen van de beveiliging van applicaties en gegevens. Bedrijfsprofiel

Bekijk vacature »

Fullstack JavaScript Developer Webapplicaties

Bedrijfsomschrijving Voor deze organisatie ben ik op zoek naar een getalenteerde Fullstack JavaScript Developer. Ze is een snelgroeiend software development agency dat zich richt op het ontwikkelen van moderne webapplicaties en complexe systemen voor haar klanten. Ze is gevestigd onder de rook van Utrecht en heeft als doel om tot de top van de Nederlandse agencies te behoren. Deze organisatie maakt softwareoplossingen voor verschillende soorten bedrijven. Innovatie staat hoog in het vaandel en je zult dus met nieuwe technieken aan de slag gaan. Ze hebben klanten in vele branches zitten, zoals retail, finance, gezondheid en onderwijs. De diverse klanten zorgen

Bekijk vacature »

.NET developer

Functie Als junior .NET Developer start jij in een team met 15 developers. In het team is er genoeg senioriteit om ervoor te zorgen dat jij de juiste begeleiding krijgt. Jij begint als eerst alle software pakketten en processen eigen te maken. Vervolgens ga jij deze software programmeren, onderhouden en testen. Ook ga jij research doen naar nieuwe mogelijkheden en zoek jij uit hoe je dit kan implementeren. Jullie werken intern op project basis en afhankelijk van het project werken jullie wel of niet iedere ochtend met een standup. 50% van jullie werkzaamheden is maatwerk en de overige 50% is

Bekijk vacature »

Junior Software Developer (HBO / WO)

Functie omschrijving Voor een leuke opdrachtgever zijn wij op zoek naar een Junior Software Developer! 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? Dan hebben wij bij Jelling IT Professionals de perfecte opdrachtgever in de omgeving van Hoofddorp. Binnen deze functie vervul je een onsite learning programma waarbij je aan de slag gaat met PHP en Laravel. Hierbij ben je voornamelijk werkzaam op verschillende klantlocaties en is het jouw taak om hun wensen en eisen

Bekijk vacature »

Fullstack developer

Zie jij mogelijkheden om onze tooling technisch te verbeteren en uit te bouwen? Over Jobmatix Jobmatix is een innovatieve en internationale speler op het gebied van jobmarketing. Onze jobmarketing automation tool helpt organisaties bij het aantrekken van nieuw talent door vacatures digitaal, geautomatiseerd en op een efficiënte manier te adverteren en onder de aandacht te brengen bij de doelgroep op 25+ jobboards. Volledig performance-based, waarbij organisaties betalen op basis van cost per click of cost per applicant. Maandelijks wordt onze jobmarketing automation tool al gebruikt door vele directe werkgevers, intermediairs en mediabureaus, waaronder Picnic, Rijkswaterstaat, AdverOnline, Schiphol, DPA, Teleperformance en

Bekijk vacature »

Software Ontwikkelaar PHP

Functie omschrijving Software Ontwikkelaar PHP gezocht! Wij zijn op zoek naar een ervaren PHP Software Ontwikkelaar om het team van onze opdrachtgever te versterken! De ideale kandidaat zal fungeren als verlengstuk van klanten en complexe technische vraagstukken met enthousiasme benaderen. Naast het werken met de nieuwste technologieën, ben je in staat om aan meerdere projecten tegelijkertijd te werken. Als je deze uitdaging aangaat, werk je nauw samen met front-end developers en draag je bij aan het realiseren van grote veranderingen bij klanten. Het bedrijf zoekt iemand die zichzelf graag uitdaagt en altijd streeft naar het leveren van de beste resultaten.

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET Core developer wordt jij onderdeel van ons team met drie breed ontwikkelde software engineers en een flexibele schil met zes ervaren freelancers. Jij gaat mee in de visie van onze organisatie om als IoT partner in deze branche specifieke markt “het” platform te blijven innoveren en deze ook steeds slimmer te maken. Wij hopen dan ook zeker dit in de toekomst te kunnen realiseren met bijvoorbeeld Artificial Intelligence. De architectuur van ons platform is opgemaakt uit een deel eigen protocol, een interface laag en een laag welke de protocollen van derde partijen vertaald naar het eigen

Bekijk vacature »

PHP Developer - Draag bij aan de maatschappij!

Bedrijfsomschrijving Wil jij als applicatieontwikkelaar deel uitmaken van een gedreven ontwikkelteam en werken aan innovatieve producten? Dan hebben wij dé uitdaging voor jou! Wij zijn op zoek naar een enthousiaste collega die samen met ons de technische ondergrond van onze producten verder wil ontwikkelen met behulp van PHP. Met jouw expertise geef je de finishing touch aan onze producten om jezelf steeds opnieuw weer te verrassen. Functieomschrijving Bij ons staan innovatie en creativiteit centraal. Wij zijn op zoek naar een enthousiaste PHP ontwikkelaar die nieuwe ideeën en inzichten kan inbrengen en daarmee zichzelf en het team verder kan laten groeien.

Bekijk vacature »

JAVA Programmeur

Bedrijfsomschrijving Functieomschrijving We zoeken per direct enthousiaste software engineers die ons team komen versterken.We werken in DevOps teams met een sterk gevoel voor verantwoordelijkheid. Er wordt nauw samengewerkt met ons Business analyse team (BAT), met onze uitvoerende medewerkers en met de DevOps teams onderling binnen het domein. Het liefst hebben we veel en vaak interactie met onze interne en externe eindgebruikers om zo de juiste dingen te maken. We werken multidisciplinair in een dynamische omgeving. Achtergrond opdracht De Businesseenheid Examens is verantwoordelijk voor de logistiek van de staatsexamens Voortgezet (speciaal) onderwijs, Nederlands als 2e taal en schoolexamens. In het kader

Bekijk vacature »

(Junior) Back-end Ontwikkelaar

Functie omschrijving We are looking for a dutch native speaker Altijd al willen werken bij een organisatie, die maatwerk applicaties bouwt, die echt impact hebben in de maatschappij? Dit is je kans. Voor een kleine organisatie in de regio van Eindhoven ben ik op zoek naar een C# Ontwikkelaar. Jij gaat aan de slag met de ontwikkeling van maatwerk software en applicaties. Deze organisatie werkt voor grote organisaties in Nederland, maar ook voor het MKB. De projecten waar je aan gaat werken zijn erg divers, waardoor je werk uitdagend blijft en je erg veel kan leren. Verder ga je aan

Bekijk vacature »
Pieter Jansen

Pieter Jansen

30/01/2012 21:24:06
Quote Anchor link
Beste leden,

Is het in PHP mogelijk om velden ( properties ) als read-only in te stellen? Althans, om toegang tot te krijgen. Je hebt dus wel een Setter() nodig maar geen Getter(), dat je dus gewoon $object->property kunt gebruiken. Het enige is dan dat je dus niet: $this->property = new SomeObject(); kunt doen. Daar zou je dus de Setter() voor moeten gebruiken.. Iemand een ideetje?
 
PHP hulp

PHP hulp

24/11/2024 00:21:55
 
- Jim  -

- Jim -

30/01/2012 22:36:45
Quote Anchor link
De property/fied private maken, en alleen een setter gebruiken.

Je bovenstaande bericht is wat verwarrend..
Merijn Venema op 30/01/2012 21:24:06:
Is het in PHP mogelijk om velden ( properties ) als read-only in te stellen? Althans, om toegang tot te krijgen. Je hebt dus wel een Setter() nodig maar geen Getter(), dat je dus ...
Gewijzigd op 30/01/2012 22:46:22 door - Jim -
 
Pieter Jansen

Pieter Jansen

30/01/2012 22:39:26
Quote Anchor link
Ja dat werkt natuurlijk niet. Als iets private is is het niet buiten de klasse toegankelijk.

$object = new Object();

// moet wel kunnen
echo $object->property;
// moet niet kunnen
$object->property = "Some value";
 
- Jim  -

- Jim -

30/01/2012 22:44:00
Quote Anchor link
Ja, nee....

ik bedoel:

Een private property maken, en een getter:
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
<?php
class SomeClass {
    
    // The property private
    private $prop;
    
    // CTor
    public function SomeClass($propVal)
    {

        // Set the property in the constructor
        $this->prop = $propVal;
    }

    
    // GETTER
    // Get the value or prop

    public function GetProp()
    {

        return $this->prop;
    }
}

?>
Gewijzigd op 30/01/2012 22:46:43 door - Jim -
 
Pieter Jansen

Pieter Jansen

30/01/2012 22:46:50
Quote Anchor link
Ja maar zoals ik het bedoel is dat een property dus read-only is. Buiten een getter om toegankelijk. In bijvoorbeeld C# kun je handig en snel Getters en Setters maken die te benaderen zijn als properties. Voordeel? Het scheelt 2 haakjes en het oogt netter.

$object->GetProperty() is minder mooi als $object->property. Enige nadeel is dat de property dus ook te overschrijven is op die manier. In een Set methode kun je nog wat feitjes controleren etc, maar hier is het gewoon klats-boem hupakee, overschrijven.
 
Jelle -

Jelle -

30/01/2012 22:53:59
Quote Anchor link
Misschien dat je de magic __get en __set kunt overloaden:

http://php.net/manual/en/language.oop5.overloading.php

Ik denk dat je daar wel wat mee kunt, zie voornamelijk example #1
 
Pieter Jansen

Pieter Jansen

30/01/2012 22:56:08
Quote Anchor link
Ah kijk, ik had al een grijs vermoeden. Maar is dat niet vrij traag? __get en __set zijn toch een beetje no-go methodes om te overloaden?
 
Kees Schepers

kees Schepers

31/01/2012 09:19:46
Quote Anchor link
__get en __set traag? Dat is dan net zo traag als getPropertyName(). En deze magic methods zijn JUIST om te overloaden :)

Maar als je van een C/C++ achtergrond oid komt dan zullen 'magic methods' je wel vreemd klinken inderdaad, PHP is zowat de enige taal die zoiets implementeert.
 
Pieter Jansen

Pieter Jansen

31/01/2012 21:18:28
Quote Anchor link
Oke, dus eigenlijk is het vrij veilig om te implementeren? Heb het al even toegevoegd:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php

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


?>
 
Wouter J

Wouter J

31/01/2012 21:30:17
Quote Anchor link
Je moet dan wel controleren of iets een read-only propertie is of niet (ik neem aan dat je niet alleen read-only properties hebt) en anders een Exception gooien:
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
<?php

class Example
  protected $foo;
  protected $ro_bar;

  public function __get( $name )
  {

    $name = ( substr($name, 0, 3) !== 'ro_' ? 'ro_'.$name : $name );
    if( isset($this->$name) )
      return $this->$name;
    else
      throw new LogicException('You don't have permission to get the propertie '.$name);
  }
}


$example = new Example;
$example->foo; // throw exception
$example->bar; // give the value of bar
?>

Is wel een lelijke methode, maar ik zou niet weten hoe je het anders moet implenteren.
Gewijzigd op 31/01/2012 21:32:03 door Wouter J
 
Pieter Jansen

Pieter Jansen

31/01/2012 21:33:57
Quote Anchor link
Hmm goed punt. Ja ik denk dat je inderdaad nog iets nodig moet hebben dat er voor zorgt dat het als een read-only property hanteerbaar is... Aan de andere kant.. Nee, je hebt gelijk. Misschien is het sowieso beter om gewoon getters te hanteren. Ik zie de bui we hangen dat je straks wachtwoorden of sleutels in je object opgeslagen hebt met een private modifier en ze toch leuk uit kunt lezen..

Hmm hier moet wat op te verzinnen zijn. Misschien een _ op het einde?
Gewijzigd op 31/01/2012 21:35:03 door Pieter Jansen
 
Wouter J

Wouter J

31/01/2012 21:54:45
Quote Anchor link
Ik heb het nu geprobeerd met een ro_ in het begin (van read only). Maar misschien moet je nog een extra propertie aanmaken met de read only properties erin, of een var in de get functie:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
public function __get( $name )
{

  $readOnlies = Array('foo', 'someVar');
  if( in_array($name, $readOnlies) )
    return $this->$name;
  else
    throw new InvalidArgumentException(sprintf('Property(%s) not read only', $name));
}

?>
Gewijzigd op 31/01/2012 21:55:23 door Wouter J
 
Pieter Jansen

Pieter Jansen

31/01/2012 21:59:25
Quote Anchor link
Ja ik had het door, maar vond dat iets te lelijk om door te voeren. Een underscore op het einde is ook niet mooi, maar valt nog wel te hanteren, enige wat je hoeft te doen is een extra character toevoegen.

Maar een array bijhouden is misschien ook nog wel iets. Jammer dat we geen keywords hebben die niet nodig zijn en kunnen hanteren en vervolgens checken of een property van type xx is... Ik denk dat ik voor een array ga. Enige nadeel is echter dat door het overloaden van de __get() je niet dynamisch velden kunt toevoegen en op kunt vragen, aangezien je niet dynamisch.. shit.. ik ben echt dom van tijd tot tijd..
 



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.