Formulieren class

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Joakim Broden

Joakim Broden

27/02/2013 21:06:15
Quote Anchor link
Ik zit een beetje te denken over hoe ik een formulieren class het beste kan aanpakken.. Ik heb 2 methoden, welke van jullie is beter/geschikter of hoe zouden jullie het doen.

Methode 1, dus zelf hele tijd nieuwe classes starten:
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
<?php
    $form
= new Form\Form('action', 'method', 'extra param', 'etc');
    $form->addElement(new Form\Elements\Input('label', 'value', 'validation'));
    $form->addElement(new Form\Elements\Select('label', 'value', 'validation'));

    class Form {
        public function addElement($element) {
            if (!$element instanceof Elements\AbstractElement) {
                throw new Exception('Geen geldig form element');
            }
else {
                $this->elements[] = $element;
            }
        }
    }

?>


Methode 2, soort van factory:
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
    $form
= new Form\Form('action', 'method', 'extra param', 'etc');
    $form->addElement('input', 'label', 'value', 'validation');
    $form->addElement('select', 'label', 'value', 'validation');

    class Form {
        public function addElement($type, $label, $value, $validation) {
            switch($type) {
                case
'input':
                    $this->elements[] = new Elements\Input($label, $value, $validation);
                    break;
                case
'select':
                    $this->elements[] = new Elements\Select($label, $value, $validation);
                    break;
                default:

                    throw new Exception('Geen geldig form element');
                    break;
            }
        }
    }

?>
Gewijzigd op 27/02/2013 21:07:12 door Joakim Broden
 
PHP hulp

PHP hulp

17/10/2021 02:46:55
 
Wouter J

Wouter J

27/02/2013 22:43:10
Quote Anchor link
Ik vind 2 met mooiste (lijkt een beetje op de Form component van Symfony2, welke het meest gewaardeerd wordt in de PHP community).

Zorg er wel voor dat de klassen niet hard-coded zijn in de method. Je moet altijd een mogelijkheid hebben om nieuwe elementen toe te voegen zonder de klasse aan te passen.
Gewijzigd op 27/02/2013 22:46:01 door Wouter J
 
Joakim Broden

Joakim Broden

03/03/2013 15:49:25
Quote Anchor link
Nog iemand met tips/opmerkingen? :-)
 
Tim S

Tim S

03/03/2013 20:13:47
Quote Anchor link
Ik ben zelf op de achtergrond ook bezig met een form klasse, ik heb er zelf voor gekozen om een nette foutafhandeling door javascript te doen. Als je dan bijvoorbeeld een class email heb ik een veld valideert javascript dit voor een nette foutafhandeling. Misschien heb je er wat aan.
 



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.