Feedback OOP Fomulier (simpel scriptje)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior Front end developer Angular

Functie Er zijn momenteel 5 SCRUM-teams waarvan drie gefocust zijn op DevOps en de huidige projecten en twee op innovatie van de platformen. Jij zal onderdeel worden van het innovatie Scrum team. De 2 multidisciplinaire innovatie teams bestaan momenteel uit 14 werknemers. Jij als senior Front end developer wordt onderdeel van onze innovatieteams. De innovatieteams houden zich bezig met het door ontwikkelen van de huidige producten en denken na over nieuwe functionaliteiten. Binnen de rol van Front end developer krijg je veel vrijheid en kan je je dag zelf indelen. Dingen waar jij je dagelijks mee bezig zult houden is

Bekijk vacature »

C#.NET developer

Functie Het development team bestaat momenteel uit vijf backend C#/.NET ontwikkelaars. Op dit moment zit één ontwikkelaar dedicated op de mobiele applicatie. Als team werk je samen aan het zelf ontwikkelde software platform. Dit bestaat uit zowel apps als websites. Om het systeem door meer dan honderdduizenden gebruikers wordt gebruikt is het bijna vanzelfsprekend dat de kwaliteit van het product hoog moet liggen. Het systeem bestaat uit drie projecten. Je werkt dus aan deze drie projecten waarbij de focus op z’n tijd verschuift. De technieken die worden toegepast zijn o.a. .NET Core, Xamarin, C# en MVC. Je zal dus met

Bekijk vacature »

