Advertisement
Guest User

Untitled

a guest
Jul 1st, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.11 KB | None | 0 0
  1. <?php
  2.  
  3. class UserModule
  4. implements IModule
  5. {
  6.     public function main(Context $context, array $params) // params zijn die uit de router
  7.     {
  8.         switch($params['action']) // action is altijd aanwezig, zorgt router automatisch voor
  9.         {
  10.             case 'signup':
  11.  
  12.                 $this->signup($context);
  13.  
  14.                 break;
  15.         }
  16.     }
  17.  
  18.     protected function signup(Context $context)
  19.     {
  20.  
  21.         $response = $context->response();
  22.         $form = new SignupForm();
  23.  
  24.         if( $form->getState() == Form::STATE_POSTED )
  25.             $form->submit();
  26.  
  27.         if( $form->getState() == Form::STATE_HANDLED )
  28.             $response->write('Je hebt nu aangemeld enz enz enz Alle logica gebeurt in het formulier ze handleForm() method');
  29.         else
  30.             $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 ;)
  31.     }
  32. }
  33.  
  34. abstract class Form
  35. extends Component
  36. {
  37.     abstract protected function createChildren(); // verplicht base class de functie createChildren te implementeren
  38.     abstract protected function handleForm(); // ook handleForm() is verplicht
  39.  
  40.     public function submit()
  41.     {
  42.         // loop alle elementen door, voer hun validators uit en check op fouten, indien 0 fouten roep de handleForm() aan.
  43.     }
  44. }
  45.  
  46. class SignupForm
  47. extends Form
  48. {
  49.     private $username;
  50.     private $password;
  51.  
  52.     // Deze word automatisch op het goede moment aangeroepen door de class Form (die we dus extenden)
  53.     protected function createChildren()
  54.     {
  55.         // ongeveer zoiets:
  56.         $this->username = new InputBox();
  57.         $this->username->setName('username');
  58.         $this->username->setLabel(new Label('Gebruikersnaam'));
  59.         $this->username->validators()->add(new UsernameAvailablityValidator());
  60.         $this->add($this->username);
  61.  
  62.         $this->password = new RepeatInputBox();
  63.         $this->password->setName('password');
  64.         $this->password->setLabel(new Label('Wachtwoord'));
  65.         $this->add($this->password);
  66.     }
  67.  
  68.     protected function handleForm()
  69.     {
  70.         // word alleen aangeroepen indien ALLE velden geldig zijn
  71.         // dus hier kan je meteen alles uitvoeren en geen checks meer nodig
  72.     }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement