From 5a6e225a5caa7d300115fa0394d817b2487a6797 Mon Sep 17 00:00:00 2001 From: nyamsprod Date: Tue, 22 Sep 2015 13:16:53 +0200 Subject: [PATCH] Improve components interface --- src/Components/Fragment.php | 2 +- src/Components/Port.php | 2 +- src/Components/Query.php | 9 +-------- src/Components/Scheme.php | 2 +- src/Components/UserInfo.php | 4 ++-- src/Interfaces/Fragment.php | 6 ++++++ src/Interfaces/Port.php | 7 +++++++ src/Interfaces/Query.php | 7 +++++++ src/Interfaces/Scheme.php | 6 ++++++ src/Interfaces/UserInfo.php | 14 ++++++++++++++ 10 files changed, 46 insertions(+), 13 deletions(-) diff --git a/src/Components/Fragment.php b/src/Components/Fragment.php index 75e1a42c..5e411a5f 100644 --- a/src/Components/Fragment.php +++ b/src/Components/Fragment.php @@ -45,7 +45,7 @@ public function getUriComponent() { $component = $this->__toString(); if (!empty($component)) { - $component = '#'.$component; + $component = FragmentInterface::DELIMITER.$component; } return $component; diff --git a/src/Components/Port.php b/src/Components/Port.php index c20ff306..b7ad982f 100644 --- a/src/Components/Port.php +++ b/src/Components/Port.php @@ -51,7 +51,7 @@ protected function validate($port) */ public function getUriComponent() { - return null === $this->data ? '' : ':'.$this->data; + return null === $this->data ? '' : PortInterface::DELIMITER.$this->data; } /** diff --git a/src/Components/Query.php b/src/Components/Query.php index d34d7758..d61fd98d 100644 --- a/src/Components/Query.php +++ b/src/Components/Query.php @@ -38,13 +38,6 @@ class Query implements QueryInterface */ protected static $separator = '&'; - /** - * string delimiter - * - * @var string - */ - protected static $delimiter = '?'; - /** * a new instance * @@ -125,7 +118,7 @@ public function getUriComponent() { $query = $this->__toString(); if (!empty($query)) { - $query = static::$delimiter.$query; + $query = QueryInterface::DELIMITER.$query; } return $query; diff --git a/src/Components/Scheme.php b/src/Components/Scheme.php index 8e945dd4..1d95acd8 100644 --- a/src/Components/Scheme.php +++ b/src/Components/Scheme.php @@ -47,7 +47,7 @@ public function getUriComponent() { $component = $this->__toString(); if (!empty($component)) { - $component .= ':'; + $component .= SchemeInterface::DELIMITER; } return $component; diff --git a/src/Components/UserInfo.php b/src/Components/UserInfo.php index e73fa58f..ad347c39 100644 --- a/src/Components/UserInfo.php +++ b/src/Components/UserInfo.php @@ -84,7 +84,7 @@ public function __toString() $pass = $this->pass->__toString(); if (!empty($pass)) { - $userInfo .= ':'.$pass; + $userInfo .= UserInfoInterface::SEPARATOR.$pass; } return $userInfo; @@ -97,7 +97,7 @@ public function getUriComponent() { $component = $this->__toString(); if (!empty($component)) { - $component .= '@'; + $component .= UserInfoInterface::DELIMITER; } return $component; diff --git a/src/Interfaces/Fragment.php b/src/Interfaces/Fragment.php index 8bfe7a25..4ea864fa 100644 --- a/src/Interfaces/Fragment.php +++ b/src/Interfaces/Fragment.php @@ -26,4 +26,10 @@ */ interface Fragment extends Component { + /** + * URI component delimiter. + * + * @var string + */ + const DELIMITER = '#'; } diff --git a/src/Interfaces/Port.php b/src/Interfaces/Port.php index 358a495e..bd671edd 100644 --- a/src/Interfaces/Port.php +++ b/src/Interfaces/Port.php @@ -26,6 +26,13 @@ */ interface Port extends Component { + /** + * URI component delimiter. + * + * @var string + */ + const DELIMITER = ':'; + /** * Maximum port number. * diff --git a/src/Interfaces/Query.php b/src/Interfaces/Query.php index 61105dd7..7f3f6b58 100644 --- a/src/Interfaces/Query.php +++ b/src/Interfaces/Query.php @@ -26,6 +26,13 @@ */ interface Query extends Collection, Component { + /** + * URI component delimiter. + * + * @var string + */ + const DELIMITER = '?'; + /** * Retrieves a single query parameter. * diff --git a/src/Interfaces/Scheme.php b/src/Interfaces/Scheme.php index 9dfdd4a4..a45072c1 100644 --- a/src/Interfaces/Scheme.php +++ b/src/Interfaces/Scheme.php @@ -26,4 +26,10 @@ */ interface Scheme extends Component { + /** + * URI component delimiter. + * + * @var string + */ + const DELIMITER = ':'; } diff --git a/src/Interfaces/UserInfo.php b/src/Interfaces/UserInfo.php index 0db0ce29..9bb27a37 100644 --- a/src/Interfaces/UserInfo.php +++ b/src/Interfaces/UserInfo.php @@ -21,6 +21,20 @@ */ interface UserInfo extends UriPart { + /** + * URI component delimiter. + * + * @var string + */ + const DELIMITER = '@'; + + /** + * URI component separator. + * + * @var string + */ + const SEPARATOR = ':'; + /** * Retrieve the user component of the URI User Info part *