Code: Select all
class DatabaseObject {
private function has_attribute($attribute) {
// We don't care about the value, we just want to know if the key exists
// Will return true or false
return array_key_exists($attribute, $this->attributes());
}
protected function attributes() {
// return an array of attribute names and their values
$attributes = array();
foreach(static::$db_fields as $field) {
if(property_exists($this, $field)) {
$attributes[$field] = $this->$field;
}
}
return $attributes;
}
public static function build($values_array){
$object = new static;
foreach($values_array as $attribute => $value){
if($object->has_attribute($attribute)){
$object->$attribute = $value;
}
return $object;
}
}
}
Code: Select all
class Member extends DatabaseObject {
protected static $id_name = "member_id";
protected static $table_name="member";
protected static $db_fields = array('member_id' ,'picture' ,'first_name' ,'last_name')
public $first_name;
public $first_name;
public $last_name;
Code: Select all
add_member.php
<?php $member = Member::build($_POST)?>
<form action="add_member.php" method="post">
First Name: <input type="text" name="first_name" />
Last Name: <input type="text" name="last_name" />
<input type="subtmit" name="last_subtmit" />
</form>