phplibrary/src/Model/Factory.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;
}
}