Skip to content

Commit 31463b4

Browse files
committed
Rename alias method for better UX
1 parent 4199b3c commit 31463b4

File tree

5 files changed

+58
-22
lines changed

5 files changed

+58
-22
lines changed

CHANGELOG.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ All Notable changes to `PHP Domain Parser` **5.x** series will be documented in
66

77
### Added
88

9-
- `Rules::icannResolve`
10-
- `Rules::cookieResolve`
11-
- `Rules::privateResolve`
12-
9+
- `Rules::resolveCookieDomain`
10+
- `Rules::resolveICANNDomain`
11+
- `Rules::resolvePrivateDomain`
12+
- `CouldNotResolvePublicSuffix::dueToUnresolvableDomain`
1313

1414
### Fixed
1515

src/Domain.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ private function setPublicSuffix(PublicSuffix $publicSuffix): PublicSuffix
156156
}
157157

158158
if (null === $this->domain || !$this->isResolvable()) {
159-
throw new CouldNotResolvePublicSuffix(sprintf('The domain `%s` can not contain a public suffix', $this->domain));
159+
throw CouldNotResolvePublicSuffix::dueToUnresolvableDomain($this);
160160
}
161161

162162
$publicSuffix = $this->normalize($publicSuffix);

src/Exception/CouldNotResolvePublicSuffix.php

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,37 @@
1515

1616
namespace Pdp\Exception;
1717

18+
use Pdp\Domain;
1819
use Pdp\Exception as BaseException;
20+
use function sprintf;
1921

2022
class CouldNotResolvePublicSuffix extends BaseException
2123
{
24+
/**
25+
* @var Domain|null
26+
*/
27+
private $domain;
28+
29+
public static function dueToUnresolvableDomain(?Domain $domain): self
30+
{
31+
$content = $domain;
32+
if (null !== $domain) {
33+
$content = $domain->getContent();
34+
}
35+
36+
$exception = new self(sprintf('The domain `%s` can not contain a public suffix.', $content));
37+
$exception->domain = $domain;
38+
39+
return $exception;
40+
}
41+
42+
public function hasDomain(): bool
43+
{
44+
return null !== $this->domain;
45+
}
46+
47+
public function getDomain(): ?Domain
48+
{
49+
return $this->domain;
50+
}
2251
}

src/Rules.php

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -213,13 +213,20 @@ public function resolve($domain, string $section = self::ALL_DOMAINS): Domain
213213
$section = $this->validateSection($section);
214214
try {
215215
if ('' === $section) {
216-
return $this->cookieResolve($domain);
216+
return $this->resolveCookieDomain($domain);
217217
} elseif (self::ICANN_DOMAINS === $section) {
218-
return $this->icannResolve($domain);
218+
return $this->resolveICANNDomain($domain);
219219
}
220220

221-
return $this->privateResolve($domain);
221+
return $this->resolvePrivateDomain($domain);
222222
} catch (CouldNotResolvePublicSuffix $exception) {
223+
if ($exception->hasDomain()) {
224+
/** @var Domain */
225+
$domain = $exception->getDomain();
226+
227+
return $domain;
228+
}
229+
223230
return new Domain($domain, null, $this->asciiIDNAOption, $this->unicodeIDNAOption);
224231
} catch (Exception $exception) {
225232
return new Domain(null, null, $this->asciiIDNAOption, $this->unicodeIDNAOption);
@@ -231,7 +238,7 @@ public function resolve($domain, string $section = self::ALL_DOMAINS): Domain
231238
*
232239
* @param mixed $domain the domain value
233240
*/
234-
public function cookieResolve($domain): Domain
241+
public function resolveCookieDomain($domain): Domain
235242
{
236243
$domain = $this->validateDomain($domain);
237244

@@ -243,7 +250,7 @@ public function cookieResolve($domain): Domain
243250
*
244251
* @param mixed $domain
245252
*/
246-
public function icannResolve($domain): Domain
253+
public function resolveICANNDomain($domain): Domain
247254
{
248255
$domain = $this->validateDomain($domain);
249256

@@ -255,7 +262,7 @@ public function icannResolve($domain): Domain
255262
*
256263
* @param mixed $domain
257264
*/
258-
public function privateResolve($domain): Domain
265+
public function resolvePrivateDomain($domain): Domain
259266
{
260267
$domain = $this->validateDomain($domain);
261268

@@ -277,7 +284,7 @@ private function validateDomain($domain): Domain
277284
}
278285

279286
if (!$domain->isResolvable()) {
280-
throw new CouldNotResolvePublicSuffix(sprintf('The domain `%s` can not contain a public suffix.', $domain->getContent()));
287+
throw CouldNotResolvePublicSuffix::dueToUnresolvableDomain($domain);
281288
}
282289

283290
return $domain;

tests/RulesTest.php

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -114,9 +114,9 @@ public function testwithIDNAOptions(): void
114114

115115
/**
116116
* @covers ::resolve
117-
* @covers ::cookieResolve
118-
* @covers ::icannResolve
119-
* @covers ::privateResolve
117+
* @covers ::resolveCookieDomain
118+
* @covers ::resolveICANNDomain
119+
* @covers ::resolvePrivateDomain
120120
* @covers ::validateDomain
121121
* @covers ::validateSection
122122
* @covers \Pdp\Domain::isResolvable
@@ -195,7 +195,7 @@ public function testIsSuffixValidTrue(): void
195195

196196
/**
197197
* @covers ::resolve
198-
* @covers ::cookieResolve
198+
* @covers ::resolveCookieDomain
199199
* @covers ::validateDomain
200200
* @covers ::validateSection
201201
* @covers \Pdp\Domain::isResolvable
@@ -221,7 +221,7 @@ public function testIsSuffixValidFalseWithPunycoded(): void
221221

222222
/**
223223
* @covers ::resolve
224-
* @covers ::icannResolve
224+
* @covers ::resolveICANNDomain
225225
* @covers ::validateDomain
226226
* @covers ::validateSection
227227
* @covers \Pdp\Domain::isResolvable
@@ -247,7 +247,7 @@ public function testSubDomainIsNull(): void
247247

248248
/**
249249
* @covers ::resolve
250-
* @covers ::cookieResolve
250+
* @covers ::resolveCookieDomain
251251
* @covers ::validateDomain
252252
* @covers ::validateSection
253253
* @covers \Pdp\IDNAConverterTrait::parse
@@ -291,7 +291,7 @@ public function testWithAbsoluteHostInvalid(): void
291291

292292
/**
293293
* @covers ::resolve
294-
* @covers ::privateResolve
294+
* @covers ::resolvePrivateDomain
295295
* @covers ::validateDomain
296296
* @covers ::validateSection
297297
* @covers ::findPublicSuffix
@@ -311,7 +311,7 @@ public function testWithPrivateDomainInvalid(): void
311311

312312
/**
313313
* @covers ::resolve
314-
* @covers ::privateResolve
314+
* @covers ::resolvePrivateDomain
315315
* @covers ::validateDomain
316316
* @covers ::validateSection
317317
* @covers ::findPublicSuffix
@@ -381,7 +381,7 @@ public function testWithDomainInterfaceObject(): void
381381

382382
/**
383383
* @covers ::resolve
384-
* @covers ::icannResolve
384+
* @covers ::resolveICANNDomain
385385
* @covers ::validateDomain
386386
* @covers \Pdp\Domain::setRegistrableDomain
387387
* @covers \Pdp\Domain::getRegistrableDomain
@@ -399,7 +399,7 @@ public function testGetRegistrableDomain($publicSuffix, $registrableDomain, $dom
399399

400400
/**
401401
* @covers ::resolve
402-
* @covers ::icannResolve
402+
* @covers ::resolveICANNDomain
403403
* @covers ::validateDomain
404404
* @covers \Pdp\IDNAConverterTrait::parse
405405
* @covers \Pdp\Domain::setPublicSuffix

0 commit comments

Comments
 (0)