adapter = $adapter; $this->name = $name; $this->type = $type; $this->options = $options; } /** * Returns the SQL of this column. * * @return string */ public function to_sql() { $column_sql = \sprintf( '%s %s', $this->adapter->identifier( $this->name ), $this->sql_type() ); $column_sql .= $this->adapter->add_column_options( $this->type, $this->options ); return $column_sql; } /** * The SQL string version. * * @return string */ public function __toString() { return $this->to_sql(); } /** * The SQL type. * * @return string */ private function sql_type() { return $this->adapter->type_to_sql( $this->type, $this->options ); } }