[oop] setFoo en/of setFoos?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Low code Developer

Dit ga je doen Je richt je op het doorontwikkelen van bestaande applicaties en het geheel van scratch af aan opzetten van nieuwe applicaties binnen een low code platform; Je beoordeelt technisch ontwerpen en maakt de vertaalslag naar de technische oplossingen binnen het platform; Je voert testwerkzaamheden uit; Je adviseert de organisatie op jouw vakgebied; Je schakelt met business analisten en de architect om tot mooie oplossingen te komen; Je lost bugs op en denkt mee over een structurele oplossing. Hier ga je werken Het gaat om een bekend internationaal handelsbedrijf met ruim 800 medewerkers, verdeeld over verschillende deelbedrijven. Deze

Bekijk vacature »

Senior Developer ERP Dynamics 365

Samengevat: Deze werkgever is een softwarebedrijf. Ben jij een enthousiaste developer? Heb je ervaring met ERP of Dynamic 365 bussines central? Vaste baan: ERP Applicatie Specialist ERP MBO €3.600 - €5.200 Wij houden ons als bedrijf bezig met het leveren en implementeren van het Microsoft Dynamics pakket binnen verschillende industriële sectoren. Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. Binnen ons open team is er een no-nonsense cultuur. Daarnaast is er veel onderling contact door de korte communicatielijnen. Het team werkt enthousiast samen om een

Bekijk vacature »

Software developer - senior

Functie omschrijving Voor een echt softwarebedrijf in omgeving Gouda zijn wij op zoek naar versterking voor de afdeling Software Development! Ben jij op zoek naar een werkgever waar meerdere software developers werken aan interessante projecten? Ben jij op zoek naar een werkgever waar je onderdeel wordt van een team dat echt passie heeft voor het ontwikkelen van software? Dan ben je hier aan het juiste adres! Als softwareontwikkelaar kom je terecht bij een onafhankelijk, door kwaliteit gedreven, doortastend en daarbij op een Agile wijze werkend bedrijf. Ben jij een expert in het vertalen van Componenten van Functionaliteit naar Business lagen?

Bekijk vacature »

3D BIM Add-on Developer

As a 3D BIM add- on developer at KUBUS, you will develop add-ons (called BCF- Managers) to the leading building information modeling (BIM) programs Revit, Navisworks, Archicad, AutoCAD and Tekla Structures. BCF Managers enable data transfer between BIM software and BIMcollab. You will work on both the front- and the back-end. As a software company, KUBUS is in a unique position. We build our own products that are used by tens of thousands of users worldwide. Our company is just the right size: big enough to make a real impact in the market, but small enough that as an individual

Bekijk vacature »

Frontend Developer

Functieomschrijving Voor de NIPV zijn wij opzoek naar een Frontend Developer. Als Frontend Developer ga jij aan de slag om dashboards te bouwen vanuit het datawarehouse. Dit stelt NIPV in staat om snel en eenvoudig bij correcte bedrijfsvoeringsinformatie te kunnen. Je ontwikkelt dashboards in PowerBI, publiceert en onderhoud die, verzameld en verwerkt feedback in overleg met het ontwikkelteam. Naast dashboards ontwikkel en onderhoud je een datamodel in Excel waarmee adviseurs, controllers en analisten in staat worden gesteld om de gegevens uit de dashboards te raadplegen en anders te filteren of bepaalde gegevens nader te verfijnen, zodat verdiepende vragen kunnen worden

Bekijk vacature »

Junior .NET developer

Functie Jij hebt natuurlijk net jouw Bachelor op zak en gaat nu voor het eerst aan de slag bij een werkgever als junior .NET ontwikkelaar. Waarschijnlijk lijkt het jou spannend om ineens aan de slag te gaan bij klanten in de consultancy. Maak je niet druk, jij komt hier terecht in een warm bad en wordt totaal niet in het diepe gegooid. Zodra jij hier begint wordt jij gekoppeld aan een persoonlijke manager met een persoonlijk ontwikkelplan. Jij krijgt een scala aan trainingen, denk aan trainingen ten behoeve van het opdoen van zelf kennis en gedragscompetenties, maar ook trainingen voor

Bekijk vacature »

Software Ontwikkelaar .NET te Zaandam

