Files
kiri-core/Database/Mysql/Schema.php
T

65 lines
1.0 KiB
PHP
Raw Normal View History

2020-08-31 12:38:32 +08:00
<?php
2020-10-29 18:17:25 +08:00
declare(strict_types=1);
2020-08-31 12:38:32 +08:00
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
{
2020-11-10 11:48:22 +08:00
/** @var ?Connection */
public ?Connection $db;
2020-08-31 12:38:32 +08:00
2020-11-10 11:48:22 +08:00
/** @var ?Select */
private ?Select $_builder = null;
2020-08-31 12:38:32 +08:00
2020-11-10 11:48:22 +08:00
/** @var ?Columns $_column*/
private ?Columns $_column = null;
2020-08-31 12:38:32 +08:00
2020-11-10 11:48:22 +08:00
/** @var ?Change */
private ?Change $_change = null;
2020-08-31 12:38:32 +08:00
/**
2020-12-17 14:09:14 +08:00
* @return Select|null
2020-08-31 12:38:32 +08:00
*/
2020-12-17 14:09:14 +08:00
public function getQueryBuilder(): ?Select
2020-08-31 12:38:32 +08:00
{
if ($this->_builder === null) {
$this->_builder = new Select();
}
return $this->_builder;
}
/**
2020-12-17 14:09:14 +08:00
* @return Change|null
2020-08-31 12:38:32 +08:00
*/
2020-12-17 14:09:14 +08:00
public function getChange(): ?Change
2020-08-31 12:38:32 +08:00
{
if ($this->_change === null) {
$this->_change = new Change();
}
return $this->_change;
}
/**
2020-12-17 14:09:14 +08:00
* @return Columns|null
2020-08-31 12:38:32 +08:00
*/
2020-12-17 14:09:14 +08:00
public function getColumns(): ?Columns
2020-08-31 12:38:32 +08:00
{
if ($this->_column === null) {
$this->_column = new Columns(['db' => $this->db]);
}
return $this->_column;
}
}