OOP Forms

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software Developer

Functie omschrijving Veel begeleiding en de kans om je verder te ontwikkelen als software developer. Dat kunnen wij jou bieden bij deelname aan deze leuke traineeship. Je krijgt een mentor toegewezen die jou alle kneepjes van het vak leert. Heb jij al wat ervaring als software developer? Daar worden wij heel blij van! Lees snel verder! Bedrijfsprofiel Als software developer neem je deel aan een trainings programma in de omgeving van Haarlem waar je persoonlijk wordt begeleidt, zodat je alle kneepjes van het vak leert. Aan de hand van jouw kennis en ervaring krijg je een persoonlijk opleidingstraject. Je gaat

Bekijk vacature »

PHP 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 »

Junior Software Developer

Functie omschrijving Wij zijn op zoek naar een Junior Software Developer!? Sta jij aan het begin van jouw loopbaan of heb jij misschien al enige ervaring? Vind jij het daarnaast belangrijk om jezelf constant te kunnen ontwikkelen en uitdagen? Lees dan snel verder! Voor een vooraanstaand softwarehuis in Nieuwegein ben ik op zoek naar een Junior Software Developer. De eigenaar van het bedrijf is ervan bewust dat je als junior nog een hoop kan leren, waardoor je de eerste maanden veel begeleiding en diverse trainingen krijgt. Daarna ga je samen met je collega's aan zowel kleine als grote projecten werken.

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

C# developer

Functie Als C# ontwikkelaar ben jij de spin in het web bij deze organisatie. Jij begeleidt en traint de field engineers die bij de klanten machines leveren en installeren. Daarnaast ondersteun jij de field engineers als zij bij de klant vastlopen bij het installeren van de machine m.b.t. software matige vragen. Jouw doel is dan ook om de technische kennis van de field engineers door middel van training zoveel mogelijk uit te breiden. Dit om ervoor te zorgen dat zij zelfstandiger software matige problemen kunnen oplossen. Ook ben jij verantwoordelijk voor het bedenken van software oplossingen voor klanten en dit

Bekijk vacature »

Medior/Senior Python developer (Django)

Functie Je komt te werken in het IT-team bestaande uit de Lead developer en 4 (medior/senior) developers. Gezamenlijk werken jullie aan de verbetering en uitbreiding van de software. Binnen het development team is er veel vrijheid en zelfstandigheid, zonder dat ze hiermee afdoen aan de kwaliteit. Zo hebben ze elke ochtend een korte stand-up (10:00 uur) en werken ze met pair-programming sessies. Ook is er een hele professionele ontwikkelcyclus waarbij code altijd eerst door een collega wordt getest voordat het naar deployement gaat. Er is een kwaliteitsfocus en dan biedt ruimte om verbeteringen echt door te voeren binnen de gehele

Bekijk vacature »

Grafisch vormgever

Standplaats: Maasland Aantal uren: 32 – 40 uur per week Opleidingsniveau: HBO werk- en denkniveau Ben jij een ambitieuze grafisch vormgever met een passie voor creativiteit en oog voor detail? Vind jij het daarnaast leuk om ook marketingactiviteiten op te pakken? Dan zijn wij op zoek naar jou! Bedrijfsinformatie Westacc Group BV is het zusterbedrijf van HABA en specialiseert zich in (maatwerk) oplossingen voor (elektro) techniek en verlichting in de kampeerbranche. Zij produceren en assembleren onderdelen voor caravans, campers en boten. Voor een groot aantal caravan- en campermerken leveren wij producten als zekeringkasten, invoerdozen, acculaders, schakelmateriaal en verlichting. De producten

Bekijk vacature »

Medior/senior Front-end developer (Vue.js)

Functie Als Front-end developer ben je uiteindelijk overkoepelend aan de slag voor de 3 ontwikkelteams die ieder aan een specifiek product werken. In samenwerking met de UX-designer en de huidige Front-end developer zorg je voor gebruiksvriendelijke software. Lijkt het jou interessant om complexe problemen op te lossen en feautures naar een hoger niveau te tillen? En vind je het niet erg om oudere delen van de applicaties te refactoren i.c.m. het toevoegen van nieuwe functionaliteiten? Dan komen wij graag met je in contact. Eisen • HBO werk- en denkniveau (ze kijken niet naar papieren, maar naar denkniveau, motivatie en zelfredzaamheid)