Hands-on Solution Architect / Software Architect (

TenneT is hard groeiend om de onze ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Solution Architect / Software Architect op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je werkt samen met gedreven DevOps teams, bestaande uit frontend, backend en middleware developers, testers, UX-designers. Samen met de teams ben je continu op zoek naar de beste oplossingen voor onze klanten. Als Solution Architect onderzoek

Bekijk vacature »

Medior/senior Fullstack developer

Functie Onder begeleiding van 3 accountmanagers waarvan er 1 binnen jouw expertise je aanspreekpunt zal zijn ga je aan de slag bij diverse opdrachtgevers. Hij of zij helpt je bij het vinden van een passende en uitdagende opdracht. Hierin houden ze uiteraard rekening met jouw situatie, ervaring en (technische) ambities. De opdrachten duren gemiddeld één tot 2 jaar. Hierdoor kun je je ook echt vastbijten in een project en als consultant impact maken. Naast de opdracht ben je regelmatig met je collega’s van de IT-afdeling om bijvoorbeeld onderlinge kennis te delen, of nieuwe trends te bespreken. Ook worden er regelmatig

Bekijk vacature »

Technical Asset Specialist Substations

TenneT is growing fast to realize its strategic ambitions. We play a leading role in driving the energy transition. We are looking for a passionate Technical Asset Specialist for substations (onshore and offshore) at our location in Arnhem who will contribute to this and that might be you? Your contribution to TenneT We are searching for a motivated and engaged colleague as a technical asset specialist (onshore and offshore) for instrument transformers and surge arresters, with preferably a strong background in the area of insulation coordination. As a specialist for insulation coordination you are responsible for overarching topics regarding insultation

Bekijk vacature »

Junior Front-End Developer

Je maakt een vliegende start van je carrière, door meteen mee te bouwen aan de digitale oplossingen van Coolblue. Wat doe je als Junior Front-End Developer bij Coolblue? Als Junior Front-End Developer ben je meteen vanaf de start onderdeel van een development team. Je kijkt veel mee met collega’s en volgt trainingen. Op dat moment komt je wil om te blijven leren naar boven. Daarnaast pak je in de sprints ook je eigen stories op om Coolblue iedere dag een beetje beter te maken. Je sterk analytisch vermogen komt dan goed van pas! Ook Junior Front-End Developer worden bij Coolblue?

Bekijk vacature »

Als Front-end developer bijdragen aan het onderwij

Functie Als front-end developer om je terecht in een team van goede en ervaren developers, en ga je werken aan de software die door miljoenen mensen gebruikt wordt. Je bent in staat om designs effectief te vertalen naar werkende feautures en hebt oog voor een goede UX van het product. Je staat voor clean code en goede documentatie. Je ziet toegevoegde waarde in het beoordelen van het werk van collega’s om zo samen te streven naar hoge kwaliteit software en code. Je dagelijkse werk bestaat uit het werken aan componenten in de Storybook. Het verbeteren en refactoren van de huidige

Bekijk vacature »

Java Developer bij een jonge groeiende organisatie

Bedrijfsomschrijving Vind jij het als Java developer ook zo belangrijk dat een bedrijf je de ruimte en tijd geeft voor persoonlijke ontwikkeling? Dan zit je hier helemaal goed. Deze jonge organisatie is opgericht in 2018 en is ondertussen uitgegroeid tot een club van ongeveer 30 medewerkers. Het gaat hier om een echte Java club, die vrijheid en verantwoordelijkheid erg belangrijk vinden. Het bedrijf heeft een informele sfeer en de teams zijn erg hecht met elkaar. Ze delen graag de kennis en ervaringen met anderen, maar vinden andermans mening ook zeer belangrijk. De organisatie zet zich in voor ontwikkeling en besteed

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 »

Fullstack developer (NodeJS, React, AWS)

Functie Als Fullstack developer kom je te werken in het ontwikkelteam, maar zoals gezegd komt er veel meer bij kijken dan alleen maar ontwikkelen. Je bent samen met je collega’s continu bezig om de software uit te breiden maar hiernaast doe je doorlopend onderzoek naar de inzet van bijvoorbeeld Machine Learning. Ze willen met hun software echt voorlopen op andere en toegevoegde waarde leveren voor de eindgebruiker. Mede hierom zijn ze erg benieuwd naar iemand zijn persoonlijkheid, of hij graag nieuwe dingen uitzoekt (Google!), en initiatief neemt. Maar waar staan ze nu? Na een onderzoeksfase van ruim een jaar zijn

Bekijk vacature »

Front-end developer wanted! (Angular, React, Vue.j

Functie Under the guidance of 3 account managers, one of whom will be your point of contact within your expertise, you will start working for various clients. He or she will help you find a suitable and challenging assignment. Naturally, they will take your situation, experience and (technical) ambitions into account. The assignments last one to two years on average. This allows you to really commit to a project and make an impact as a consultant. Besides the assignment, you will regularly meet your colleagues from the IT department to share knowledge or discuss new trends, for example. Master classes

Bekijk vacature »

Back-end programmeur

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een uitdagende werkgever in omgeving Waalwijk zijn wij op zoek naar een enthousiaste softwareontwikkelaar met kennis of ervaring met C# en SQL. In een uitdagende rol als C#.NET Developer werk je samen met een enthousiast en informeel team aan het bouwen van maatwerk software voor variërende klanten. Verder ziet jouw takenpakket er als volgt uit: Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je houdt je bezig met het ontwikkelen

Bekijk vacature »

Software Developer

Bij een bedrijf in de machinebouw, regio Roosendaal, zijn we op zoek naar een: Software Developer Waar ga je werken? Onze opdrachtgever is gespecialiseerd in de grondverzetmachines. Al meer dan 50 jaar leveren ze zowel nationaal als internationaal diverse machines. Het is een familiebedrijf met een informele werksfeer. Wat ga je doen? Als Software Developer je verantwoordelijk voor: - Je werkt voortdurend aan oplossingen voor het op afstand bewaken en besturen van oogstmachines; - Het visualiseren van gegevens in rapporten, apps of andere formaten; - Voorspellend machineonderhoud; - Taakplanning; - Je schrijft aangepaste plug-ins om gegevens te importeren of exporteren

Bekijk vacature »

Senior PHP developer

Functie Als Senior PHP developer heb je een sterke mening over de architectuur van projecten en de processen binnen het team. Je bent de sparringpartner voor je Team Lead. Ook ondersteun je met jouw kennis de minder ervaren developers in jouw team. Ze werken regelmatig aan projecten vanaf scratch en dit geeft ruimte om voor nieuwe technieken te kiezen. Naast het ontwikkelen van software ben je continue bezig om ook jezelf te ontwikkelen. Ze werken met o.a.: PHP, Laravel, Doctrine, PHP Unit, Behat, React, TypeScript, (My)SQL, Postgress, Redis, ElasticSearch, Docker, Nginx, GIT flow, JIRA, AWS. Eisen • HBO werk- en

Bekijk vacature »

Back-end ontwikkelaar

Functie omschrijving Wil jij meebouwen aan diverse databasesystemen in een klein bedrijf met een platte organisatie? In een team van ruim 10 ontwikkelaars wordt er aan diverse ICT oplossingen gewerkt. Jouw taken hierbij zullen bestaan uit: Het onderhouden en door-ontwikkelen van bestaande databases. Denk hierbij aan schema verbeteringen en performance-tuning. Bij nieuwe ontwikkelingen ga jij ook bezig met het bouwen van het databaseschema. Omdat je in een klein team werkt zal je ook de C# routine verder uitbouwen en ontwikkelen. Ook kan je meedraaien in algemene refactory-, ontwikkel- of testwerkzaamheden. Je zal voornamelijk gebruik maken van de volgende technieken: .NET

Bekijk vacature »
Robert  dat ben ik

Robert dat ben ik

11/09/2011 15:33:40
Quote Anchor link
Goede middag,

Ik zelf ben pas een maandje of 5 bezig met OOP

en vroeg ik me af hoe dit er uit ziet

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
class Form_Element {
    public $type   = ''; //default
    public $label  = 'label'; //default

    public function __construct($type) {
        $type = trim($type);
        if($type == 'text' || $type == 'password' || $type == 'button') {          
            $this->type = $type;
            return $this;
        }
else {
            throw new Exception("kan dit object niet aanmaken, het type:".$type." komt niet overeen met het systeem.");
        }
    }

    public function setLabel($label) {
        $this->label = trim($label);
        return $this;
    }
}


class Form {
    public $form;
    public function addElements($array) {
        if(is_array($array)) {
            if(!empty($array)) {
                $this->form = '<form action="index.php" method="post">'."\r\n";
                foreach ($array as $element) {
                    switch ($element->type) {
                        case
'text':
                            $this->form .= '<label>'.$element->label.':</label> <input type="text" name="'.strtolower($element->label).'">'."\r\n";
                            break;
                            
                        case
'password':
                            $this->form .= '<label>'.$element->label.':</label> <input type="password" name="'.strtolower($element->label).'">'."\r\n";
                            break;

                        case
'button':
                            $this->form .= '<input type="submit" name="submit" value="'.$element->label.'">'."\r\n";
                            break;
                    }
                }

                $this->form .= '</form>';
                    echo $this->form;
            }
else {
                throw new Exception("Error: array() is empty.");
            }
        }
else {
            throw new Exception("Error: Can't use the addElements, it most be an array() to match the system.");
        }
    }
}




//dit word de code die je voortaan gebruikt voor een fomulier
try {
    if($_SERVER['REQUEST_METHOD'] == 'POST') {
        //post process example: $post = new Form_Post(trim($_POST['username']),sha1($_POST['password']));
        echo'hier komt het process';
    }
else {
        $username = new Form_Element('text');
        $username->setLabel('Username');
        
        $password = new Form_Element('password');
        $password->setLabel('Password');
        
        $button = new Form_Element('button');  
        $button->setLabel('Login');
        
        $form = new Form();
        $form->addElements(array($username,$password,$button));
    }
}
catch (Exception $e) {
    echo $e->getMessage();
}

?>


het is uiteraard nog een klein simpel scriptje die alleen een login fomulier maakt, dit word nog uitgebreid zodat er meer elementen bij komen.

maar ik vroeg me af of het op deze manier goed gaat :)

en of ik dingen anders moet doen.

greetz Rob.
Gewijzigd op 11/09/2011 16:50:30 door Robert dat ben ik
 
PHP hulp

PHP hulp

16/02/2025 14:45:57
 
Crude Oil

Crude Oil

11/09/2011 16:14:34
Quote Anchor link
Ik snap eigenlijk niet waarom je op zo'n manier een form wil maken
 
Robert  dat ben ik

Robert dat ben ik

11/09/2011 16:23:49
Quote Anchor link
Crude Oil op 11/09/2011 16:14:34:
Ik snap eigenlijk niet waarom je op zo'n manier een form wil maken


geef eens wat meer informatie waarom niet?

graag wil ik dus feedback hebben wat ik anders zou moeten doen

greetz rob
 
Crude Oil

Crude Oil

11/09/2011 16:28:28
Quote Anchor link
waarom zou je met veel phpcode een form maken, lijkt me niet nuttig. Het is nog veel korter om meteen de htmlcode te gebruiken.
Gewijzigd op 11/09/2011 16:56:52 door Crude Oil
 
Robert  dat ben ik

Robert dat ben ik

11/09/2011 16:49:39
Quote Anchor link
Crude Oil op 11/09/2011 16:28:28:
waarom zou je met veel phpcode een form maken, lijkt mme niet nuttig. Het is nog veel korter om meteen de htmlcode te gebruiken.


Niet als je een framework wilt maken.
dan is het wel nuttig zulke opties te hebben.

greetz Rob
 
Crude Oil

Crude Oil

11/09/2011 16:55:09
Quote Anchor link
Zeg dat dan meteen :P
Gewijzigd op 11/09/2011 16:55:36 door Crude Oil
 
Robert  dat ben ik

Robert dat ben ik

11/09/2011 17:00:36
Quote Anchor link
Crude Oil op 11/09/2011 16:55:09:
Zeg dat dan meteen :P


mijn fout :) sorry :)

