, Factory
:
class MyModelFactory {
static public function Factory($data) {
$type = key($data);
return new $type($data);
}
}
, , - :
$model = MyModelFactory::Factory(array($_REQUEST['model'] => $_REQUEST));
, $_REQUEST ['model']. , , , , .
, , , , /.
class MyModelOne extends Model {
}
, - , , :
abstract class MyAbstractModel extends Model {
protected $search_params;
public function __construct($data = array()) {
$search_params = $data['search_params'];
}
protected function GetSearchParameters() {
return $this->search_params;
}
abstract public function GetData();
abstract public function GetColumns();
abstract public function DefineViewOptions();
}
class MyModelOne extends MyAbstractModel {
public function GetData() {
$params = array();
$params[] = $this->db->escape_str($this->GetSearchParameters());
}
public function GetColumns() {
}
public function DefineViewOptions() {
}
}