Files
kiri-core/Database/Mysql/Schema.php
T
2020-12-17 14:09:14 +08:00

65 lines
1.0 KiB
PHP

<?php
declare(strict_types=1);
namespace Database\Mysql;
use Snowflake\Abstracts\Component;
use Database\Connection;
use Database\Orm\Change;
use Database\Orm\Select;
/**
* Class Schema
* @package Database\Mysql
*/
class Schema extends Component
{
/** @var ?Connection */
public ?Connection $db;
/** @var ?Select */
private ?Select $_builder = null;
/** @var ?Columns $_column*/
private ?Columns $_column = null;
/** @var ?Change */
private ?Change $_change = null;
/**
* @return Select|null
*/
public function getQueryBuilder(): ?Select
{
if ($this->_builder === null) {
$this->_builder = new Select();
}
return $this->_builder;
}
/**
* @return Change|null
*/
public function getChange(): ?Change
{
if ($this->_change === null) {
$this->_change = new Change();
}
return $this->_change;
}
/**
* @return Columns|null
*/
public function getColumns(): ?Columns
{
if ($this->_column === null) {
$this->_column = new Columns(['db' => $this->db]);
}
return $this->_column;
}
}