Code Duplication    Length = 86-86 lines in 2 locations

src/Scaffolder/Compilers/Core/ControllerCompiler.php 1 location

@@ 340-425 (lines=86) @@
337
	 *
338
	 * @return $this
339
	 */
340
	public function replaceRelationshipTables() {
341
342
		$functions = "";
343
		$functionsCall = "";
344
		$removeAll = "";
345
		$removeAllCall = "";
346
		$includes = "";
347
		$joins = "";
348
		$joinSorts = "";
349
350
		$method = File::get($this->stubsDirectory . '/Controller/ControllerRelationshipTable.php');
351
352
		foreach ($this->modelData->reverseRelationships as $relationship) {
353
354
			if ($relationship->type == "belongsToMany") {
355
				$relatedTablePluralized = CamelCase::pluralize($relationship->relatedTable);
356
				$relatedTablePluralizedUc = CamelCase::pluralize(CamelCase::convertToCamelCase($relationship->relatedTable));
357
358
				$replacedMethod = '';
359
				$replacedMethod = str_replace('{{related_table_pl_uc}}', $relatedTablePluralizedUc, $method);
360
				$replacedMethod = str_replace('{{class_name_lw}}', $this->modelData->tableName, $replacedMethod);
361
				$replacedMethod = str_replace('{{related_table_pl}}', $relatedTablePluralized, $replacedMethod);
362
				$replacedMethod = str_replace('{{foreign_key}}', $relationship->foreignKey, $replacedMethod);
363
				$replacedMethod = str_replace('{{related_field}}', $relationship->relatedField, $replacedMethod);
364
				$replacedMethod = str_replace('{{foreign_table_lw}}', strtolower($relationship->modelName), $replacedMethod);
365
				$replacedMethod = str_replace('{{foreign_table}}', $relationship->modelName, $replacedMethod);
366
367
				$functions .= $replacedMethod;
368
369
				$methodCall = 'if (array_key_exists(\'{{related_table_pl}}\', $vars))';
370
				$methodCall .= "\n\t\t\t";
371
				$methodCall .= '$this->save{{related_table_pl_uc}}($vars, ${{class_name_lw}});';
372
				$methodCall = str_replace('{{related_table_pl_uc}}', $relatedTablePluralizedUc, $methodCall);
373
				$methodCall = str_replace('{{related_table_pl}}', $relatedTablePluralized, $methodCall);
374
				$methodCall = str_replace('{{class_name_lw}}', $this->modelData->tableName, $methodCall);
375
376
				$functionsCall .= $methodCall . "\n\t\t";
377
				
378
				$removeAllMethod = File::get($this->stubsDirectory . '/Controller/ControllerRemoveAll.php');
379
				$removeAllMethod = str_replace('{{related_table_pl_uc}}', $relatedTablePluralizedUc, $removeAllMethod);
380
				$removeAllMethod = str_replace('{{foreign_key}}', $relationship->foreignKey, $removeAllMethod);
381
				$removeAllMethod = str_replace('{{foreign_table}}', $relationship->modelName, $removeAllMethod);
382
				$removeAllMethod = str_replace('{{foreign_table_lw_pl}}', CamelCase::pluralize(strtolower($relationship->modelName)), $removeAllMethod);
383
				
384
				$removeAll .= $removeAllMethod;
385
386
				$removeAllCallMethod = '$this->deleteAll{{related_table_pl_uc}}(${{class_name_lw}}[\'id\']);';
387
				$removeAllCallMethod = str_replace('{{related_table_pl_uc}}', $relatedTablePluralizedUc, $removeAllCallMethod);
388
				$removeAllCallMethod = str_replace('{{class_name_lw}}', $this->modelData->tableName, $removeAllCallMethod);
389
				
390
				$removeAllCall .= $removeAllCallMethod . "\n\t\t";
391
392
				$joinRelationshipTableStub = File::get($this->stubsDirectory . 'SearchConditions/joinRelationshipTable.php');
393
				$joinRelationshipTableStub = str_replace('{{class_name_lw}}', $this->modelData->tableName, $joinRelationshipTableStub);
394
				$joinRelationshipTableStub = str_replace('{{related_table_pl}}', $relatedTablePluralized, $joinRelationshipTableStub);
395
				$joinRelationshipTableStub = str_replace('{{related_table}}', CamelCase::convertToCamelCase($relationship->relatedTable), $joinRelationshipTableStub);
396
				$joinRelationshipTableStub = str_replace('{{foreign_key}}', $relationship->foreignKey, $joinRelationshipTableStub);
397
				$joinRelationshipTableStub = str_replace('{{related_field}}', $relationship->relatedField, $joinRelationshipTableStub);
398
				$joinRelationshipTableStub = str_replace('{{foreign_table}}', $relationship->tableName, $joinRelationshipTableStub);
399
400
				$joins .= $joinRelationshipTableStub . "\n";
401
402
				$use = 'use App\Models\{{foreign_table}};';
403
				$use = str_replace('{{foreign_table}}', $relationship->modelName, $use);
404
405
				$includes .= $use . "\n";
406
			}
407
		}
408
409
		$this->stub = str_replace('{{relationship_tables_store}}', $functions, $this->stub);
410
411
		$this->stub = str_replace('{{relationship_tables_call}}', $functionsCall, $this->stub);
412
413
		$this->stub = str_replace('{{remove_relationship_objects}}', $removeAll, $this->stub);
414
415
		$this->stub = str_replace('{{remove_relationship_objects_call}}', $removeAllCall, $this->stub);
416
417
		$this->stub = str_replace('{{relationship_tables_classes}}', $includes, $this->stub);
418
419
		$this->stub = str_replace('{{relationship_tables_joins}}', $joins, $this->stub);
420
421
		
422
		
423
		return $this;
424
425
	}
426
427
428
	/**

src/Scaffolder/Compilers/Core/ModelCompiler.php 1 location

@@ 393-478 (lines=86) @@
390
	 *
391
	 * @return $this
392
	 */
393
	public function replaceRelationshipTables() {
394
395
		$functions = "";
396
		$functionsCall = "";
397
		$removeAll = "";
398
		$removeAllCall = "";
399
		$includes = "";
400
		$joins = "";
401
		$joinSorts = "";
402
403
		$method = File::get($this->stubsDirectory . '/Model/ModelRelationshipTable.php');
404
405
		foreach ($this->modelData->reverseRelationships as $relationship) {
406
407
			if ($relationship->type == "belongsToMany") {
408
				$relatedTablePluralized = CamelCase::pluralize($relationship->relatedTable);
409
				$relatedTablePluralizedUc = CamelCase::pluralize(CamelCase::convertToCamelCase($relationship->relatedTable));
410
411
				$replacedMethod = '';
412
				$replacedMethod = str_replace('{{related_table_pl_uc}}', $relatedTablePluralizedUc, $method);
413
				$replacedMethod = str_replace('{{class_name_lw}}', $this->modelData->tableName, $replacedMethod);
414
				$replacedMethod = str_replace('{{related_table_pl}}', $relatedTablePluralized, $replacedMethod);
415
				$replacedMethod = str_replace('{{foreign_key}}', $relationship->foreignKey, $replacedMethod);
416
				$replacedMethod = str_replace('{{related_field}}', $relationship->relatedField, $replacedMethod);
417
				$replacedMethod = str_replace('{{foreign_table_lw}}', strtolower($relationship->modelName), $replacedMethod);
418
				$replacedMethod = str_replace('{{foreign_table}}', $relationship->modelName, $replacedMethod);
419
420
				$functions .= $replacedMethod;
421
422
				$methodCall = 'if (array_key_exists(\'{{related_table_pl}}\', $vars))';
423
				$methodCall .= "\n\t\t\t";
424
				$methodCall .= '$this->save{{related_table_pl_uc}}($vars, ${{class_name_lw}});';
425
				$methodCall = str_replace('{{related_table_pl_uc}}', $relatedTablePluralizedUc, $methodCall);
426
				$methodCall = str_replace('{{related_table_pl}}', $relatedTablePluralized, $methodCall);
427
				$methodCall = str_replace('{{class_name_lw}}', $this->modelData->tableName, $methodCall);
428
429
				$functionsCall .= $methodCall . "\n\t\t";
430
				
431
				$removeAllMethod = File::get($this->stubsDirectory . '/Controller/ControllerRemoveAll.php');
432
				$removeAllMethod = str_replace('{{related_table_pl_uc}}', $relatedTablePluralizedUc, $removeAllMethod);
433
				$removeAllMethod = str_replace('{{foreign_key}}', $relationship->foreignKey, $removeAllMethod);
434
				$removeAllMethod = str_replace('{{foreign_table}}', $relationship->modelName, $removeAllMethod);
435
				$removeAllMethod = str_replace('{{foreign_table_lw_pl}}', CamelCase::pluralize(strtolower($relationship->modelName)), $removeAllMethod);
436
				
437
				$removeAll .= $removeAllMethod;
438
439
				$removeAllCallMethod = '$this->deleteAll{{related_table_pl_uc}}(${{class_name_lw}}[\'id\']);';
440
				$removeAllCallMethod = str_replace('{{related_table_pl_uc}}', $relatedTablePluralizedUc, $removeAllCallMethod);
441
				$removeAllCallMethod = str_replace('{{class_name_lw}}', $this->modelData->tableName, $removeAllCallMethod);
442
				
443
				$removeAllCall .= $removeAllCallMethod . "\n\t\t";
444
445
				$joinRelationshipTableStub = File::get($this->stubsDirectory . 'SearchConditions/joinRelationshipTable.php');
446
				$joinRelationshipTableStub = str_replace('{{class_name_lw}}', $this->modelData->tableName, $joinRelationshipTableStub);
447
				$joinRelationshipTableStub = str_replace('{{related_table_pl}}', $relatedTablePluralized, $joinRelationshipTableStub);
448
				$joinRelationshipTableStub = str_replace('{{related_table}}', CamelCase::convertToCamelCase($relationship->relatedTable), $joinRelationshipTableStub);
449
				$joinRelationshipTableStub = str_replace('{{foreign_key}}', $relationship->foreignKey, $joinRelationshipTableStub);
450
				$joinRelationshipTableStub = str_replace('{{related_field}}', $relationship->relatedField, $joinRelationshipTableStub);
451
				$joinRelationshipTableStub = str_replace('{{foreign_table}}', $relationship->tableName, $joinRelationshipTableStub);
452
453
				$joins .= $joinRelationshipTableStub . "\n";
454
455
				$use = 'use App\Models\{{foreign_table}};';
456
				$use = str_replace('{{foreign_table}}', $relationship->modelName, $use);
457
458
				$includes .= $use . "\n";
459
			}
460
		}
461
462
		$this->stub = str_replace('{{relationship_tables_store}}', $functions, $this->stub);
463
464
		$this->stub = str_replace('{{relationship_tables_call}}', $functionsCall, $this->stub);
465
466
		$this->stub = str_replace('{{remove_relationship_objects}}', $removeAll, $this->stub);
467
468
		$this->stub = str_replace('{{remove_relationship_objects_call}}', $removeAllCall, $this->stub);
469
470
		$this->stub = str_replace('{{relationship_tables_classes}}', $includes, $this->stub);
471
472
		$this->stub = str_replace('{{relationship_tables_joins}}', $joins, $this->stub);
473
474
		
475
		
476
		return $this;
477
478
	}
479
480
481
	/**