Ik zelf ben pas een maandje of 5 bezig met OOP
en vroeg ik me af hoe dit er uit ziet
<?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.