Bekijk vacature »

Ervaren PHP ontwikkelaar

Functie Jij als PHP ontwikkelaar komt te werken in een team van 4 andere PHP ontwikkelaars. Je zult je voornamelijk bezig houden met: – Het ontwikkelen van nieuwe features – Doorontwikkelen van de API – Nadenken over de technische infrastructuur – Datakwaliteit Samen met het team ben jij verantwoordelijk voor de verdere ontwikkeling van de software en om de positie als marktleider in Europa te behouden. Ze werken volgens SCRUM in 2 wekelijkse sprints, werken met Jira voor alle tickets en communiceren veel via Slack. Eisen • Minimaal 3 jaar ervaring als back end developer • Je hebt affiniteit met

Bekijk vacature »

PHP Developer

As a PHP Developer at Coolblue, you ensure that our webshops work as optimal as possible. How do I become a PHP Developer at Coolblue? As a PHP Developer you work together with other development teams to make our webshop work as optimal as possible and to make our customers happy. Although you are a PHP Developer, you are not averse to a little TypeScript or other technologies that might be used. Would you also like to become a PHP Developer at Coolblue? Read below if the job suits you. You enjoy doing this Writing vanilla PHP code. Working with

Bekijk vacature »

Software developer

Functieomschrijving Voor een gewaardeerde werkgever in de regio van Middelburg zijn wij op zoek naar een ambitieuze PHP/Symfony Developer. Een enthousiast persoon die het development team komt versterken met het aanpakken van complexe en nieuwe projecten. Ben jij op zoek naar een baan met veel uitdaging binnen een snelgroeiend e-commerce bedrijf, waar je de tijd en ruimte krijgt voor zowel persoonlijke als professionele groei? Lees dan snel verder! Dit ga je doen: Aanpassingssuggesties van collega’s in kaart brengen, vervolgens te analyseren en daarna te concluderen of de aanpassing een verbetering is; Ontwikkeling en beheer van de serviceportal in Symfony en

Bekijk vacature »

Front-end Developer Angular

Dit ga je doen Jouw taken als Front End Developer bestaan uit: Het ontwikkelen van maatwerkoplossingen voor klanten; Het meedenken over nieuwe tools en technieken; Het begeleiden van junioren; Het meewerken aan diverse projecten; Het meedenken in UX/UI design. Hier ga je werken Als Front-End Developer ga je in een Scrum team aan de slag met de nieuwste digitale technologieën om klanten en overheden over de hele wereld te ondersteunen met het ondersteunen van hun software, veelal op het gebied van watermanagement en infra. Door middel van real-time data in combinatie met voorspellende analyses, AI, Deep Learning en Machine Learning

Bekijk vacature »

PHP Programmeur

Functieomschrijving Vanuit het hoofdkantoor in omgeving Breda, ontwikkel je als PHP programmeur niet alleen webapplicaties, maar ben je verder ook gefocust op het constant inspelen op nieuwe innovaties m.b.t software ontwikkeling. Naast het ontwikkelen van webapplicaties, bouwt deze toffe werkgever ook webshops en websites voor hun opdrachtgevers. Wat ga je doen? Het testen van ontwikkelde applicaties om te zorgen dat ze goed functioneren en voldoen aan de eisen van de klanten; Het ontwerpen en implementeren van webapplicaties met het Symfony framework; Het schrijven van een schone en efficiënte code volgens het Symfony framework; Onderhouden en updaten van bestaande applicaties die

Bekijk vacature »

.Net ontwikkelaar - Het schoolsysteem verbeteren!

Bedrijfsomschrijving Onze klant is een prettige en kleinschalige organisatie waar hard gewerkt wordt om het onderwijs te verbeteren. Daarom werken ze aan complexe om administratieve, financiële en facilitaire processen te versnellen en te verbeteren. Dit doen ze vanuit een platte organisatie voor klanten die door geheel Nederland verspreid zitten, hier horen vanzelfsprekend een aantal aansprekende HBO scholen en universiteiten toe. Functieomschrijving Je komt terecht in een organisatie waar op dit moment 2 scrumteams werken. Jij zal als .Net developer binnen 1 van deze scrumteams functioneren, iedereen binnen dit team heeft zijn/haar eigen expertise waardoor er met verschillende invalshoeken aan een

Bekijk vacature »

.NET developer

Functie Als ervaren .NET ontwikkelaar start jij een team met 12 programmeurs. Jullie zijn verantwoordelijk voor het huidige platform van deze organisatie. Als team werken jullie in tweewekelijkse sprints en starten jullie iedere dag met een stand-up. Jij werkt samen met jouw team aan het uitbreiden van het huidige platform door middel van nieuwe features. Daarnaast zorg jij er samen met jouw team voor dat het platform veilig is en gebruiken jullie de nieuwste technieken om deze veiligheid te waarborgen. Zo maken jullie gebruik van C# .NET, .NET Core, React, Azure, Kubernetes, ASP.NET, MVC. Jij gaat aan het werk in

Bekijk vacature »
- Raoul -

- Raoul -

02/07/2012 14:59:34
Quote Anchor link
Hallo allemaal,

Ik heb net een klein OOP classje gemaakt die een form op het beeld tevoorschijn geeft.

Ik ben totaal niet tevreden met het renderen van forms.
Ik heb tot nu toe 1 element gemaakt en dat is de 'text' element.

Hebben jullie wat tips om het renderen beter laten te verlopen?

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php

class Form
{
    private $_fields = array();
    private $_attribs = array();
    
    
    //todo
    public function setAttrib($attribName, $attribValue) { $this->_attribs[$attribName] = $attribValue; }
    public function getAttrib($attribName) { return $this->_attribs[$attribName]; }
    
    public function addField($field)
    {

        $this->_fields[] = $field;
    }

    
    public function render()
    {

        $returnValue = '<form';
        
        if (isset($this->_attribs['method']))
        {

            $returnValue .= ' method="' . $this->_attribs['method'] . '"';
        }

        else
        {
            $returnValue .= ' method="post"';
        }

        
        if (isset($this->_attribs['action']))
        {

            $returnValue .= ' action="' . $this->_attribs['action'] . '"';
        }

        
        $returnValue .= '>';
        
        foreach ($this->_fields as $field)
        {

            $returnValue .= $field->render();
        }

        
        $returnValue .= '</form>';
        
        return $returnValue;
    }

}

?>


Form_Element:
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
class Form_Element
{
    public $_properties = array();
    public $_label = '';
    public $_name = '';
    public $_value = '';
    
    public function __construct($fieldName)
    {

        $this->_name = $fieldName;
    }

    
    public function setProperty($property, $value)
    {

        $this->_properties[$property] = $value;
    }

    
    public function setValue($value)
    {

        $this->_value = $value;
    }

    
    public function setLabel($label)
    {

        $this->_label = $label;
    }
}

?>


Form_Element_TextField:
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
<?php
class Form_Element_TextField extends Form_Element
{
    public function render()
    {

        $returnValue = '';
        
        if (isset($this->_label))
        {

            $returnValue .= '<label>' . $this->_label . '</label>';
        }


        $returnValue .= '<input type="text"';
        
        $returnValue .= ' name="' . $this->_name . '"';
        
        foreach ($this->_properties as $prop => $value)
        {

            $returnValue .= ' ' . $prop . '="' . $value . '"';
        }

        
        $returnValue .= ' />';

        return $returnValue;
    }
}

?>
 
PHP hulp

PHP hulp

28/11/2024 21:01:44
 
Wouter J

Wouter J

