65 lines
1.0 KiB
PHP
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;
|
|
}
|
|
}
|