Joywork/import/builder/BaseBuilder.php

39 lines
724 B
PHP
Raw Permalink Normal View History

2026-05-22 20:21:54 +02:00
<?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;
}
}