summaryrefslogtreecommitdiffstats
path: root/src/Router/Route.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/Router/Route.php')
-rw-r--r--src/Router/Route.php26
1 files changed, 10 insertions, 16 deletions
diff --git a/src/Router/Route.php b/src/Router/Route.php
index be5a052..d2158ea 100644
--- a/src/Router/Route.php
+++ b/src/Router/Route.php
@@ -10,27 +10,21 @@ class Route extends \stdClass
/**
* Class constructor
*
- * @param array $values
+ * @param array|stdClass $values
*/
- public function __construct(array $values)
- {
- foreach ($values as $key => $value) {
- $this->$key = $value;
- }
- }
-
- /**
- * Factory method
- *
- * @param array|\stdClass $values
- * @return Route
- */
- public static function create($values)
+ public function __construct($values)
{
if ($values instanceof \stdClass) {
$values = get_object_vars($values);
}
- return new static($values);
+ if (!is_array($values)) {
+ $type = (is_object($values) ? get_class($values) . ' ' : '') . gettype($values);
+ throw new \InvalidArgumentException("Route values should be an array, not a $type");
+ }
+
+ foreach ($values as $key => $value) {
+ $this->$key = $value;
+ }
}
}