Skip to content

Commit

Permalink
Improve column type methods and extend table traits
Browse files Browse the repository at this point in the history
The column name parameter in various column type methods is now required (was optional before). Additional simple column generators have been added to the table traits covering float, text, date, and enum column types. An indication that the 'extendEnum' method may throw a DatabaseManagerException has also been added.
  • Loading branch information
krzysztofzylka committed Jan 31, 2024
1 parent 9f641d7 commit 180724a
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 6 deletions.
1 change: 1 addition & 0 deletions src/AlterTable.php
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ public function setName(?string $name): self
* @param string $newValue new enum values
* @param ?bool $sort sort enum values
* @return $this
* @throws DatabaseManagerException
*/
public function extendEnum(string $columnName, string $newValue, ?bool $sort = true): self
{
Expand Down
86 changes: 80 additions & 6 deletions src/Trait/TablePredefinedColumn.php
Original file line number Diff line number Diff line change
Expand Up @@ -148,12 +148,12 @@ public function addDateModifyColumn(?string $name = 'date_modify'): CreateTable

/**
* Add simple varchar column
* @param ?string $name column name
* @param string $name column name
* @param int $size varchar length, default 255
* @param bool $null allow null value
* @return CreateTable
*/
public function addSimpleVarcharColumn(?string $name, int $size = 255, bool $null = true): CreateTable
public function addSimpleVarcharColumn(string $name, int $size = 255, bool $null = true): CreateTable
{
$column = (new Column())
->setName($name)
Expand All @@ -167,11 +167,11 @@ public function addSimpleVarcharColumn(?string $name, int $size = 255, bool $nul

/**
* Add simple int column
* @param ?string $name column name
* @param string $name column name
* @param bool $null allow null value
* @return CreateTable
*/
public function addSimpleIntColumn(?string $name, bool $null = true): CreateTable
public function addSimpleIntColumn(string $name, bool $null = true): CreateTable
{
$column = (new Column())
->setName($name)
Expand All @@ -185,11 +185,11 @@ public function addSimpleIntColumn(?string $name, bool $null = true): CreateTabl

/**
* Add simple bool (tinyint(1)) column
* @param ?string $name column name
* @param string $name column name
* @param bool $default default
* @return CreateTable
*/
public function addSimpleBoolColumn(?string $name, bool $default = false): CreateTable
public function addSimpleBoolColumn(string $name, bool $default = false): CreateTable
{
$column = (new Column())
->setName($name)
Expand All @@ -201,4 +201,78 @@ public function addSimpleBoolColumn(?string $name, bool $default = false): Creat
return $this;
}

/**
* Add simple float column
* @param string $name
* @param string $size
* @param float|null $default
* @return CreateTable
*/
public function addSimpleFloatColumn(string $name, string $size = '16,2', ?float $default = null): CreateTable
{
$column = (new Column())
->setName($name)
->setType(ColumnType::float, $size)
->setDefault($default);

$this->addColumn($column);

return $this;
}

/**
* Add simple text column
* @param string $name
* @param string|null $default
* @return CreateTable
*/
public function addSimpleTextColumn(string $name, ?string $default = null): CreateTable
{
$column = (new Column())
->setName($name)
->setType(ColumnType::text)
->setDefault($default);

$this->addColumn($column);

return $this;
}

/**
* Add simple date column
* @param string $name
* @param string|null $default
* @return CreateTable
*/
public function addSimpleDateColumn(string $name, ?string $default = null): CreateTable
{
$column = (new Column())
->setName($name)
->setType(ColumnType::date)
->setDefault($default);

$this->addColumn($column);

return $this;
}

/**
* Add simple enum column
* @param string $name
* @param array $values
* @param string|null $default
* @return CreateTable
*/
public function addSimpleEnumColumn(string $name, array $values, ?string $default = null): CreateTable
{
$column = (new Column())
->setName($name)
->setType(ColumnType::enum, $values)
->setDefault($default);

$this->addColumn($column);

return $this;
}

}

0 comments on commit 180724a

Please sign in to comment.