Create database tables with Dbl OOP

Code
<?php

use Zend\Db\Sql\Ddl\CreateTable;
use 
Zend\Db\Sql\Ddl\Column\Varchar;
use 
Zend\Db\Sql\Ddl\Column\Date;
use 
Zend\Db\Sql\Ddl\Column\Integer;
use 
Zend\Db\Sql\Ddl\Constraint\PrimaryKey;

$create = new CreateTable('table_name');

$id = new Integer('id');
$varchar = new Varchar('name'255);
$date = new Date('start_date');

$pk = new PrimaryKey(['id']);

$create->addColumn($id);
$create->addColumn($varchar);
$create->addColumn($date);

$create->addConstraint($pk);

echo 
$create->getSqlString();
Result
CREATE TABLE "table_name" (
"id" INTEGER NOT NULL,
"name" VARCHAR(255) NOT NULL,
"start_date" DATE NOT NULL ,
PRIMARY KEY ("id")
)
Used Versions
PHP 7.1, Zend 3.0, Symfony 3.2, Laravel 5.2, PHPUnit 5.6, Doctrine 2.6