Bedrijfsomschrijving Je komt hier terecht bij een door-en-door softwarebedrijf, waarbinnen meerdere SaaS pakketten worden ontwikkelt voor diverse sectoren. Hierbij kun je denken aan bijvoorbeeld de logistieke en medische branche. Deze organisatie kenmerkt zich door de hoge mate van complexiteit in de applicaties, wat betekent dat jij je hier niet zal gaan vervelen. Integendeel: Jij gaat hier elke dag ontzettend veel leren en je in razend tempo ontwikkelen als C# .Net Developer met focus op back-end. Het team bestaat uit ongeveer 20 personen personen, waarvan het grootste deel zich richt op software development. De sfeer is informeel en professioneel. De producten

Bekijk vacature »

3D BIM Add-on Developer

Als 3D BIM add- on ontwikkelaar bij KUBUS ontwikkel je add-ons (BCF Managers genaamd) voor de toonaangevende building information modeling (BIM) programma's Revit, Navisworks, Archicad, AutoCAD en Tekla Structures. BCF Managers maken gegevensoverdracht mogelijk tussen BIM-software en BIMcollab. Je werkt zowel aan de front- als aan de back-end. Als softwarebedrijf bevindt KUBUS zich in een unieke positie. We bouwen aan onze eigen producten die wereldwijd door tienduizenden gebruikers worden gebruikt. Ons bedrijf heeft precies de juiste grootte: groot genoeg om echt impact te maken in de markt, maar klein genoeg om als individuele ontwikkelaar invloed uit te kunnen oefenen en

Bekijk vacature »

SAP ABAP Developer

Dit ga je doen Software ontwikkeling met behulp van o.a. ABAP, Sapscript en Smartforms Maatwerk development op SAP ECC 6.0, in de toekomst S/4 HANA Samenwerken met Business Analisten die functioneel en technisch ontwerpen aanleveren Testen van opgeleverde software Bugfixing Ondersteuning van eindgebruikers Hier ga je werken Onze klant, een internationaal gevestigd productiebedrijf dat mensen blij maakt, is ter versterking op zoek naar een ABAP Developer voor hun SAP team. Het team van 4 mensen verzorgt de ontwikkeling van maatwerk voor de SAP omgeving waar wordt gewerkt met modules SD, FI/CO, PM en MM. Momenteel draait het bedrijf op SAP

Bekijk vacature »

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: Testen en valideren van de ontwikkelde software. Ontwikkelen en onderhouden van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je gaat aan de slag met diverse technologieën en frameworks. Denk hierbij aan C#, JS frameworks, HTML, CSS, TypeScript,

Bekijk vacature »

Full stack Javascript ontwikkelaar

Functie Benieuwd hoe jouw dag eruit ziet? Je komt binnen rond een uur of 10 en dat start je met de morning call. Dit doen we vanaf het hoofdkantoor of op het lab, ligt eraan welk project je mee bezig bent. Na de call en het verdelen van de tickets ga je met je team aan de slag. Rond een uur of 12 is er een goede lunch en ga je smiddags weer lekker door met je werk. De ene keer maak jij een game voor een groot merk om de interactie tussen product en eindgebruiker te vergroten. De andere

Bekijk vacature »

Lead Front-end developer

Functie Hun huidige applicatie worden ontwikkeld in o.a. React, Redux, TypeScript. Ze werken graag met de nieuwste technieken en tooling en zoeken ook developers die hier proactief op zoek naar gaan. Als senior/lead developer ben je een kartrekker in het team. Naast het meedenken over bijvoorbeeld de architectuur of toepassing van nieuwe technieken krijg je ook veel tijd om de meer junior (front-end) developers te begeleiden. Zo kun je bijvoorbeeld 1 dag in de week met 2 collega’s bezig zijn om samen met hen te kijken naar hun ontwikkeling, doelstellingen en uiteraard de gewenste begeleiding hierin. Hiernaast sta je als

Bekijk vacature »

Medior Java developer

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Java developer

Als Java Developer bij Sogeti ben je onderdeel van onze toonaangevende community die bestaat uit ruim 100 gepassioneerde Java professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze top-opdrachtgevers. Geen werkdag is hetzelfde! Je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfs kritische systemen voor onze klanten in regio Noordoost zoals DUO, ING, CJIB en Tendernet. Natuurlijk krijg jij de mogelijkheid je verder te certificeren in dit vakgebied. We organiseren regelmatig technische Meetups en doen veel aan kennisdeling. Sogetisten hebben plezier in hun werk en staan

Bekijk vacature »

.NET developer

