From 08846ac34ce0ace4125faf68d5ce63863134c2a3 Mon Sep 17 00:00:00 2001 From: JayPHP Date: Mon, 5 Jun 2017 17:34:03 +0100 Subject: [PATCH 1/2] ::getUserLink() --- src/Entities/MainSiteUser.php | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/Entities/MainSiteUser.php b/src/Entities/MainSiteUser.php index 003084a..93a9722 100644 --- a/src/Entities/MainSiteUser.php +++ b/src/Entities/MainSiteUser.php @@ -23,19 +23,12 @@ class MainSiteUser public static function createFromDOMDocument(\DOMDocument $doc): MainSiteUser // very todo: remove horrible static ctor { $xpath = new \DOMXPath($doc); + $twitterHandle = ($link = ltrim(self::getUserLink($xpath, 'iconTwitter'), '@')) === '' ? null : $link; - $twitterLink = $xpath->query("//li[svg[" . xpath_html_class('iconTwitter') . "]]/a"); - $twitterHandle = $twitterLink->length > 0 - ? ltrim(trim($twitterLink->item(0)->textContent), '@') - : null; - - // cannot separate this because of static, bloody mancs. - $githubLink = $xpath->query("//li[svg[" . xpath_html_class('iconGitHub') . "]]/a"); - $githubUsername = $githubLink->length > 0 - ? trim($githubLink->item(0)->textContent) - : null; - - return new MainSiteUser($twitterHandle, $githubUsername); + return new MainSiteUser( + $twitterHandle, + self::getUserLink($xpath, 'iconGitHub') + ); } public function __construct(string $twitterHandle = null, string $githubUsername = null) @@ -56,4 +49,13 @@ public function getGithubUsername() { return $this->githubUsername; } + + private static function getUserLink($xpath, string $class) + { + $link = $xpath->query("//li[svg[" . xpath_html_class($class) . "]]/a"); + + return $link->length > 0 + ? trim($link->item(0)->textContent) + : null; + } } From 3a7ad005516910627da73c9fc3b75129427492b4 Mon Sep 17 00:00:00 2001 From: JayPHP Date: Tue, 6 Jun 2017 16:20:54 +0100 Subject: [PATCH 2/2] Added return hint --- src/Entities/MainSiteUser.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Entities/MainSiteUser.php b/src/Entities/MainSiteUser.php index 93a9722..8411661 100644 --- a/src/Entities/MainSiteUser.php +++ b/src/Entities/MainSiteUser.php @@ -50,7 +50,7 @@ public function getGithubUsername() return $this->githubUsername; } - private static function getUserLink($xpath, string $class) + private static function getUserLink($xpath, string $class): ?string { $link = $xpath->query("//li[svg[" . xpath_html_class($class) . "]]/a");