Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class UserModule
- implements IModule
- {
- public function main(Context $context, array $params) // params zijn die uit de router
- {
- switch($params['action']) // action is altijd aanwezig, zorgt router automatisch voor
- {
- case 'signup':
- $this->signup($context);
- break;
- }
- }
- protected function signup(Context $context)
- {
- $response = $context->response();
- $form = new SignupForm();
- if( $form->getState() == Form::STATE_POSTED )
- $form->submit();
- if( $form->getState() == Form::STATE_HANDLED )
- $response->write('Je hebt nu aangemeld enz enz enz Alle logica gebeurt in het formulier ze handleForm() method');
- else
- $response->write($form); // $form extends Form extends Component, Component class zorgt er automatisch voor dat Form omgezet word in een string aka HTML (phps magic method __toString()) en de juiste template word ingeladen ;)
- }
- }
- abstract class Form
- extends Component
- {
- abstract protected function createChildren(); // verplicht base class de functie createChildren te implementeren
- abstract protected function handleForm(); // ook handleForm() is verplicht
- public function submit()
- {
- // loop alle elementen door, voer hun validators uit en check op fouten, indien 0 fouten roep de handleForm() aan.
- }
- }
- class SignupForm
- extends Form
- {
- private $username;
- private $password;
- // Deze word automatisch op het goede moment aangeroepen door de class Form (die we dus extenden)
- protected function createChildren()
- {
- // ongeveer zoiets:
- $this->username = new InputBox();
- $this->username->setName('username');
- $this->username->setLabel(new Label('Gebruikersnaam'));
- $this->username->validators()->add(new UsernameAvailablityValidator());
- $this->add($this->username);
- $this->password = new RepeatInputBox();
- $this->password->setName('password');
- $this->password->setLabel(new Label('Wachtwoord'));
- $this->add($this->password);
- }
- protected function handleForm()
- {
- // word alleen aangeroepen indien ALLE velden geldig zijn
- // dus hier kan je meteen alles uitvoeren en geen checks meer nodig
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement