Before

…lines 1–501 unchanged (501 lines)
502 Types::DATETIME_IMMUTABLE,
503 Types::DATETIMETZ_MUTABLE,
504 Types::DATETIMETZ_IMMUTABLE,
505 ], true)
506 && $options['default'] === $this->platform->getCurrentTimestampSQL()
507 ) {
508 /** @phpstan-ignore class.notFound (if DefaultExpression exists, CurrentTimestamp exists as well) */
509 $options['default'] = new CurrentTimestamp();
510 }
511
512 if (
513 in_array($mapping->type, [Types::TIME_MUTABLE, Types::TIME_IMMUTABLE], true)
514 && $options['default'] === $this->platform->getCurrentTimeSQL()
515 ) {
516 /** @phpstan-ignore class.notFound (if DefaultExpression exists, CurrentTime exists as well) */
517 $options['default'] = new CurrentTime();
518 }
519
520 if (
521 in_array($mapping->type, [Types::DATE_MUTABLE, Types::DATE_IMMUTABLE], true)
522 && $options['default'] === $this->platform->getCurrentDateSQL()
523 ) {
524 /** @phpstan-ignore class.notFound (if DefaultExpression exists, CurrentDate exists as well) */
525 $options['default'] = new CurrentDate();
526 }
527 }
528
529 if ($class->isIdGeneratorIdentity() && $class->getIdentifierFieldNames() === [$mapping->fieldName]) {
530 $options['autoincrement'] = true;
…lines 531–1042 unchanged (512 lines)
1043 }
1044
1045 private function getAssetName(AbstractAsset $asset): string
1046 {
1047 return $asset instanceof NamedObject
1048 ? $asset->getObjectName()->toString()
1049 // DBAL < 4.4
1050 : $asset->getName();
1051 }
1052}
1053

After

…lines 1–501 unchanged (501 lines)
502 Types::DATETIME_IMMUTABLE,
503 Types::DATETIMETZ_MUTABLE,
504 Types::DATETIMETZ_IMMUTABLE,
505 ], true)
506 && $options['default'] === $this->platform->getCurrentTimestampSQL()
507 ) {
508 $options['default'] = new CurrentTimestamp();
509 }
510
511 if (
512 in_array($mapping->type, [Types::TIME_MUTABLE, Types::TIME_IMMUTABLE], true)
513 && $options['default'] === $this->platform->getCurrentTimeSQL()
514 ) {
515 $options['default'] = new CurrentTime();
516 }
517
518 if (
519 in_array($mapping->type, [Types::DATE_MUTABLE, Types::DATE_IMMUTABLE], true)
520 && $options['default'] === $this->platform->getCurrentDateSQL()
521 ) {
522 $options['default'] = new CurrentDate();
523 }
524 }
525
526 if ($class->isIdGeneratorIdentity() && $class->getIdentifierFieldNames() === [$mapping->fieldName]) {
527 $options['autoincrement'] = true;
528 }
…lines 529–1039 unchanged (511 lines)
1040 }
1041
1042 private function getAssetName(AbstractAsset $asset): string
1043 {
1044 return $asset instanceof NamedObject
1045 ? $asset->getObjectName()->toString()
1046 // @phpstan-ignore method.deprecated (DBAL < 4.4)
1047 : $asset->getName();
1048 }
1049}
1050

Before

program
php_tag "<?php"
declare_statement
declare "declare"
( "("
declare_directive
strict_types "strict_types"
= "="
integer "1"
) ")"
; ";"
namespace_definition
namespace "namespace"
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "Tools"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
name "BackedEnum"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Platforms"
\ "\\"
name "AbstractPlatform"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "AbstractAsset"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "AbstractSchemaManager"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "ComparatorConfig"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "DefaultExpression"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "DefaultExpression"
\ "\\"
name "CurrentDate"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "DefaultExpression"
\ "\\"
name "CurrentTime"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "DefaultExpression"
\ "\\"
name "CurrentTimestamp"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "ForeignKeyConstraintEditor"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "Index"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "Index"
\ "\\"
name "IndexedColumn"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "Name"
\ "\\"
name "Identifier"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "Name"
\ "\\"
name "UnqualifiedName"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "NamedObject"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "PrimaryKeyConstraint"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "Schema"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "Table"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Types"
\ "\\"
name "Types"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "EntityManagerInterface"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "Mapping"
\ "\\"
name "AssociationMapping"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "Mapping"
\ "\\"
name "ClassMetadata"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "Mapping"
\ "\\"
name "DiscriminatorColumnMapping"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "Mapping"
\ "\\"
name "FieldMapping"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "Mapping"
\ "\\"
name "JoinColumnMapping"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "Mapping"
\ "\\"
name "ManyToManyOwningSideMapping"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "Mapping"
\ "\\"
name "MappingException"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "Mapping"
\ "\\"
name "QuoteStrategy"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "Tools"
\ "\\"
name "Event"
\ "\\"
name "GenerateSchemaEventArgs"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "Tools"
\ "\\"
name "Event"
\ "\\"
name "GenerateSchemaTableEventArgs"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "Tools"
\ "\\"
name "Exception"
\ "\\"
name "MissingColumnException"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "Tools"
\ "\\"
name "Exception"
\ "\\"
name "NotSupported"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
name "Throwable"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "array_diff"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "array_diff_key"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "array_filter"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "array_flip"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "array_intersect_key"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "array_map"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "array_values"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "assert"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "class_exists"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "count"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "current"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "implode"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "in_array"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "interface_exists"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "is_numeric"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "method_exists"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "preg_match"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "strtolower"
; ";"
comment "/**\n * The SchemaTool is a tool to create/drop/update databa"...
class_declaration
class "class"
name "SchemaTool"
declaration_list
{ "{"
const_declaration (+40 nodes collapsed)
property_declaration
visibility_modifier
private "private"
readonly_modifier
readonly "readonly"
named_type
name "AbstractPlatform"
property_element
variable_name
$ "$"
name "platform"
; ";"
property_declaration
visibility_modifier
private "private"
readonly_modifier
readonly "readonly"
named_type
name "QuoteStrategy"
property_element
variable_name
$ "$"
name "quoteStrategy"
; ";"
property_declaration
visibility_modifier
private "private"
readonly_modifier
readonly "readonly"
named_type
name "AbstractSchemaManager"
property_element
variable_name
$ "$"
name "schemaManager"
; ";"
comment "/**\n * Initializes a new SchemaTool instance that uses t"...
method_declaration (+96 nodes collapsed)
comment "/**\n * Creates the database schema for the given array o"...
method_declaration (+125 nodes collapsed)
comment "/**\n * Gets the list of DDL statements that are required"...
method_declaration (+59 nodes collapsed)
comment "/**\n * Detects instances of ClassMetadata that don't nee"...
method_declaration (+129 nodes collapsed)
comment "/**\n * Resolves fields in index mapping to column names\n"...
method_declaration (+420 nodes collapsed)
comment "/**\n * Creates a Schema instance from a given set of met"...
method_declaration (+2388 nodes collapsed)
comment "/**\n * Gets a portable column definition as required by "...
method_declaration (+250 nodes collapsed)
comment "/**\n * Gathers the column definitions as required by the"...
method_declaration (+102 nodes collapsed)
comment "/**\n * Creates a column definition as required by the DB"...
method_declaration
visibility_modifier
private "private"
function "function"
name "gatherColumn"
formal_parameters (+24 nodes collapsed)
: ":"
primitive_type "void"
compound_statement
{ "{"
expression_statement (+39 nodes collapsed)
expression_statement
assignment_expression
variable_name
$ "$"
name "columnType"
= "="
member_access_expression
variable_name
$ "$"
name "mapping"
-> "->"
name "type"
; ";"
expression_statement
assignment_expression
variable_name
$ "$"
name "options"
= "="
array_creation_expression
[ "["
] "]"
; ";"
expression_statement (+23 nodes collapsed)
expression_statement (+38 nodes collapsed)
if_statement (+40 nodes collapsed)
expression_statement
assignment_expression
subscript_expression
variable_name
$ "$"
name "options"
[ "["
string
' "'"
string_content "platformOptions"
' "'"
] "]"
= "="
array_creation_expression
[ "["
] "]"
; ";"
expression_statement (+43 nodes collapsed)
if_statement (+53 nodes collapsed)
if_statement (+40 nodes collapsed)
if_statement (+40 nodes collapsed)
if_statement (+40 nodes collapsed)
if_statement (+40 nodes collapsed)
comment "// the 'default' option can be overwritten here"
expression_statement (+25 nodes collapsed)
if_statement
if "if"
parenthesized_expression (+31 nodes collapsed)
compound_statement
{ "{"
if_statement
if "if"
parenthesized_expression (+73 nodes collapsed)
compound_statement
{ "{"
comment "/** @phpstan-ignore class.notFound (if DefaultExpression exi"...
expression_statement
assignment_expression
subscript_expression
variable_name
$ "$"
name "options"
[ "["
string
' "'"
string_content "default"
' "'"
] "]"
= "="
object_creation_expression
new "new"
name "CurrentTimestamp"
arguments
( "("
) ")"
; ";"
} "}"
if_statement
if "if"
parenthesized_expression (+60 nodes collapsed)
compound_statement
{ "{"
comment "/** @phpstan-ignore class.notFound (if DefaultExpression exi"...
expression_statement
assignment_expression
subscript_expression
variable_name
$ "$"
name "options"
[ "["
string
' "'"
string_content "default"
' "'"
] "]"
= "="
object_creation_expression
new "new"
name "CurrentTime"
arguments
( "("
) ")"
; ";"
} "}"
if_statement
if "if"
parenthesized_expression (+60 nodes collapsed)
compound_statement
{ "{"
comment "/** @phpstan-ignore class.notFound (if DefaultExpression exi"...
expression_statement
assignment_expression
subscript_expression
variable_name
$ "$"
name "options"
[ "["
string
' "'"
string_content "default"
' "'"
] "]"
= "="
object_creation_expression
new "new"
name "CurrentDate"
arguments
( "("
) ")"
; ";"
} "}"
} "}"
if_statement (+55 nodes collapsed)
if_statement (+48 nodes collapsed)
if_statement (+72 nodes collapsed)
expression_statement
assignment_expression
variable_name
$ "$"
name "isUnique"
= "="
binary_expression
member_access_expression
variable_name
$ "$"
name "mapping"
-> "->"
name "unique"
?? "??"
boolean "false"
; ";"
if_statement (+30 nodes collapsed)
expression_statement
assignment_expression
variable_name
$ "$"
name "isIndex"
= "="
binary_expression
member_access_expression
variable_name
$ "$"
name "mapping"
-> "->"
name "index"
?? "??"
boolean "false"
; ";"
if_statement (+30 nodes collapsed)
} "}"
comment "/**\n * Gathers the SQL for properly setting up the relat"...
method_declaration (+470 nodes collapsed)
comment "/**\n * Gets the class metadata that is responsible for t"...
method_declaration (+241 nodes collapsed)
comment "/**\n * Gathers columns and fk constraints that are requi"...
method_declaration (+1474 nodes collapsed)
comment "/** @return mixed[] */"
method_declaration (+225 nodes collapsed)
comment "/**\n * Drops the database schema for the given classes.\n"...
method_declaration (+103 nodes collapsed)
comment "/**\n * Drops all elements in the database of the current"...
method_declaration (+77 nodes collapsed)
comment "/**\n * Gets the SQL needed to drop the database schema f"...
method_declaration (+42 nodes collapsed)
comment "/**\n * Gets SQL to drop the tables defined by the passed"...
method_declaration (+550 nodes collapsed)
comment "/**\n * Updates the database schema of the given classes "...
method_declaration (+77 nodes collapsed)
comment "/**\n * Gets the sequence of SQL statements that need to "...
method_declaration (+183 nodes collapsed)
comment "/**\n * Creates the schema from the database, ensuring ta"...
method_declaration (+279 nodes collapsed)
comment "/** @param non-empty-array<non-empty-string> $primaryKeyColu"...
method_declaration (+218 nodes collapsed)
comment "/** @return string[] */"
method_declaration (+107 nodes collapsed)
method_declaration
visibility_modifier
private "private"
function "function"
name "getAssetName"
formal_parameters
( "("
simple_parameter
named_type
name "AbstractAsset"
variable_name
$ "$"
name "asset"
) ")"
: ":"
primitive_type
string "string"
compound_statement
{ "{"
return_statement
return "return"
conditional_expression
binary_expression
variable_name
$ "$"
name "asset"
instanceof "instanceof"
name "NamedObject"
? "?"
member_call_expression
member_call_expression
variable_name
$ "$"
name "asset"
-> "->"
name "getObjectName"
arguments
( "("
) ")"
-> "->"
name "toString"
arguments
( "("
) ")"
comment "// DBAL < 4.4"
: ":"
member_call_expression
variable_name
$ "$"
name "asset"
-> "->"
name "getName"
arguments
( "("
) ")"
; ";"
} "}"
} "}"

