39 lines
774 B
PHP
39 lines
774 B
PHP
<?php
|
|
|
|
namespace ctiso\Model;
|
|
|
|
use ctiso\Registry;
|
|
use ctiso\Database;
|
|
use ctiso\Role\User;
|
|
|
|
class Factory
|
|
{
|
|
public $db;
|
|
public $config;
|
|
public $user;
|
|
|
|
public function __construct(Database $db, ?Registry $config = null, ?User $user = null)
|
|
{
|
|
$this->db = $db;
|
|
$this->config = $config;
|
|
$this->user = $user;
|
|
}
|
|
|
|
/**
|
|
* Создает модель
|
|
* @template T
|
|
* @param class-string<T> $modelName
|
|
* @return T
|
|
*/
|
|
public function getModel($modelName)
|
|
{
|
|
$model = new $modelName();
|
|
$model->db = $this->db;
|
|
$model->factory = $this;
|
|
$model->config = $this->config;
|
|
$model->user = $this->user;
|
|
$model->setUp();
|
|
//
|
|
return $model;
|
|
}
|
|
}
|