Functie Als .NET developer werk jij samen in een multidisciplinair ontwikkel team met 1-2 Senior .NET developers, twee front-end developers, Data Scientists en één UX designer. Als team werken jullie aan het ontwikkelen van een Cloud based applicatie en aan het stabieler maken van deze applicatie. Ook unit testing gaat erg belangrijk worden in jouw nieuwe functie. Samen met de Senior .NET ontwikkelaar wordt jij verantwoordelijk voor het ontwikkelen van de API. Jullie werken met veel data en incidenteel komen er ook data vraagstukken en zullen er wat queries gedraaid moeten worden. Dit betekend dat jij veel gaat werken met

Bekijk vacature »

Pagina: 1 2 3 volgende »

Ozzie PHP

Ozzie PHP

05/07/2013 16:44:12
Quote Anchor link
Hallo,

Ik vraag me iets af. Ik heb functies waarbij je 1 "foo" wilt instellen en functies waarbij je meerdere "foos" wilt instellen. Bijv.

setPath($id, $path) // om 1 path in te stellen
setPaths($paths) // om meerdere paths in te stellen ($paths is een array)

Nu vraag ik me af of dat een goede gewoonte is. Ik gebruik 2 functies met bijna dezelfde functionaliteit, alleen in de ene situatie set je dus 1 foo, en in de andere situatie meerdere foos. Ik doe het op deze manier omdat ik denk dat dat efficiënt is. Je roept immers meteen de juiste functie aan.

Ik zou er ook voor kunnen kiezen om alles in 1 method te stoppen en dan op basis van het meegegeven argument te bepalen of er 1 foo moet worden geset of meerdere foos.

Dit komt bij mij best vaak voor. Zo heb ik nu in mijn mail class bijv. deze methods:

setBcc
setBccs
setCc
setCcs
setTo
setTos

Allemaal dubbele functies dus. Is dat wel of niet wenselijk? Het voordeel vind ik dat een functie altijd het juiste argument ontvangt en er dus geen extra controle hoeft plaats te vinden (betere performance). Het nadeel is dat je dus dubbele functies krijgt.

Graag jullie advies.
 
PHP hulp

PHP hulp

28/03/2024 19:51:09
 
Wouter J

Wouter J

05/07/2013 17:11:41
Quote Anchor link
Normaal gesproken heb ik dan altijd setBcc om een array op te geven die de waarde overschrijft en een addBcc om iemand toe te voegen.
 
Ozzie PHP

Ozzie PHP

05/07/2013 18:09:34
Quote Anchor link
Wouter, oke... maar jouw setBcc functie kan dus of 1 persoon toevoegen, of een heleboel?

Ander voorbeeld... ik wil een path toevoegen en heb een addPath($id, $path) method, maar wat nu als ik ineens 100 paden wil toevoegen. Lijkt me niet handig om dan 100x die addPath method aan te roepen. Dan kunnen we 2 dingen doen lijkt mij. Of we maken een aparte addPaths() method, of we passen addPath aan zodat die een array kan ontvangen. Het gaat mij vooral om het principe... moet je aparte methods maken om 1 "foo" toe te kunnen voegen en een aparte method om meerdere "foos" toe te voegen, of... doe je dit altijd via 1 method?
 
Reshad F

Reshad F

05/07/2013 18:23:27
Quote Anchor link
De vraag is .. wil je 1 array hebben of wil je 100x een path object hebben.. toch?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

05/07/2013 18:45:01
Quote Anchor link
Ik zou het zo doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
class emailer {
    private bccs = array();
    public function bcc($address, $name = '') {
        $this->bccs[$address] = $name;
    }
}

?>
 
Ozzie PHP

Ozzie PHP

05/07/2013 19:35:13
Quote Anchor link
@Reshad: het gaat niet om objecten.

@Ger: dit geeft niet echt antwoord op mijn vraag toch?

De vraag is, stel we willen binnen e-mail class bcc adressen kunnen toevoegen. Dat kan zijn 1 adres of meerdere adressen. Maken we dan 2 functies: 1 om 1 adres toe te voegen en 1 om meerdere adressen toe te voegen. Of maken we 1 functie waarmee we 1 adres, maar ook meerdere adressen kunnen toevoegen.

Snappen jullie mijn vraag?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

05/07/2013 19:59:52
Quote Anchor link
Ik snap je vraag wel, maar je vraagt om meningen.
Imo maakt het niet zoveel uit of je eerst een array samenstelt en die doorgeeft aan een functie, of telkens die functie aanroept. Het eerste zal in performance schelen, maar dan hebben het over nano seconden. Lekker belangrijk!
 
Ozzie PHP

Ozzie PHP

05/07/2013 20:07:43
Quote Anchor link
Maar er is ook een soort van tussenweg. In mijn situatie doe ik dus vaak dit:

Stel ik wil 1 foo adden:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$id
= 'test';
$foo = 'foo';
addFoo($id, $foo);
?>


En stel ik wil meer foos setten dan krijg je dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$foos
= [['id' =>  'test', 'foo' => 'foo'], ['id' =>  'bartest', 'foo' => 'foobar']];
addFoos($foos);
?>

In bovenstaand voorbeeld heb ik dus een class met een method addFoo en een method addFoos. Om dit dan door te trekken naar de praktijk, ik heb nu dus een e-mail class met deze methods:

setBcc
setBccs
setCc
setCcs
setTo
setTos

En de vraag is of dat gebruikelijk is, of is het gebruikelijk om alleen deze methods te hebben:

setBcc
setCc
setTo

... en er dan op een of andere manier voor te zorgen dat deze methods zowel 1 als meerdere foos kunnen setten. Wat is wijsheid?
 
Wouter J

Wouter J

05/07/2013 20:32:25
Quote Anchor link
setXXX() is naar mijn mening het overriden van de huidige waarde. Voor het toevoegen van een waarde aan een array gebruik je addXXX(). Ik doe het altijd zo:
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
<?php
class Mail
{
    private $bcc = array();

    public function setBcc(array $bcc)
    {

        $this->bcc = $bcc;
    }


    public function addBcc(EmailAddress $address)
    {

        $this->bcc[] = $address;

        return $this;
    }
}

?>
 
Ozzie PHP

Ozzie PHP

05/07/2013 20:44:27
Quote Anchor link
Wouter, ik begrijp je. Ik leg alleen misschien een beetje krom uit wat ik bedoel. Mijn excuses daarvoor. Het gaat mij niet om het verschil tussen add en set. Het gaat er mij om of ik 2 verschillende functies moet gebruiken om 1 "ding" te setten en om meerdere van die "dingen" te setten.

Voorbeeld:

Stel we hebben een product en voor dit product wil ik slechts 1 producteigenschap setten, dan zou dat zo kunnen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$name
  = 'kleur';
$value = 'rood';
$product->setProperty($name, $value);
?>

Maar stel ik heb een ander product met meerdere eigenschappen, dan krijg je zoiets:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$properties
= ['kleur' => 'groen', 'materiaal' => 'hout'];
$product->setProperties($properties);
?>

Nu is mijn vraag of dit klopt. Ik heb nu 2 functies die bijna hetzelfde doen. Namelijk properties setten. Kan dat? Of moet ik bijv. de setProperty functie laten vallen en op het moment dat ik maar 1 property wil setten dit doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$properties
= ['kleur' => 'groen'];
$product->setProperties($properties);
?>

Ik hoop dat deze uitleg het iets duidelijker maakt.
 
Wouter J

Wouter J

05/07/2013 20:51:01
Quote Anchor link
En dan nogmaals, ik gebruik dus altijd de eerste maar dan niet setXXX, want dat is dus verkeerd.
 
Ozzie PHP

Ozzie PHP

05/07/2013 21:12:07
Quote Anchor link
Wouter, volgens mij begrijp je het nog niet. Of ik begrijp het niet, kan natuurlijk ook. Je moet dat add/sett even loslaten.

Het kan zijn dat ik in het ene geval 1 ding wil setten en in het andere geval meerdere dingen. Het gaat echt om setten, dus niet om adden.

Stel ik wil in het ene geval in bcc adres setten en in het andere geval 2. Dan kan ik dus setBcc gebruiken voor 1 bcc adres en setBccs voor 2 adressen. Maar is dat gebruikelijk?
 
Jan Koehoorn

Jan Koehoorn

05/07/2013 21:46:37
Quote Anchor link
Ik snap het punt. Ik zou gewoon kijken of het meegegeven argument een array is met is_array.
 
Ozzie PHP

Ozzie PHP

05/07/2013 21:56:52
Quote Anchor link
Ah, ik ben blij dat iemand me dan toch begrijpt :-)

Alleen dan ben ik benieuwd hoe ik het volgende moet oplossen. Weer even het bcc voorbeeld. Bij het toevoegen van 1 bcc adres doe ik nu setBcc('piet', '[email protected]'). Je hebt hier dus 2 argumenten. Terwijl je bij setBccs($bccs) 1 argument (een array) hebt. Hoe los je dat verschil in argumenten dan op? Ik vind het een lastige situatie.
 
Erwin H

Erwin H

