| @@ 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()	{ | |
| @@ 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 | |