maar hoe lijkt dit dan kwa opstelling?
 
Pim -

Pim -

12/09/2011 16:56:21
Quote Anchor link
Je moet niet direct bij het toevoegen van elementen de HTML gaan renderen. Dan kan er namelijk helemaal niets meer aangepast worden. Gebruik dus een render() of __toString() methode (liefst beide).
 
Robert  dat ben ik

Robert dat ben ik

12/09/2011 17:17:23
Quote Anchor link
Pim - op 12/09/2011 16:56:21:
Je moet niet direct bij het toevoegen van elementen de HTML gaan renderen. Dan kan er namelijk helemaal niets meer aangepast worden. Gebruik dus een render() of __toString() methode (liefst beide).


bedankt voor je reactie Pim!


hoe moet ik me dit voorstellen die 2 methode's?
wat doet wat? en hoe zou dit er uit kunnen zien ongeveer?

al vast bedankt

Rob
 
Pim -

Pim -

12/09/2011 17:28:49
Quote Anchor link
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
<?php

class Form {
    protected $_elements = array();
    public function addElements(array $elements) {
        $this->_elements += $elements;
    }


    public function render() {

        $string = '<form action="index.php" method="post">'."\r\n";
                foreach ($this->_elements as $element) {
                    switch ($element->type) {
                        case
'text':
                            $string .= '<label>'.$element->label.':</label> <input type="text" name="'.strtolower($element->label).'">'."\r\n";
                            break;
                            
                        case
'password':
                            $string .= '<label>'.$element->label.':</label> <input type="password" name="'.strtolower($element->label).'">'."\r\n";
                            break;

                        case
'button':
                            $string .= '<input type="submit" name="submit" value="'.$element->label.'">'."\r\n";
                            break;
                    }
                }

                $string .= '</form>';
                    return $this->form;
    }


