1313
1414use Doctrine \Common \Persistence \Mapping \ClassMetadataFactory ;
1515use Doctrine \Common \Persistence \Mapping \MappingException ;
16+ use Doctrine \DBAL \Types \Type as DBALType ;
1617use Doctrine \ORM \Mapping \ClassMetadataInfo ;
1718use Doctrine \ORM \Mapping \MappingException as OrmMappingException ;
1819use Symfony \Component \PropertyInfo \PropertyListExtractorInterface ;
@@ -93,23 +94,26 @@ public function getTypes($class, $property, array $context = array())
9394 $ nullable = $ metadata instanceof ClassMetadataInfo && $ metadata ->isNullable ($ property );
9495
9596 switch ($ typeOfField ) {
96- case 'date ' :
97- case 'datetime ' :
98- case 'datetimetz ' :
99- case 'time ' :
97+ case DBALType::DATE :
98+ case DBALType::DATETIME :
99+ case DBALType::DATETIMETZ :
100+ case 'vardatetime ' :
101+ case DBALType::TIME :
100102 return array (new Type (Type::BUILTIN_TYPE_OBJECT , $ nullable , 'DateTime ' ));
101103
102- case ' array ' :
104+ case DBALType:: TARRAY :
103105 return array (new Type (Type::BUILTIN_TYPE_ARRAY , $ nullable , null , true ));
104106
105- case ' simple_array ' :
107+ case DBALType:: SIMPLE_ARRAY :
106108 return array (new Type (Type::BUILTIN_TYPE_ARRAY , $ nullable , null , true , new Type (Type::BUILTIN_TYPE_INT ), new Type (Type::BUILTIN_TYPE_STRING )));
107109
108- case ' json_array ' :
110+ case DBALType:: JSON_ARRAY :
109111 return array (new Type (Type::BUILTIN_TYPE_ARRAY , $ nullable , null , true ));
110112
111113 default :
112- return array (new Type ($ this ->getPhpType ($ typeOfField ), $ nullable ));
114+ $ builtinType = $ this ->getPhpType ($ typeOfField );
115+
116+ return $ builtinType ? array (new Type ($ builtinType , $ nullable )) : null ;
113117 }
114118 }
115119 }
@@ -119,36 +123,37 @@ public function getTypes($class, $property, array $context = array())
119123 *
120124 * @param string $doctrineType
121125 *
122- * @return string
126+ * @return string|null
123127 */
124128 private function getPhpType ($ doctrineType )
125129 {
126130 switch ($ doctrineType ) {
127- case 'smallint ' :
128- // No break
129- case 'bigint ' :
130- // No break
131- case 'integer ' :
131+ case DBALType::SMALLINT :
132+ case DBALType::BIGINT :
133+ case DBALType::INTEGER :
132134 return Type::BUILTIN_TYPE_INT ;
133135
134- case 'decimal ' :
136+ case DBALType::FLOAT :
137+ case DBALType::DECIMAL :
135138 return Type::BUILTIN_TYPE_FLOAT ;
136139
137- case ' text ' :
138- // No break
139- case ' guid ' :
140+ case DBALType:: STRING :
141+ case DBALType:: TEXT :
142+ case DBALType:: GUID :
140143 return Type::BUILTIN_TYPE_STRING ;
141144
142- case ' boolean ' :
145+ case DBALType:: BOOLEAN :
143146 return Type::BUILTIN_TYPE_BOOL ;
144147
145- case 'blob ' :
146- // No break
148+ case DBALType::BLOB :
147149 case 'binary ' :
148150 return Type::BUILTIN_TYPE_RESOURCE ;
149151
152+ case DBALType::OBJECT :
153+ return Type::BUILTIN_TYPE_OBJECT ;
154+
150155 default :
151- return $ doctrineType ;
156+ return ;
152157 }
153158 }
154159}
0 commit comments