v0.0.0 Initial Commit

This commit is contained in:
Anders
2021-06-01 10:17:03 +02:00
commit 78df7dd754
3412 changed files with 354795 additions and 0 deletions
+105
View File
@@ -0,0 +1,105 @@
<?php
namespace Illuminate\Database\DBAL;
use Doctrine\DBAL\DBALException;
use Doctrine\DBAL\Platforms\AbstractPlatform;
use Doctrine\DBAL\Types\Type;
class TimestampType extends Type
{
/**
* {@inheritdoc}
*/
public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)
{
$name = $platform->getName();
switch ($name) {
case 'mysql':
case 'mysql2':
return $this->getMySqlPlatformSQLDeclaration($fieldDeclaration);
case 'postgresql':
case 'pgsql':
case 'postgres':
return $this->getPostgresPlatformSQLDeclaration($fieldDeclaration);
case 'mssql':
return $this->getSqlServerPlatformSQLDeclaration($fieldDeclaration);
case 'sqlite':
case 'sqlite3':
return $this->getSQLitePlatformSQLDeclaration($fieldDeclaration);
default:
throw new DBALException('Invalid platform: '.$name);
}
}
/**
* Get the SQL declaration for MySQL.
*
* @param array $fieldDeclaration
* @return string
*/
protected function getMySqlPlatformSQLDeclaration(array $fieldDeclaration)
{
$columnType = 'TIMESTAMP';
if ($fieldDeclaration['precision']) {
$columnType = 'TIMESTAMP('.$fieldDeclaration['precision'].')';
}
$notNull = $fieldDeclaration['notnull'] ?? false;
if (! $notNull) {
return $columnType.' NULL';
}
return $columnType;
}
/**
* Get the SQL declaration for PostgreSQL.
*
* @param array $fieldDeclaration
* @return string
*/
protected function getPostgresPlatformSQLDeclaration(array $fieldDeclaration)
{
return 'TIMESTAMP('.(int) $fieldDeclaration['precision'].')';
}
/**
* Get the SQL declaration for SQL Server.
*
* @param array $fieldDeclaration
* @return string
*/
protected function getSqlServerPlatformSQLDeclaration(array $fieldDeclaration)
{
return $fieldDeclaration['precision'] ?? false
? 'DATETIME2('.$fieldDeclaration['precision'].')'
: 'DATETIME';
}
/**
* Get the SQL declaration for SQLite.
*
* @param array $fieldDeclaration
* @return string
*/
protected function getSQLitePlatformSQLDeclaration(array $fieldDeclaration)
{
return 'DATETIME';
}
/**
* {@inheritdoc}
*/
public function getName()
{
return 'timestamp';
}
}