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) |
|
128 | |||
129 | /** |
||
130 | * @param string $name |
||
131 | * @return FieldInterface|null |
||
132 | */ |
||
133 | 2 | public function getField($name) |
|
137 | |||
138 | /** |
||
139 | * @return FieldCollection |
||
140 | */ |
||
141 | 30 | public function getFields() |
|
145 | |||
146 | /** |
||
147 | * @param FieldInterface $field |
||
148 | * @return $this |
||
149 | */ |
||
150 | 38 | public function addField(FieldInterface $field) |
|
155 | |||
156 | /** |
||
157 | * @return string |
||
158 | */ |
||
159 | 28 | public function render() |
|
163 | |||
164 | /** |
||
165 | * @param $url |
||
166 | * @return $this |
||
167 | */ |
||
168 | 2 | public function setAction($url) |
|
173 | |||
174 | /** |
||
175 | * @return string |
||
176 | */ |
||
177 | 2 | public function getAction() |
|
181 | |||
182 | /** |
||
183 | * @return string |
||
184 | */ |
||
185 | 29 | public function getId() |
|
189 | |||
190 | /** |
||
191 | * @param string $id |
||
192 | * @return $this |
||
193 | */ |
||
194 | 2 | public function setId($id) |
|
199 | |||
200 | /** |
||
201 | * @param $encType |
||
202 | * @return $this |
||
203 | */ |
||
204 | 2 | public function setEncType($encType) |
|
209 | |||
210 | /** |
||
211 | * @return string |
||
212 | */ |
||
213 | 1 | public function getEncType() |
|
217 | |||
218 | /** |
||
219 | * @param string $method |
||
220 | * @return FormInterface |
||
221 | */ |
||
222 | 2 | public function setMethod($method) |
|
227 | |||
228 | /** |
||
229 | * @return string |
||
230 | */ |
||
231 | 29 | public function getMethod() |
|
235 | |||
236 | /** |
||
237 | * @param $class |
||
238 | * @return FormInterface |
||
239 | */ |
||
240 | 2 | public function setClass($class) |
|
245 | |||
246 | /** |
||
247 | * @return string |
||
248 | */ |
||
249 | 2 | public function getClass() |
|
253 | |||
254 | /** |
||
255 | * @return boolean |
||
256 | */ |
||
257 | 29 | public function isDisplayErrors() |
|
261 | |||
262 | /** |
||
263 | * @param boolean $displayErrors |
||
264 | * @return AbstractForm |
||
265 | */ |
||
266 | 3 | public function setDisplayErrors($displayErrors) |
|
271 | |||
272 | /** |
||
273 | * @param FormRendererInterface $renderer |
||
274 | * @return AbstractForm |
||
275 | */ |
||
276 | 2 | public function setFormRenderer(FormRendererInterface $renderer) |
|
281 | |||
282 | 6 | public function moveUploadedFiles() |
|
291 | |||
292 | /** |
||
293 | * @param FieldInterface $field |
||
294 | * @return bool |
||
295 | */ |
||
296 | 6 | public function moveFileIfUploadField(FieldInterface $field) |
|
304 | } |