| @@ 99-122 (lines=24) @@ | ||
| 96 | * |
|
| 97 | * @param Virtual $metadata Entity metadata |
|
| 98 | */ |
|
| 99 | protected function createMethods($metadata) |
|
| 100 | { |
|
| 101 | $methods = []; |
|
| 102 | // TODO: Add different method generation depending on their field type |
|
| 103 | // Generate Query::where() analog for specific field. |
|
| 104 | foreach ($metadata->fields as $fieldID => $fieldName) { |
|
| 105 | $code = "\n\t" . '/**'; |
|
| 106 | $code .= "\n\t" . ' * Get collection of ' . $fieldName . '(#' . $fieldID . ') table column values.'; |
|
| 107 | $code .= "\n\t" . ' * @see \samsoncms\api\field\Table::values($fieldID)'; |
|
| 108 | $code .= "\n\t" . ' * @param string $relation Field to value condition relation'; |
|
| 109 | $code .= "\n\t" . ' *'; |
|
| 110 | $code .= "\n\t" . ' * @return ' . $metadata->types[$fieldID] . '[] ' . $fieldName . ' values collection'; |
|
| 111 | $code .= "\n\t" . ' */'; |
|
| 112 | $code .= "\n\t" . 'public function ' . $fieldName . '()'; |
|
| 113 | $code .= "\n\t" . '{'; |
|
| 114 | $code .= "\n\t\t" . 'return $this->values(' . $fieldID . ');'; |
|
| 115 | $code .= "\n\t" . '}'; |
|
| 116 | ||
| 117 | $methods[] = $code; |
|
| 118 | } |
|
| 119 | ||
| 120 | // Add method text to generator |
|
| 121 | $this->generator->text(implode("\n", $methods)); |
|
| 122 | } |
|
| 123 | ||
| 124 | /** |
|
| 125 | * Class constructor generation part. |
|
| @@ 86-110 (lines=25) @@ | ||
| 83 | * |
|
| 84 | * @param RealMetadata $metadata Entity metadata |
|
| 85 | */ |
|
| 86 | protected function createMethods($metadata) |
|
| 87 | { |
|
| 88 | $methods = []; |
|
| 89 | // TODO: Add different method generation depending on their field type |
|
| 90 | // Generate Query::where() analog for specific field. |
|
| 91 | foreach ($metadata->fields as $fieldID => $fieldName) { |
|
| 92 | $code = "\n\t" . '/**'; |
|
| 93 | $code .= "\n\t" . ' * Add ' . $fieldName . '(#' . $fieldID . ') field query condition.'; |
|
| 94 | $code .= "\n\t" . ' * @see Generic::where()'; |
|
| 95 | $code .= "\n\t" . ' * @param ' . $metadata->types[$fieldID] . ' $value Field value'; |
|
| 96 | $code .= "\n\t" . ' * @param string $relation Field to value condition relation'; |
|
| 97 | $code .= "\n\t" . ' *'; |
|
| 98 | $code .= "\n\t" . ' * @return $this Chaining'; |
|
| 99 | $code .= "\n\t" . ' */'; |
|
| 100 | $code .= "\n\t" . 'public function ' . $fieldName . '($value, $relation = ArgumentInterface::EQUAL)'; |
|
| 101 | $code .= "\n\t" . '{'; |
|
| 102 | $code .= "\n\t\t" . 'return $this->where(\'' . $fieldName . '\', $value, $relation);'; |
|
| 103 | $code .= "\n\t" . '}'; |
|
| 104 | ||
| 105 | $methods[] = $code; |
|
| 106 | } |
|
| 107 | ||
| 108 | // Add method text to generator |
|
| 109 | $this->generator->text(implode("\n", $methods)); |
|
| 110 | } |
|
| 111 | } |
|
| 112 | //[PHPCOMPRESSOR(remove,end)] |
|
| 113 | ||