1 | <?php |
||
17 | abstract class AbstractForm implements FormInterface |
||
18 | { |
||
19 | const ENC_TYPE_MULTIPART_FORM_DATA = 'multipart/form-data'; |
||
20 | const ENC_TYPE_URL_ENCODED = 'application/x-www-form-urlencoded'; |
||
21 | const ENC_TYPE_TEXT_PLAIN = 'text/plain'; |
||
22 | |||
23 | const METHOD_POST = 'post'; |
||
24 | const METHOD_GET = 'get'; |
||
25 | |||
26 | /** @var FieldCollection $fieldCollection */ |
||
27 | private $fieldCollection; |
||
28 | |||
29 | /** @var FormRendererInterface */ |
||
30 | private $formRenderer; |
||
31 | |||
32 | /** @var array $errorMessages */ |
||
33 | private $errorMessages; |
||
34 | |||
35 | /** @var bool $displayErrors */ |
||
36 | private $displayErrors; |
||
37 | |||
38 | use HasAttributesTrait; |
||
39 | |||
40 | /** |
||
41 | * AbstractForm constructor. |
||
42 | * @param $name |
||
43 | */ |
||
44 | 47 | public function __construct($name) |
|
45 | { |
||
46 | 47 | $this->fieldCollection = new FieldCollection(); |
|
47 | 47 | $this->formRenderer = new FormRenderer(); |
|
48 | 47 | $this->attributes = [ |
|
49 | 47 | 'name' => $name, |
|
50 | 47 | 'method' => self::METHOD_POST, |
|
51 | ]; |
||
52 | 47 | $this->displayErrors = false; |
|
53 | 47 | $this->init(); |
|
54 | 47 | } |
|
55 | |||
56 | abstract public function init(); |
||
57 | |||
58 | /** |
||
59 | * @return bool |
||
60 | */ |
||
61 | 8 | public function isValid() |
|
72 | |||
73 | 8 | private function validateFields() |
|
82 | |||
83 | /** |
||
84 | * @param FieldInterface $field |
||
85 | */ |
||
86 | 8 | private function checkFieldForErrors(FieldInterface $field) |
|
92 | |||
93 | /** |
||
94 | * @return array |
||
95 | */ |
||
96 | 4 | public function getValues() |
|
108 | |||
109 | /** |
||
110 | * @param array $data |
||
111 | * @return $this |
||
112 | */ |
||
113 | 5 | public function populate(array $data) |
|
121 | |||
122 | /** |
||
123 | * @param array $dynamicForms |
||
124 | * @param array $data |
||
125 | */ |
||
126 | private function populateDynamicForms(array $dynamicForms, array $data) |
||
134 | |||
135 | /** |
||
136 | * @param FieldCollection $fields |
||
137 | * @param array $data |
||
138 | */ |
||
139 | 5 | private function populateFields(FieldCollection $fields, array $data) |
|
147 | |||
148 | /** |
||
149 | * @param FieldInterface $field |
||
150 | * @param array $data |
||
151 | */ |
||
152 | 5 | private function populateField(FieldInterface $field, array $data) |
|
163 | |||
164 | /** |
||
165 | * @param string $name |
||
166 | * @return FieldInterface|null |
||
167 | */ |
||
168 | 2 | public function getField($name) |
|
172 | |||
173 | /** |
||
174 | * @return FieldCollection |
||
175 | */ |
||
176 | 30 | public function getFields() |
|
180 | |||
181 | /** |
||
182 | * @param FieldInterface $field |
||
183 | * @return $this |
||
184 | */ |
||
185 | 38 | public function addField(FieldInterface $field) |
|
190 | |||
191 | /** |
||
192 | * @return string |
||
193 | */ |
||
194 | 28 | public function render() |
|
198 | |||
199 | /** |
||
200 | * @param $url |
||
201 | * @return $this |
||
202 | */ |
||
203 | 2 | public function setAction($url) |
|
208 | |||
209 | /** |
||
210 | * @return string |
||
211 | */ |
||
212 | 2 | public function getAction() |
|
216 | |||
217 | /** |
||
218 | * @return string |
||
219 | */ |
||
220 | 29 | public function getId() |
|
224 | |||
225 | /** |
||
226 | * @param string $id |
||
227 | * @return $this |
||
228 | */ |
||
229 | 2 | public function setId($id) |
|
234 | |||
235 | /** |
||
236 | * @param $encType |
||
237 | * @return $this |
||
238 | */ |
||
239 | 2 | public function setEncType($encType) |
|
244 | |||
245 | /** |
||
246 | * @return string |
||
247 | */ |
||
248 | 1 | public function getEncType() |
|
252 | |||
253 | /** |
||
254 | * @param string $method |
||
255 | * @return FormInterface |
||
256 | */ |
||
257 | 2 | public function setMethod($method) |
|
262 | |||
263 | /** |
||
264 | * @return string |
||
265 | */ |
||
266 | 29 | public function getMethod() |
|
270 | |||
271 | /** |
||
272 | * @param $class |
||
273 | * @return FormInterface |
||
274 | */ |
||
275 | 2 | public function setClass($class) |
|
280 | |||
281 | /** |
||
282 | * @return string |
||
283 | */ |
||
284 | 2 | public function getClass() |
|
288 | |||
289 | /** |
||
290 | * @return boolean |
||
291 | */ |
||
292 | 29 | public function isDisplayErrors() |
|
296 | |||
297 | /** |
||
298 | * @param boolean $displayErrors |
||
299 | * @return AbstractForm |
||
300 | */ |
||
301 | 3 | public function setDisplayErrors($displayErrors) |
|
306 | |||
307 | /** |
||
308 | * @param FormRendererInterface $renderer |
||
309 | * @return AbstractForm |
||
310 | */ |
||
311 | 2 | public function setFormRenderer(FormRendererInterface $renderer) |
|
316 | |||
317 | 6 | public function moveUploadedFiles() |
|
326 | |||
327 | /** |
||
328 | * @param FieldInterface $field |
||
329 | * @return bool |
||
330 | */ |
||
331 | 6 | public function moveFileIfUploadField(FieldInterface $field) |
|
339 | } |