Skip to content

Instantly share code, notes, and snippets.

@young-steveo
Last active June 20, 2018 17:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save young-steveo/6a40c1a2f2c386e297b2d70a63aadff3 to your computer and use it in GitHub Desktop.
Save young-steveo/6a40c1a2f2c386e297b2d70a63aadff3 to your computer and use it in GitHub Desktop.
SearchParams Refactored
<?php
final class SearchParams {
private $username;
private $name;
private function __construct(string $username, string $name) {
$this->username = $username;
$this->name = $name;
}
public static function fromArray(array $params) : SearchParams {
if (empty($params["username"])) {
throw new \Exception("Username is required.");
}
if (empty($params["name"])) {
$first = $params["first_name"] ?? '';
$last = $params["last_name"] ?? '';
$params["name"] = "$first $last";
}
return new static($params["username"], $params["name"]);
}
public function toArray() : array {
return [
"username" => $this->username,
"name" => $this->name
];
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment