Feedback OOP Fomulier (simpel scriptje)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP Developer

Functie Middels Scrum en sprints bouw jij in deze functie mee aan complexe webapplicaties en ons SaaS platform. Hierbij hoort ook architectuur tot een van je taken. Daarnaast ben je één van de leden van het Scrum team. Dat betekent dat je naast je kerntaken ook in contact staat met de product owner. Oftewel, je bent bij het gehele ontwikkelproces betrokken. Tools die hierbij gebruikt worden zijn o.a. PHP, Symfony en Git. Eisen • Minimaal HBO werk- en denkniveau • Minimaal 3 jaar aantoonbare ervaring met PHP • Kennis en ervaring Symfony (Laravel is pré) & Lando • Kennis van

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 »

Medior Java developer (fullstack)

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 »

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 »

Medior Java developer (fullstack)

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 »

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 »

Randstad - Freelance Backend Developer/ Data Engin

Starting date: 10.05.2023 Salary range: €67,00 - €77,00 Duration: 6 months Hours: 40 Working model: Hybrid* MUST be NL based Job description: Our vision is to have a consistent and data driven experience for all sales across all our operating companies. Our mission is to enable our salespeople to be able to reach out to the right company at the right time. We do this by creating data driven micro services and solutions. We mainly focus on implementation in the Google Cloud but also integrate with local systems and other cloud solutions. A typical day: As a back-end developer you

Bekijk vacature »

Junior full stack developer

Functie Als full stack developer binnen onze organisatie ga jij je bezig houden met het bouwen van de user experience van de webapplicaties. Je bent verantwoordelijk voor het vertalen van concepten, briefings en designs naar werkende functionaliteit. Hierbij zorg je ervoor dat applicaties betrouwbaar, veilig en toekomstbestendig zijn en een goede architectuur hebben en behouden. Verder denk je actief na- en mee over nieuwe ontwikkelingen en functionaliteiten om zo elke dag de klantervaring weer te verbeteren. Dit doe je natuurlijk niet alleen maar in een development team. Het team bedraagt momenteel 4 man bestaande uit 2 devops engineers en 2

Bekijk vacature »

.NET Developer Azure

Dit ga je doen Het ontwerpen en bouwen van diverse applicaties (C#, ASP.NET, MVC); Het ontwikkelen van Webservices (WCF); Het meewerken aan de transitie naar Azure; Het samenwerken met collega's binnen een Scrumteam en meedenken over de User Stories; Het bouwen van unittesten; Meedenken over nieuwe tooling, ontwikkelingen en technologieën in de markt. Hier ga je werken Je komt te werken bij een organisatie die verantwoordelijk is voor de ontwikkeling van verschillende portalen. Deze portalen worden gebruikt door diverse partijen en jouw taak is om ervoor te zorgen dat deze optimaal functioneren. Je wordt onderdeel van een Scrumteam en werkt

Bekijk vacature »

.NET Developer

Functie omschrijving Ben jij een senior .NET developer en heb jij tevens ervaring als teamlead? Ben jij iemand met een helikopterview en denk jij graag mee met de klanten? Dan zijn wij op zoek naar jou! Voor een geweldig bedrijf zijn wij namelijk op zoek naar een ervaren .NET developer. Het bedrijf houdt zich bezig met het ontwerpen en bouwen van websites, portalen en applicaties voor met name zorg- en onderwijsinstellingen en overheidsinstanties. Jouw taken: Het fungeren als Lead Developer; Het meedenken met de business (dit vergt commercieel inzicht); Het begeleiden van diverse projecten (van klein tot groot); Het ontwerpen

Bekijk vacature »

Gezocht: .Net ontwikkelaars met een maatschappelij

Bedrijfsomschrijving Zoek jij als medior .Net ontwikkelaar een inspirerende werkplek bij een bedrijf met maatschappelijk verantwoordelijkheidsgevoel? Dan is deze vacature je op het lijf geschreven. De organisatie bestaat ruim 20 jaar en ze ontwikkelen in house applicaties waarmee de zorgsector enorm mee gebaat is. Jouw applicaties worden gebruikt door duizenden gebruikers waardoor je echt een waardevolle bijdrage kan leveren aan de maatschappij. Het bedrijf is zeer innovatief en vindt een goede werk/privé balans belangrijk. Je krijgt alle mogelijkheden om jezelf verder te ontwikkelen, je werktijden in te delen en daarnaast is het ook mogelijk om deels thuis te werken. Het

Bekijk vacature »

PHP Developer

Dit ga je doen Ontwikkelen, implementeren en testen van PHP-oplossingen en Apps voor klanten en bedrijfsprocessen; Opstellen van requirements en uitwerken van de oplossingen; Testen van software en borgen van een soepele overdracht, inclusief documentatie; Proactief adviseren vanuit eigen expertisegebied over ontwikkelingen en verbeterpunten in technische toepassingen en processen binnen de organisatie. Hier ga je werken De organisatie is een ambitieuze en vooruitstrevende speler in de markt in de regio Rotterdam. Ze zijn de snelst groeiende in hun branche. Met een excellent aanbod en service willen zij de beste keuze zijn voor hun bestaande en nieuwe klanten. Dit alles doen

Bekijk vacature »

.NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

Bekijk vacature »

SQL ontwikkelaar

Functieomschrijving Voor een gave werkgever in regio Breda zijn wij per direct op zoek naar een SQL ontwikkelaar/ functioneel consultant. Hier wordt jij mede verantwoordelijk voor zowel de design en implementatie van SQL-databases als voor het verstaan van de processen van klanten naar het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt als volgt uit te zien: Je test de ontwikkelde oplossingen om er zeker van te zijn dat deze voldoen aan de functionele specificaties en de behoeften van de organisatie; Je ontwerpt, ontwikkelt en implementeert SQL-databases om de data behoeften van de organisatie te ondersteunen; Je stelt op

Bekijk vacature »

C# .Net Developer

Dit ga je doen Het bouwen van Api's; Nieuwe oplossingen bouwen met C# .Net; De huidige software uitbouwen met C# .Net; Meewerken in projecten; Meedenken aan de toekomstplannen en verbeteringen; Onderdeel van het Scrum Team. Hier ga je werken Onze klant is een dienstverlenende organisatie voor diverse soorten organisaties in Nederland. Ze zijn van oorsprong een familiebedrijf en er is een open cultuur. Ze zijn vooruitstrevend op IT gebied en hebben een eigen inhouse development team van circa 11 man. Je komt hier te werken in het subteam .Net Core. Hier werken ze volgens scrum met de nieuwste technieken en

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

26/04/2024 06:10:37
 
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.