5
5
use Blueprint \Contracts \Generator ;
6
6
use Blueprint \Models \Column ;
7
7
use Blueprint \Models \Model ;
8
+ use Shift \Faker \Registry as FakerRegistry ;
8
9
use Blueprint \Tree ;
9
10
use Illuminate \Support \Str ;
10
11
@@ -128,7 +129,7 @@ protected function buildDefinition(Model $model)
128
129
$ definition .= ', ' .PHP_EOL ;
129
130
} elseif (in_array ($ column ->dataType (), ['enum ' , 'set ' ]) && ! empty ($ column ->attributes ())) {
130
131
$ definition .= self ::INDENT ."' {$ column ->name ()}' => " ;
131
- $ faker = $ this -> fakerData ($ column ->name ()) ?? $ this -> fakerDataType ($ column ->dataType ());
132
+ $ faker = FakerRegistry:: fakerData ($ column ->name ()) ?? FakerRegistry:: fakerDataType ($ column ->dataType ());
132
133
$ definition .= '$faker-> ' .$ faker ;
133
134
$ definition .= ', ' .PHP_EOL ;
134
135
$ definition = str_replace (
@@ -138,7 +139,7 @@ protected function buildDefinition(Model $model)
138
139
);
139
140
} elseif (in_array ($ column ->dataType (), ['decimal ' , 'double ' , 'float ' ])) {
140
141
$ definition .= self ::INDENT ."' {$ column ->name ()}' => " ;
141
- $ faker = $ this -> fakerData ($ column ->name ()) ?? $ this -> fakerDataType ($ column ->dataType ());
142
+ $ faker = FakerRegistry:: fakerData ($ column ->name ()) ?? FakerRegistry:: fakerDataType ($ column ->dataType ());
142
143
$ definition .= '$faker-> ' .$ faker ;
143
144
$ definition .= ', ' .PHP_EOL ;
144
145
@@ -157,8 +158,8 @@ protected function buildDefinition(Model $model)
157
158
if ($ column ->isNullable ()) {
158
159
continue ;
159
160
}
160
- $ definition .= sprintf ('%s%s => $faker->%s,%s ' , self ::INDENT , "' {$ column ->name ()}_id' " , self ::fakerDataType ('id ' ), PHP_EOL );
161
- $ definition .= sprintf ('%s%s => $faker->%s,%s ' , self ::INDENT , "' {$ column ->name ()}_type' " , self ::fakerDataType ('string ' ), PHP_EOL );
161
+ $ definition .= sprintf ('%s%s => $faker->%s,%s ' , self ::INDENT , "' {$ column ->name ()}_id' " , FakerRegistry ::fakerDataType ('id ' ), PHP_EOL );
162
+ $ definition .= sprintf ('%s%s => $faker->%s,%s ' , self ::INDENT , "' {$ column ->name ()}_type' " , FakerRegistry ::fakerDataType ('string ' ), PHP_EOL );
162
163
} elseif ($ column ->dataType () === 'rememberToken ' ) {
163
164
$ this ->addImport ($ model , 'Illuminate\Support\Str ' );
164
165
$ definition .= self ::INDENT ."' {$ column ->name ()}' => " ;
@@ -172,7 +173,7 @@ protected function buildDefinition(Model $model)
172
173
$ type = 'unsigned ' .$ type ;
173
174
}
174
175
175
- $ faker = self ::fakerData ($ column ->name ()) ?? (self ::fakerDataType ($ type ) ?? self ::fakerDataType ($ column ->dataType ()));
176
+ $ faker = FakerRegistry ::fakerData ($ column ->name ()) ?? (FakerRegistry ::fakerDataType ($ type ) ?? FakerRegistry ::fakerDataType ($ column ->dataType ()));
176
177
177
178
if ($ faker === null ) {
178
179
$ faker = 'word ' ;
@@ -211,104 +212,4 @@ private function fillableColumns(array $columns): array
211
212
return ! in_array ('nullable ' , $ column ->modifiers ());
212
213
});
213
214
}
214
-
215
- public static function fakerData (string $ name )
216
- {
217
- static $ fakeableNames = [
218
- 'address1 ' => 'streetAddress ' ,
219
- 'address2 ' => 'secondaryAddress ' ,
220
- 'city ' => 'city ' ,
221
- 'company ' => 'company ' ,
222
- 'content ' => 'paragraphs(3, true) ' ,
223
- 'country ' => 'country ' ,
224
- 'description ' => 'text ' ,
225
- 'email ' => 'safeEmail ' ,
226
- 'first_name ' => 'firstName ' ,
227
- 'firstname ' => 'firstName ' ,
228
- 'guid ' => 'uuid ' ,
229
- 'last_name ' => 'lastName ' ,
230
- 'lastname ' => 'lastName ' ,
231
- 'lat ' => 'latitude ' ,
232
- 'latitude ' => 'latitude ' ,
233
- 'lng ' => 'longitude ' ,
234
- 'longitude ' => 'longitude ' ,
235
- 'name ' => 'name ' ,
236
- 'password ' => 'password ' ,
237
- 'phone ' => 'phoneNumber ' ,
238
- 'phone_number ' => 'phoneNumber ' ,
239
- 'postal_code ' => 'postcode ' ,
240
- 'postcode ' => 'postcode ' ,
241
- 'slug ' => 'slug ' ,
242
- 'ssn ' => 'ssn ' ,
243
- 'street ' => 'streetName ' ,
244
- 'summary ' => 'text ' ,
245
- 'title ' => 'sentence(4) ' ,
246
- 'url ' => 'url ' ,
247
- 'user_name ' => 'userName ' ,
248
- 'username ' => 'userName ' ,
249
- 'uuid ' => 'uuid ' ,
250
- 'zip ' => 'postcode ' ,
251
- ];
252
-
253
- return $ fakeableNames [$ name ] ?? null ;
254
- }
255
-
256
- public static function fakerDataType (string $ type )
257
- {
258
- $ fakeableTypes = [
259
- 'biginteger ' => 'numberBetween(-100000, 100000) ' ,
260
- 'binary ' => 'sha256 ' ,
261
- 'boolean ' => 'boolean ' ,
262
- 'char ' => 'randomLetter ' ,
263
- 'date ' => 'date() ' ,
264
- 'datetime ' => 'dateTime() ' ,
265
- 'datetimetz ' => 'dateTime() ' ,
266
- 'decimal ' => 'randomFloat(/** decimal_attributes **/) ' ,
267
- 'double ' => 'randomFloat(/** double_attributes **/) ' ,
268
- 'enum ' => 'randomElement(/** enum_attributes **/) ' ,
269
- 'float ' => 'randomFloat(/** float_attributes **/) ' ,
270
- 'geometry ' => 'word ' ,
271
- 'geometrycollection ' => 'word ' ,
272
- 'guid ' => 'uuid ' ,
273
- 'id ' => 'randomDigitNotNull ' ,
274
- 'integer ' => 'numberBetween(-10000, 10000) ' ,
275
- 'ipaddress ' => 'ipv4 ' ,
276
- 'linestring ' => 'word ' ,
277
- 'longtext ' => 'text ' ,
278
- 'macaddress ' => 'macAddress ' ,
279
- 'mediuminteger ' => 'numberBetween(-10000, 10000) ' ,
280
- 'mediumtext ' => 'text ' ,
281
- 'morphs_id ' => 'randomDigitNotNull ' ,
282
- 'morphs_type ' => 'word ' ,
283
- 'multilinestring ' => 'word ' ,
284
- 'multipoint ' => 'word ' ,
285
- 'multipolygon ' => 'word ' ,
286
- 'nullablemorphs ' => null ,
287
- 'nullabletimestamps ' => null ,
288
- 'nullableuuidmorphs ' => null ,
289
- 'point ' => 'word ' ,
290
- 'polygon ' => 'word ' ,
291
- 'set ' => 'randomElement(/** set_attributes **/) ' ,
292
- 'smallint ' => 'numberBetween(-1000, 1000) ' ,
293
- 'smallinteger ' => 'numberBetween(-1000, 1000) ' ,
294
- 'string ' => 'word ' ,
295
- 'text ' => 'text ' ,
296
- 'time ' => 'time() ' ,
297
- 'timestamp ' => 'dateTime() ' ,
298
- 'timestamptz ' => 'dateTime() ' ,
299
- 'timetz ' => 'time() ' ,
300
- 'tinyinteger ' => 'numberBetween(-8, 8) ' ,
301
- 'unsignedbiginteger ' => 'randomNumber() ' ,
302
- 'unsigneddecimal ' => 'randomNumber() ' ,
303
- 'unsignedinteger ' => 'randomNumber() ' ,
304
- 'unsignedmediuminteger ' => 'randomNumber() ' ,
305
- 'unsignedsmallinteger ' => 'randomNumber() ' ,
306
- 'unsignedtinyinteger ' => 'randomDigitNotNull ' ,
307
- 'uuid ' => 'uuid ' ,
308
- 'uuidmorphs ' => 'word ' ,
309
- 'year ' => 'year() ' ,
310
- ];
311
-
312
- return $ fakeableTypes [strtolower ($ type )] ?? null ;
313
- }
314
215
}
0 commit comments