Skip to content

Commit 8afba51

Browse files
committed
Improve package
- Simplify PublicSuffix section validation - Simplify Rules section validation - Improve Domain internal code
1 parent 99d71f7 commit 8afba51

File tree

4 files changed

+14
-16
lines changed

4 files changed

+14
-16
lines changed

src/Domain.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ private function setPublicSuffix(PublicSuffix $publicSuffix): PublicSuffix
123123
*
124124
* @return PublicSuffix
125125
*/
126-
private function normalize($subject)
126+
private function normalize(PublicSuffix $subject): PublicSuffix
127127
{
128128
if (null === $this->domain || null === $subject->getContent()) {
129129
return $subject;
@@ -323,8 +323,7 @@ public function getPublicSuffix()
323323
*/
324324
public function isResolvable(): bool
325325
{
326-
return 2 <= count($this->labels)
327-
&& '.' !== substr($this->domain, -1, 1);
326+
return 1 < count($this->labels) && '.' !== substr($this->domain, -1, 1);
328327
}
329328

330329
/**

src/PublicSuffix.php

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,15 +66,14 @@ public static function __set_state(array $properties): self
6666
*/
6767
public static function createFromDomain(Domain $domain): self
6868
{
69-
if (!$domain->isKnown()) {
70-
return new self($domain->getPublicSuffix());
71-
}
72-
69+
$section = '';
7370
if ($domain->isICANN()) {
74-
return new self($domain->getPublicSuffix(), self::ICANN_DOMAINS);
71+
$section = self::ICANN_DOMAINS;
72+
} elseif ($domain->isPrivate()) {
73+
$section = self::PRIVATE_DOMAINS;
7574
}
7675

77-
return new self($domain->getPublicSuffix(), self::PRIVATE_DOMAINS);
76+
return new self($domain->getPublicSuffix(), $section);
7877
}
7978

8079
/**

src/Rules.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -152,12 +152,12 @@ public function resolve($domain, string $section = self::ALL_DOMAINS): Domain
152152
*/
153153
private function validateSection(string $section): string
154154
{
155-
if (self::ALL_DOMAINS === $section || '' === $section) {
156-
return '';
155+
if (self::ALL_DOMAINS === $section) {
156+
$section = '';
157157
}
158158

159-
$rules = $this->rules[$section] ?? null;
160-
if (is_array($rules)) {
159+
static $section_list = [self::PRIVATE_DOMAINS, self::ICANN_DOMAINS, ''];
160+
if (in_array($section, $section_list, true)) {
161161
return $section;
162162
}
163163

@@ -202,7 +202,7 @@ private function findPublicSuffix(DomainInterface $domain, string $section): Pub
202202
*/
203203
private function findPublicSuffixFromSection(DomainInterface $domain, string $section): PublicSuffix
204204
{
205-
$rules = $this->rules[$section];
205+
$rules = $this->rules[$section] ?? [];
206206
$matches = [];
207207
foreach ($domain as $label) {
208208
//match exception rule

tests/PublicSuffixTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ public function testToUnicodeThrowsException()
151151
* @covers ::idnToAscii
152152
* @covers ::idnToUnicode
153153
*
154-
* @dataProvider testConversionReturnsTheSameInstanceProvider
154+
* @dataProvider conversionReturnsTheSameInstanceProvider
155155
*
156156
* @param string|null $publicSuffix
157157
*/
@@ -162,7 +162,7 @@ public function testConversionReturnsTheSameInstance($publicSuffix)
162162
$this->assertSame($instance->toAscii(), $instance);
163163
}
164164

165-
public function testConversionReturnsTheSameInstanceProvider()
165+
public function conversionReturnsTheSameInstanceProvider()
166166
{
167167
return [
168168
'ascii only domain' => ['ac.be'],

0 commit comments

Comments
 (0)