Created
May 3, 2018 23:19
-
-
Save kelunik/18b2edbd3b22b613cae7123ae9a5c256 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace Amp\Http\Server\FormParser; | |
final class Field { | |
/** @var string */ | |
private $name; | |
/** @var string */ | |
private $value; | |
/** @var FieldAttributes */ | |
private $attributes; | |
public function __construct(string $name, string $value = "", FieldAttributes $attributes = null) { | |
$this->name = $name; | |
$this->value = $value; | |
$this->attributes = $attributes ?? new FieldAttributes; | |
} | |
public function getName(): string { | |
return $this->name; | |
} | |
public function getValue(): string { | |
return $this->value; | |
} | |
public function hasValue(): bool { | |
return $this->value !== ""; | |
} | |
public function getAttributes(): FieldAttributes { | |
return $this->attributes; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace Amp\Http\Server\FormParser; | |
final class Form { | |
/** @var Field[][] */ | |
private $fields; | |
/** | |
* @param Field[] $fields | |
*/ | |
public function __construct(array $fields) { | |
$this->fields = $fields; | |
} | |
/** | |
* Get first field value with a given name or null, if no such field exists. | |
* | |
* @param string $name | |
* | |
* @return string|null | |
*/ | |
public function getValue(string $name) { | |
if (!isset($this->fields[$name][0])) { | |
return null; | |
} | |
return $this->fields[$name][0]->getValue(); | |
} | |
/** | |
* Get all field values with a given name. | |
* | |
* @param string $name | |
* | |
* @return string[] | |
*/ | |
public function getValueArray(string $name): array { | |
$values = []; | |
foreach ($this->fields[$name] ?? [] as $field) { | |
$values[] = $field->getValue(); | |
} | |
return $values; | |
} | |
/** | |
* Get first field with a given name or null, if no such field exists. | |
* | |
* @param string $name | |
* | |
* @return Field|null | |
*/ | |
public function getField(string $name) { | |
return $this->fields[$name][0] ?? null; | |
} | |
/** | |
* Get all fields with a given name. | |
* | |
* @param string $name | |
* | |
* @return Field[] | |
*/ | |
public function getFieldArray(string $name): array { | |
return $this->fields[$name] ?? []; | |
} | |
/** | |
* Returns the names of the passed fields. | |
* | |
* @return string[] | |
*/ | |
public function getNames(): array { | |
return \array_keys($this->fields); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment