@@ 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 |