39 lines
724 B
PHP
39 lines
724 B
PHP
<?php
|
|
|
|
class BaseBuilder implements ModelBuilder
|
|
{
|
|
private $modelClass = '';
|
|
|
|
public function __construct($modelClass)
|
|
{
|
|
assert('!empty($modelClass)');
|
|
assert('class_exists($modelClass)');
|
|
$this->modelClass = $modelClass;
|
|
}
|
|
|
|
public function getModelClassName()
|
|
{
|
|
return $this->modelClass;
|
|
}
|
|
|
|
/**
|
|
* @param array $data
|
|
* @return ImportRecord
|
|
*/
|
|
public function getModel(array $data)
|
|
{
|
|
assert('!empty($data)');
|
|
|
|
$modelClass = $this->modelClass;
|
|
$id = isset($data['id']) ? (int)$data['id'] : null;
|
|
if ($id !== null) {
|
|
$model = $modelClass::findOne($id) ?: new $modelClass;
|
|
} else {
|
|
$model = new $modelClass;
|
|
}
|
|
$model->name = $data['name'];
|
|
$model->id = $id;
|
|
|
|
return $model;
|
|
}
|
|
} |