Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F4125778
DoctrineSchemaBuilderFactory.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
DoctrineSchemaBuilderFactory.php
View Options
<?php
namespace
Wikimedia\Rdbms
;
use
Doctrine\DBAL\Platforms\AbstractPlatform
;
use
Doctrine\DBAL\Platforms\SqlitePlatform
;
use
Doctrine\DBAL\Types\Type
;
use
InvalidArgumentException
;
/**
* @experimental
* @unstable
*/
class
DoctrineSchemaBuilderFactory
{
/**
* @param string $platform one of strings 'mysql', 'postgres' or 'sqlite'
* @return DoctrineSchemaBuilder
*/
public
function
getSchemaBuilder
(
string
$platform
)
{
return
new
DoctrineSchemaBuilder
(
$this
->
getPlatform
(
$platform
)
);
}
/**
* @param string $platform one of strings 'mysql', 'postgres' or 'sqlite'
* @return DoctrineSchemaChangeBuilder
*/
public
function
getSchemaChangeBuilder
(
$platform
)
{
return
new
DoctrineSchemaChangeBuilder
(
$this
->
getPlatform
(
$platform
)
);
}
/**
* @param string $platform
* @return AbstractPlatform
*/
private
function
getPlatform
(
string
$platform
)
{
switch
(
$platform
)
{
case
'mysql'
:
$platformObject
=
new
MWMySQLPlatform
;
break
;
case
'postgres'
:
$platformObject
=
new
MWPostgreSqlPlatform
;
break
;
case
'sqlite'
:
$platformObject
=
new
SqlitePlatform
;
break
;
default
:
throw
new
InvalidArgumentException
(
'Unknown platform: '
.
$platform
);
}
$customTypes
=
[
'Enum'
=>
[
EnumType
::
class
,
EnumType
::
ENUM
],
'Tinyint'
=>
[
TinyIntType
::
class
,
TinyIntType
::
TINYINT
],
'Timestamp'
=>
[
TimestampType
::
class
,
TimestampType
::
TIMESTAMP
],
];
foreach
(
$customTypes
as
$type
=>
[
$class
,
$name
]
)
{
if
(
!
Type
::
hasType
(
$name
)
)
{
Type
::
addType
(
$name
,
$class
);
}
$platformObject
->
registerDoctrineTypeMapping
(
$type
,
$name
);
}
return
$platformObject
;
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Wed, Aug 19, 07:39 (2 w, 2 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
a6/c8/08923008f5cf853cf5c54ce58b5d
Default Alt Text
DoctrineSchemaBuilderFactory.php (1 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment