@@ -78,7 +78,10 @@ protected function execute(InputInterface $input = null, OutputInterface $output
78
78
79
79
$ configPath = $ this ->getContainer ()->getParameter ('gamma_fixtures_generator.fixture_references_file_name ' );
80
80
if ($ configPath == 'fixtureReferences.txt ' ) {
81
- $ configPath = $ this ->getContainer ()->get ('kernel ' )->getRootDir ().'/../ ' .$ configPath ;
81
+ $ configPath = $ this ->getContainer ()->get ('kernel ' )->getRootDir ().'/../app/cache/dev/ ' .$ configPath ;
82
+ }
83
+ if (!file_exists ($ configPath )) {
84
+ touch ($ configPath );
82
85
}
83
86
$ fixtureReferencesFileName = $ configPath ;
84
87
@@ -309,9 +312,12 @@ private function writeEntityProperties($variable, $entity, $metadata)
309
312
310
313
/* @var $getterName string */
311
314
$ getterName = 'get ' .$ fieldNameCapitalized ;
315
+ unset($ fieldValue );
312
316
313
317
/* @var $associationEntity mixed|null */
314
- $ fieldValue = $ entity ->$ getterName ();
318
+ if (method_exists ($ entity , $ getterName )) {
319
+ $ fieldValue = $ entity ->$ getterName ();
320
+ }
315
321
316
322
/* @var $fieldMapping array */
317
323
$ fieldMapping = $ metadata ->getFieldMapping ($ fieldName );
@@ -332,7 +338,7 @@ private function writeEntityProperties($variable, $entity, $metadata)
332
338
$ fieldValueStr = 'null ' ;
333
339
334
340
// todo: representing field value in a string should be refactored
335
- if ($ fieldValue ) {
341
+ if (isset ( $ fieldValue) ) {
336
342
if (\in_array ($ fieldType , array ('string ' , 'text ' ))) {
337
343
if (\is_string ($ fieldValue )) {
338
344
$ fieldValueStr = "' " .\addslashes ($ fieldValue )."' " ;
@@ -341,12 +347,12 @@ private function writeEntityProperties($variable, $entity, $metadata)
341
347
}
342
348
} elseif ($ fieldType === 'boolean ' ) {
343
349
$ fieldValueStr = $ fieldValue ? 'true ' : 'false ' ;
344
- } elseif ($ fieldType === ' datetime ' ) {
345
- $ fieldValueStr = "new \DateTime(' " .$ fieldValue ->format ('Y-m-d H:i:s ' )."') " ;
346
- } elseif ($ fieldType === ' date ' ) {
350
+ } elseif ($ fieldValue instanceof \DateTime ) {
351
+ $ fieldValueStr = $ fieldValue ? "new \DateTime(' " .$ fieldValue ->format ('Y-m-d H:i:s ' )."') " : '' ;
352
+ } elseif ($ fieldValue instanceof \Date ) {
347
353
$ fieldValueStr = "new \DateTime(' " .$ fieldValue ->format ('Y-m-d ' )."') " ;
348
- } elseif ($ fieldType == ' array ' ) {
349
- $ fieldValueStr = " ' " . \addslashes ( json_encode ($ fieldValue )). " ' " ;
354
+ } elseif (is_array ( $ fieldValue ) ) {
355
+ $ fieldValueStr = json_encode ($ fieldValue );
350
356
} else {
351
357
$ fieldValueStr = $ fieldValue ;
352
358
}
@@ -367,7 +373,9 @@ private function writeEntityProperties($variable, $entity, $metadata)
367
373
/* @var $setterMethod string */
368
374
$ setterMethod = 'set ' .$ fieldNameCapitalized ;
369
375
370
- $ this ->writeLine ('$ ' .$ variable .'-> ' .$ setterMethod .'( ' .$ fieldValueStr .'); ' );
376
+ if (method_exists ($ entity , $ setterMethod )) {
377
+ $ this ->writeLine ('$ ' .$ variable .'-> ' .$ setterMethod .'( ' .$ fieldValueStr .'); ' );
378
+ }
371
379
}
372
380
}
373
381
}
0 commit comments