    public function __toString() {
        return $this->render();
    }
}

?>


De volgende stap is dat je de elementen zichzelf laat renderen. Geef Form_Element een abstracte 'render' methode en breidt deze klasse uit voor elk type inputveld (text, pw, button etc). Form#render() wordt dan:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
public function render() {
    $string = '<form action="index.php" method="post">'."\r\n";
    foreach($this->_elements as $element) {
        $string .= $element->render()."\r\n";
    }

    $string .= '</form>';
    return $string;
}
 
Robert  dat ben ik

Robert dat ben ik

12/09/2011 17:44:08
Quote Anchor link
Pim - op 12/09/2011 17:28:49:


Bedankt Pim voor deze voorbeeld, ik ga er mee aan de slag
Ik zal als ie klaar is een repost doen

Rob



Toevoeging op 13/09/2011 13:43:10:

ik ben even wezen stoeien met de code maar ik kom even niet uit de abstract render methode dus heb ik de class verlengd met een extends Form_Html


Ik heb de code ondertussen naar dit aangepast:

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
class Form_Html {
    protected function getHtmlElement($element) {
        $allow_elements = array('text','password','textarea','button');
        if (in_array($element->type, $allow_elements) === false) {
            throw new Exception("type:".$element->type." doesn't match the system.");
        }
else {
            if($element->type == 'text')     { return '<label>'.$element->label.'</label> <input type="text" name="'.strtolower($element->label).'">'; }
            if($element->type == 'textarea') { return '<label>'.$element->label.'</label> <textarea name="'.strtolower($element->label).'"></textarea>';  }
            if($element->type == 'password') { return '<label>'.$element->label.'</label> <input type="password" name="'.strtolower($element->label).'">'; }
            if($element->type == 'button')   { return '<input type="submit" value="'.strtolower($element->label).'">'; }
        }
    }
}

class Form_Element {
    public $type   = ''; //default
    public $label  = 'label'; //default
    
    public function __construct($type) {
        $this->type = trim($type);
        return $this;
    }

    public function setLabel($label) {
        $this->label = trim($label);
        return $this;
    }
}

class Form extends Form_Html {
    protected $_elements = array();
    public function addElements(array $elements) {
        $this->_elements += $elements;
    }

    private function render() {
        $string = '<form action="#" method="post">'."\r\n";
        foreach($this->_elements as $element) {
            $string .= $this->getHtmlElement($element)."\r\n";
        }

        $string .= '</form>'."\r\n";
        return $string;
    }

    public function draw() {
        return $this->render();
    }
}


try {
    if($_SERVER['REQUEST_METHOD'] == 'POST') {
        echo'hier komt het process';
    }
else {
        $username = new Form_Element('text');
        $username->setLabel('Username');
        
        $password = new Form_Element('password');
        $password->setLabel('Password');
        
        $button = new Form_Element('button');
        $button->setLabel('Login');
        
        $form = new Form();
        $form->addElements(array($username,$password,$button));
        echo $form->draw();
    }
}
catch (Exception $e) {
    echo $e->getMessage();
}

?>


@Pim: zou je een abstract voorbeeld kunnen geven?

Rob
Gewijzigd op 13/09/2011 13:42:25 door Robert dat ben ik
 



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.