05/07/2013 22:33:36
Quote Anchor link
Ozzie PHP op 05/07/2013 21:12:07:
Wouter, volgens mij begrijp je het nog niet. Of ik begrijp het niet, kan natuurlijk ook. Je moet dat add/sett even loslaten.

Volgens mij begrijpt Wouter prima wat jij bedoelt, maar dender jij weer eens lekker door omdat je perse een antwoord wil hebben dat jouw mening bevestigd. Als je Wouter's commentaar leest is het perfect duidelijk dat hij dus niets ziet in de setBccs, maar zou hij voor een add functie gaan. En dat lijkt mij ook een prima oplossing inderdaad, waarbij jij alleen nog even na zouden moeten denken waarom er een verschil gaat worden gemaakt tussen add en set, zeker als je setBccs loslaat.
Gewijzigd op 05/07/2013 22:34:37 door Erwin H
 
Ozzie PHP

Ozzie PHP

05/07/2013 22:41:41
Quote Anchor link
Erwin, ik zoek helemaal niet een antwoord dat mijn mening bevestigt. Ik probeer de juiste manier te vinden hoe ik iets moet aanpassen.

Het verschil tussen iets setten en adden. Als je iets set worden bestaande waarden overschreven, als je iets add wordt er iets toegevoegd. Ik wil dus niet iets toevoegen maar iets setten. In het ene geval wil ik dus 1 waarde setten en in het andere geval wil ik meerdere waardes setten. Mijn vraag is of ik dat via 1 of 2 functies moet doen. Oh, en het hoeft dus niet per se op bcc te slaan, maar is van toepassing op alles waarvan je er 1 of meer wilt setten/getten/deleten enz.

Stel ik wil configuratiewaardes ophalen. In het ene geval heb ik 1 waarde nodig en in het andere geval heb ik meerdere waardes nodig. Maak je dan 2 functies:

getValue($id) en getValues($ids)

of maak je 1 functie waaraan je een string of array kunt meegeven?
Gewijzigd op 05/07/2013 22:42:10 door Ozzie PHP
 
Erwin H

Erwin H

05/07/2013 23:03:02
Quote Anchor link
Je snapt het dus nog steeds niet. Als je functies van Wouter neemt, dan heb je een set functie voor een x aantal tegelijk, en een add functie als er nog eens 1 bij moet. Voor de duidelijkheid (wat je zo te zien compleet mist) die set functie kan je dus ook voor 1 waarde gebruiken. Als je dus het antwoord van Wouter echt goed had gelezen dan had je allang gezien dat je vraag daarmee volledig beantwoord is.

Getters moet je daarin heel anders zien overigens. Andere discussie.
 
Ozzie PHP

Ozzie PHP

05/07/2013 23:05:14
Quote Anchor link
Erwin, laat maar zitten. Ik snap m'n eigen vraag prima, maar ik heb geen zin om op deze manier en toon een discussie te voeren.

Mag een slotje op.
 
- Raoul -

- Raoul -

06/07/2013 00:38:06
Quote Anchor link
Je weet toch dat we niet aan slotjes doen op phphulp ;-) Er komt heus geen slotje op alleen maar omdat je je vraag niet kunt formuleren!
 
Ozzie PHP

Ozzie PHP

06/07/2013 00:41:23
Quote Anchor link
Ik kan m'n vraag best formuleren, alleen niet iedereen schijnt het te (kunnen) begrijpen.
 
Wouter J

Wouter J

06/07/2013 00:46:43
Quote Anchor link
Begrijp de aanvallende toon in dit topic niet. Ozzie stelt een vraag, vervolgens kun je er op reageren. Hoor je dat? Je 'kun't reageren. Fijn he, zo'n forum! Niemand ziet wat je leest en niemand verplicht je om ook maar ergens op te reageren.

Het feit dat ozzie een vraag stelt met een voorbeeld die ons waarschijnlijk laat afwijken van de werkelijk is niks meer dan een simpel foutje. Door dat foutje heb ik waarschijnlijk wel verkeerde antwoorden gegeven, maar laat het niet zo zijn dat we hier een nutteloos gevechts topic van gaan maken alleen omdat ik iedereen in de verkeerde richting heb gestuurd.

Dat gezegd hebbende, ozzie bedoel je bijna het instellen van settings? Bijv.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
new FormField('text', array(
    'label' => 'Naam',
    'error_bubbling' => false,
    // ...
));
?>


In dat geval zou ik een method setSettings maken die een array van opties krijgt.
Gewijzigd op 06/07/2013 00:47:32 door Wouter J
 

Pagina: 1 2 3 volgende »



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.