02/07/2012 15:20:17
Quote Anchor link
Eerst wat tips:
- geen public properties maken, zorg dat je controle hebt over wat er in staat
- de prefix _ voor een propertienaam gebruiken sommige mensen omdat ze dan aangeven dat het niet public is. Ik zelf vind dat een beetje onzin, maar waarom gebruik je hem ook voor public properties?
- gebruik volledige namen of erkende afkortingen, dus of setAttribute of setAttr, maar ga liever geen zelf verzonnen afkortingen gebruiken.
- typ alles op dezelfde manier, dus niet zomaar 2 methods die op 1 regel staan.

Dan inhoudelijk:
- Elk Form Element moet een render method hebben, deze moet je dus verplicht stellen. Maak daarom Form_Element abstract en geef hem een abstracte render method
- Ik weet niet wat je hier fout aan vind, dit is hoe het hoort en hoe ik het ook gebruik (zie bijv. mijn OOPbuilder project waar ong. hetzelfde gebeurd).
 
Erwin H

Erwin H

02/07/2012 15:34:18
Quote Anchor link
Ik zou de render method niet in een abstracte superclass bouwen, maar verplicht stellen via een interface. Als je elk form element (of beter, elk HTML element) hetzelfde interface laat implementeren kan je elk element naar gelang je het nodig hebt invoegen.

Een eventuele abstracte superclass zou ik wel gebruiken om de standard attributen van een form element al in te bouwen. Een text, submit, checkbox, radiobutton etc zijn allemaal van het type 'input' en hebben (of kunnen) allemaal een class, id, name, value, type. Die kan je dus al in de superclass inbouwen zodat je niet voor alle elementen hetzelfde hoeft te doen.
 
Wouter J

Wouter J

02/07/2012 15:36:40
Quote Anchor link
Erwin, het lijkt me niet nodig om nog een extra interface bovenop onze momenteel al superklasse Form_Element te bouwen. Als je die nou abstract maakt met een abstracte method en elk element extend die Form_Element dan heb je volgens mij al het juiste effect?
 
- Raoul -

- Raoul -

02/07/2012 15:46:45
Quote Anchor link
Wouter bedankt voor je tips, deze ga ik er zeker in verwerken
Wat ik er fout aan vind is het hergebruiken van andere elementen.
Zo moet ik dan iedere keer die
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
foreach ($this->_properties as $prop => $value)

Doen bij ieder nieuw element, dat is toch niet mooi?
 
Erwin H

Erwin H

02/07/2012 15:47:35
Quote Anchor link
Ik zou groter denken. Een interface die je aan elke class kan geven die een html element kan bouwen, of misschien wel het hele form, of misschien wel zelfs de hele pagina. Dat maakt het extreem flexibel.

Nu houd je het op forms, maar voor tabellen en andere elementen heb je het ook nodig. Ook die moet je kunnen renderen.

Simpel addChild methode erbij en je kan op een zeer eenvoudige wijze een hele boom opbouwen die je met 1 call kan renderen.

Er is vast een pattern voor, maar ik zo 1-2-3 niet een naam ervoor vinden.

Toevoeging op 02/07/2012 15:53:26:

Als voorbeeldje, dit is de interface die ik gebruik en al mijn view classes die pagina elementen bouwen implementeren die:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
interface View_Element_Interface {
  public function __construct( $tag, array $attributes = array() );
  public function addChild( View_Element_Interface $child );
  public function __toString();
}

?>

Aan het einde heb ik dan 1 $root en die hoef ik alleen maar te echoen en de hele boom wordt opgebouwd. Inclusief forms, tabellen, scripts, head, alles.
 
Wouter J

Wouter J

02/07/2012 16:39:18
Quote Anchor link
Hmm, ja daar dacht ik ook aan toen ik op reageren drukte. Aan dat laatste (addchild) had ik nog niet gedacht, maar klinkt geweldig!
 
Erwin H

Erwin H

02/07/2012 17:07:56
Quote Anchor link
Met dat addChild en de interface, kan je zowel form als element die interface laten implementeren. Je kan dan een form bouwen door elke keer form elementen (labels, input elementen, buttons) eraan toe te voegen middels de addChild. Bij het renderen moet je ervoor zorgen dat elk element ook de render() method van zijn child-elementen op het juiste moment aanroept en het wegschrijven gaat dan feitelijk vanzelf.
 



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.