Code Duplication    Length = 49-49 lines in 2 locations

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

@@ 65-113 (lines=49) @@
62
	 *
63
	 * @return $this
64
	 */
65
	private function replaceEagerCode()
66
	{
67
		$storeCommands = $updateCommands = $ruleCommands = $useCommands = '';
68
		$eagerConditions = $eagerJoins = '';
69
70
		$storeEagerStubOriginal = File::get($this->stubsDirectory . 'StoreEager.php');
71
		$updateEagerStubOriginal = File::get($this->stubsDirectory . 'UpdateEager.php');
72
		$rulesEagerStubOriginal = File::get($this->stubsDirectory . 'RulesEager.php');
73
		$useEagerStubOriginal = File::get($this->stubsDirectory . 'UseEager.php');
74
		$joinEagerStubOriginal = File::get($this->stubsDirectory . 'SearchConditions/JoinEager.php');
75
76
		foreach ($this->modelData->fields as $field)
77
		{
78
			
79
			// Check foreign key
80
			if ($field->foreignKey && isset($field->foreignKey->eager) && $field->foreignKey->eager)
81
			{
82
83
				$storeCommands 	.= str_replace('{{foreign_model_name}}', CamelCase::convertToCamelCase($field->foreignKey->table), $this->replaceForeingStrings($field, $storeEagerStubOriginal));
84
				$updateCommands	.= str_replace('{{foreign_model_name}}', CamelCase::convertToCamelCase($field->foreignKey->table), $this->replaceForeingStrings($field, $updateEagerStubOriginal)) ;
85
				$ruleCommands	.= str_replace('{{foreign_model_name}}', CamelCase::convertToCamelCase($field->foreignKey->table), $this->replaceForeingStrings($field, $rulesEagerStubOriginal)) ;
86
				$useCommands	.= str_replace('{{foreign_model_name}}', CamelCase::convertToCamelCase($field->foreignKey->table), $this->replaceForeingStrings($field, $useEagerStubOriginal)) ;
87
				$eagerJoins		.= $this->replaceForeingStrings($field, $joinEagerStubOriginal) ;
88
89
				// search eager fields
90
				$foreignModelData = $this->getModelData($field->foreignKey->table);
91
				$foreignControllerCompiler = new ControllerCompiler($this->scaffolderConfig, $foreignModelData);
92
				$foreignControllerCompiler->setEagerTable($this->modelData->tableName);
93
				$eagerConditions 	.= $foreignControllerCompiler->getSearchConditions();
94
				$eagerUniqueRules = $foreignControllerCompiler->getEagerUniqueRules();
95
				$eagerUniqueRules = str_replace("{{class_name_lw}}", strtolower($this->modelName), $eagerUniqueRules);
96
				$eagerUniqueRules = str_replace("{{field}}", $field->name, $eagerUniqueRules);
97
				$ruleCommands = str_replace('{{unique_eager_rules}}', $eagerUniqueRules, $ruleCommands) ;
98
			}
99
100
		}
101
102
		$this->stub = str_replace('{{store_eager_objects}}', $storeCommands, $this->stub);
103
		$this->stub = str_replace('{{update_eager_objects}}', $updateCommands, $this->stub);
104
		$this->stub = str_replace('{{rules_eager}}', $ruleCommands, $this->stub);
105
		$this->stub = str_replace('{{eager_use_classes}}', $useCommands, $this->stub);
106
		$this->stub = str_replace('{{eager_joins}}', $eagerJoins, $this->stub);
107
		$this->stub = str_replace('{{eager_conditions}}', $eagerConditions, $this->stub);
108
		$this->stub = str_replace('{{eager_table}}', $this->eagerTable, $this->stub);
109
		
110
111
112
		return $this;
113
	}
114
115
116
	public function replaceSortConditions()	{

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

@@ 338-386 (lines=49) @@
335
	 *
336
	 * @return $this
337
	 */
338
	private function replaceEagerCode()
339
	{
340
		$storeCommands = $updateCommands = $ruleCommands = $useCommands = '';
341
		$eagerConditions = $eagerJoins = '';
342
343
		$storeEagerStubOriginal = File::get($this->stubsDirectory . 'StoreEager.php');
344
		$updateEagerStubOriginal = File::get($this->stubsDirectory . 'UpdateEager.php');
345
		$rulesEagerStubOriginal = File::get($this->stubsDirectory . 'RulesEager.php');
346
		$useEagerStubOriginal = File::get($this->stubsDirectory . 'UseEager.php');
347
		$joinEagerStubOriginal = File::get($this->stubsDirectory . 'SearchConditions/JoinEager.php');
348
349
		foreach ($this->modelData->fields as $field)
350
		{
351
			
352
			// Check foreign key
353
			if ($field->foreignKey && isset($field->foreignKey->eager) && $field->foreignKey->eager)
354
			{
355
356
				$storeCommands 	.= str_replace('{{foreign_model_name}}', CamelCase::convertToCamelCase($field->foreignKey->table), $this->replaceForeingStrings($field, $storeEagerStubOriginal));
357
				$updateCommands	.= str_replace('{{foreign_model_name}}', CamelCase::convertToCamelCase($field->foreignKey->table), $this->replaceForeingStrings($field, $updateEagerStubOriginal)) ;
358
				$ruleCommands	.= str_replace('{{foreign_model_name}}', CamelCase::convertToCamelCase($field->foreignKey->table), $this->replaceForeingStrings($field, $rulesEagerStubOriginal)) ;
359
				$useCommands	.= str_replace('{{foreign_model_name}}', CamelCase::convertToCamelCase($field->foreignKey->table), $this->replaceForeingStrings($field, $useEagerStubOriginal)) ;
360
				$eagerJoins		.= $this->replaceForeingStrings($field, $joinEagerStubOriginal) ;
361
362
				// search eager fields
363
				$foreignModelData = $this->getModelData($field->foreignKey->table);
364
				$foreignControllerCompiler = new ControllerCompiler($this->scaffolderConfig, $foreignModelData);
365
				$foreignControllerCompiler->setEagerTable($this->modelData->tableName);
366
				$eagerConditions 	.= $foreignControllerCompiler->getSearchConditions();
367
				$eagerUniqueRules = $foreignControllerCompiler->getEagerUniqueRules();
368
				$eagerUniqueRules = str_replace("{{class_name_lw}}", strtolower($this->modelName), $eagerUniqueRules);
369
				$eagerUniqueRules = str_replace("{{field}}", $field->name, $eagerUniqueRules);
370
				$ruleCommands = str_replace('{{unique_eager_rules}}', $eagerUniqueRules, $ruleCommands) ;
371
			}
372
373
		}
374
375
		$this->stub = str_replace('{{store_eager_objects}}', $storeCommands, $this->stub);
376
		$this->stub = str_replace('{{update_eager_objects}}', $updateCommands, $this->stub);
377
		$this->stub = str_replace('{{rules_eager}}', $ruleCommands, $this->stub);
378
		$this->stub = str_replace('{{eager_use_classes}}', $useCommands, $this->stub);
379
		$this->stub = str_replace('{{eager_joins}}', $eagerJoins, $this->stub);
380
		$this->stub = str_replace('{{eager_conditions}}', $eagerConditions, $this->stub);
381
		$this->stub = str_replace('{{eager_table}}', $this->eagerTable, $this->stub);
382
		
383
384
385
		return $this;
386
	}
387
388
	/**
389
	 * replace relationship tables