table = $table; $this->column = null; $this->constraint = null; } public function add($what): AlterTable { if ($what instanceof Column) { $this->column = $what; } else if ($what instanceof Constraint) { $this->constraint = $what; } else { $this->column = new Column($what); } $this->action = "ADD"; return $this; } public function modify(Column $column): AlterTable { $this->column = $column; $this->action = "MODIFY"; return $this; } public function drop($what): AlterTable { if ($what instanceof Column) { $this->column = $what; } else if ($what instanceof Constraint) { $this->constraint = $what; } else { $this->column = new Column($what); } $this->action = "DROP"; return $this; } public function execute(): bool { return $this->sql->executeAlter($this); } public function getAction(): string { return $this->action; } public function getColumn(): ?Column { return $this->column; } public function getConstraint(): ?Constraint { return $this->constraint; } public function getTable(): string { return $this->table; } }