After

program
php_tag "<?php"
declare_statement
declare "declare"
( "("
declare_directive
strict_types "strict_types"
= "="
integer "1"
) ")"
; ";"
namespace_definition
namespace "namespace"
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "Tools"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
name "BackedEnum"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Platforms"
\ "\\"
name "AbstractPlatform"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "AbstractAsset"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "AbstractSchemaManager"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "ComparatorConfig"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "DefaultExpression"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "DefaultExpression"
\ "\\"
name "CurrentDate"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "DefaultExpression"
\ "\\"
name "CurrentTime"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "DefaultExpression"
\ "\\"
name "CurrentTimestamp"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "ForeignKeyConstraintEditor"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "Index"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "Index"
\ "\\"
name "IndexedColumn"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "Name"
\ "\\"
name "Identifier"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "Name"
\ "\\"
name "UnqualifiedName"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "NamedObject"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "PrimaryKeyConstraint"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "Schema"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Schema"
\ "\\"
name "Table"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "DBAL"
\ "\\"
name "Types"
\ "\\"
name "Types"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "EntityManagerInterface"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "Mapping"
\ "\\"
name "AssociationMapping"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "Mapping"
\ "\\"
name "ClassMetadata"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "Mapping"
\ "\\"
name "DiscriminatorColumnMapping"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "Mapping"
\ "\\"
name "FieldMapping"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "Mapping"
\ "\\"
name "JoinColumnMapping"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "Mapping"
\ "\\"
name "ManyToManyOwningSideMapping"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "Mapping"
\ "\\"
name "MappingException"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "Mapping"
\ "\\"
name "QuoteStrategy"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "Tools"
\ "\\"
name "Event"
\ "\\"
name "GenerateSchemaEventArgs"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "Tools"
\ "\\"
name "Event"
\ "\\"
name "GenerateSchemaTableEventArgs"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "Tools"
\ "\\"
name "Exception"
\ "\\"
name "MissingColumnException"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
qualified_name
namespace_name
name "Doctrine"
\ "\\"
name "ORM"
\ "\\"
name "Tools"
\ "\\"
name "Exception"
\ "\\"
name "NotSupported"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
name "Throwable"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "array_diff"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "array_diff_key"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "array_filter"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "array_flip"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "array_intersect_key"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "array_map"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "array_values"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "assert"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "class_exists"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "count"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "current"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "implode"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "in_array"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "interface_exists"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "is_numeric"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "method_exists"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "preg_match"
; ";"
namespace_use_declaration
use "use"
namespace_use_clause
function "function"
name "strtolower"
; ";"
comment "/**\n * The SchemaTool is a tool to create/drop/update databa"...
class_declaration
class "class"
name "SchemaTool"
declaration_list
{ "{"
const_declaration (+40 nodes collapsed)
property_declaration
visibility_modifier
private "private"
readonly_modifier
readonly "readonly"
named_type
name "AbstractPlatform"
property_element
variable_name
$ "$"
name "platform"
; ";"
property_declaration
visibility_modifier
private "private"
readonly_modifier
readonly "readonly"
named_type
name "QuoteStrategy"
property_element
variable_name
$ "$"
name "quoteStrategy"
; ";"
property_declaration
visibility_modifier
private "private"
readonly_modifier
readonly "readonly"
named_type
name "AbstractSchemaManager"
property_element
variable_name
$ "$"
name "schemaManager"
; ";"
comment "/**\n * Initializes a new SchemaTool instance that uses t"...
method_declaration (+96 nodes collapsed)
comment "/**\n * Creates the database schema for the given array o"...
method_declaration (+125 nodes collapsed)
comment "/**\n * Gets the list of DDL statements that are required"...
method_declaration (+59 nodes collapsed)
comment "/**\n * Detects instances of ClassMetadata that don't nee"...
method_declaration (+129 nodes collapsed)
comment "/**\n * Resolves fields in index mapping to column names\n"...
method_declaration (+420 nodes collapsed)
comment "/**\n * Creates a Schema instance from a given set of met"...
method_declaration (+2388 nodes collapsed)
comment "/**\n * Gets a portable column definition as required by "...
method_declaration (+250 nodes collapsed)
comment "/**\n * Gathers the column definitions as required by the"...
method_declaration (+102 nodes collapsed)
comment "/**\n * Creates a column definition as required by the DB"...
method_declaration
visibility_modifier
private "private"
function "function"
name "gatherColumn"
formal_parameters (+24 nodes collapsed)
: ":"
primitive_type "void"
compound_statement
{ "{"
expression_statement (+39 nodes collapsed)
expression_statement
assignment_expression
variable_name
$ "$"
name "columnType"
= "="
member_access_expression
variable_name
$ "$"
name "mapping"
-> "->"
name "type"
; ";"
expression_statement
assignment_expression
variable_name
$ "$"
name "options"
= "="
array_creation_expression
[ "["
] "]"
; ";"
expression_statement (+23 nodes collapsed)
expression_statement (+38 nodes collapsed)
if_statement (+40 nodes collapsed)
expression_statement
assignment_expression
subscript_expression
variable_name
$ "$"
name "options"
[ "["
string
' "'"
string_content "platformOptions"
' "'"
] "]"
= "="
array_creation_expression
[ "["
] "]"
; ";"
expression_statement (+43 nodes collapsed)
if_statement (+53 nodes collapsed)
if_statement (+40 nodes collapsed)
if_statement (+40 nodes collapsed)
if_statement (+40 nodes collapsed)
if_statement (+40 nodes collapsed)
comment "// the 'default' option can be overwritten here"
expression_statement (+25 nodes collapsed)
if_statement
if "if"
parenthesized_expression (+31 nodes collapsed)
compound_statement
{ "{"
if_statement
if "if"
parenthesized_expression (+73 nodes collapsed)
compound_statement
{ "{"
expression_statement
assignment_expression
subscript_expression
variable_name
$ "$"
name "options"
[ "["
string
' "'"
string_content "default"
' "'"
] "]"
= "="
object_creation_expression
new "new"
name "CurrentTimestamp"
arguments
( "("
) ")"
; ";"
} "}"
if_statement
if "if"
parenthesized_expression (+60 nodes collapsed)
compound_statement
{ "{"
expression_statement
assignment_expression
subscript_expression
variable_name
$ "$"
name "options"
[ "["
string
' "'"
string_content "default"
' "'"
] "]"
= "="
object_creation_expression
new "new"
name "CurrentTime"
arguments
( "("
) ")"
; ";"
} "}"
if_statement
if "if"
parenthesized_expression (+60 nodes collapsed)
compound_statement
{ "{"
expression_statement
assignment_expression
subscript_expression
variable_name
$ "$"
name "options"
[ "["
string
' "'"
string_content "default"
' "'"
] "]"
= "="
object_creation_expression
new "new"
name "CurrentDate"
arguments
( "("
) ")"
; ";"
} "}"
} "}"
if_statement (+55 nodes collapsed)
if_statement (+48 nodes collapsed)
if_statement (+72 nodes collapsed)
expression_statement
assignment_expression
variable_name
$ "$"
name "isUnique"
= "="
binary_expression
member_access_expression
variable_name
$ "$"
name "mapping"
-> "->"
name "unique"
?? "??"
boolean "false"
; ";"
if_statement (+30 nodes collapsed)
expression_statement
assignment_expression
variable_name
$ "$"
name "isIndex"
= "="
binary_expression
member_access_expression
variable_name
$ "$"
name "mapping"
-> "->"
name "index"
?? "??"
boolean "false"
; ";"
if_statement (+30 nodes collapsed)
} "}"
comment "/**\n * Gathers the SQL for properly setting up the relat"...
method_declaration (+470 nodes collapsed)
comment "/**\n * Gets the class metadata that is responsible for t"...
method_declaration (+241 nodes collapsed)
comment "/**\n * Gathers columns and fk constraints that are requi"...
method_declaration (+1474 nodes collapsed)
comment "/** @return mixed[] */"
method_declaration (+225 nodes collapsed)
comment "/**\n * Drops the database schema for the given classes.\n"...
method_declaration (+103 nodes collapsed)
comment "/**\n * Drops all elements in the database of the current"...
method_declaration (+77 nodes collapsed)
comment "/**\n * Gets the SQL needed to drop the database schema f"...
method_declaration (+42 nodes collapsed)
comment "/**\n * Gets SQL to drop the tables defined by the passed"...
method_declaration (+550 nodes collapsed)
comment "/**\n * Updates the database schema of the given classes "...
method_declaration (+77 nodes collapsed)
comment "/**\n * Gets the sequence of SQL statements that need to "...
method_declaration (+183 nodes collapsed)
comment "/**\n * Creates the schema from the database, ensuring ta"...
method_declaration (+279 nodes collapsed)
comment "/** @param non-empty-array<non-empty-string> $primaryKeyColu"...
method_declaration (+218 nodes collapsed)
comment "/** @return string[] */"
method_declaration (+107 nodes collapsed)
method_declaration
visibility_modifier
private "private"
function "function"
name "getAssetName"
formal_parameters
( "("
simple_parameter
named_type
name "AbstractAsset"
variable_name
$ "$"
name "asset"
) ")"
: ":"
primitive_type
string "string"
compound_statement
{ "{"
return_statement
return "return"
conditional_expression
binary_expression
variable_name
$ "$"
name "asset"
instanceof "instanceof"
name "NamedObject"
? "?"
member_call_expression
member_call_expression
variable_name
$ "$"
name "asset"
-> "->"
name "getObjectName"
arguments
( "("
) ")"
-> "->"
name "toString"
arguments
( "("
) ")"
comment "// @phpstan-ignore method.deprecated (DBAL < 4.4)"
: ":"
member_call_expression
variable_name
$ "$"
name "asset"
-> "->"
name "getName"
arguments
( "("
) ")"
; ";"
} "}"
} "}"