Skip to content

Commit 40bb728

Browse files
committed
chore: add PHP 8.5 support and modernize nullable type hints
- Updated GitHub Actions workflow to include PHP 8.3, 8.4, and 8.5 in the test matrix. - Migrated CI to use `shivammathur/setup-php` on Ubuntu 24.04 for better environment management. - Relaxed PHPUnit version constraints in `composer.json` to support versions 9.0 through 11.0. - Refactored various classes to use explicit nullable type hints (`?Type`) for parameters with null default values. - Ensured strict PHP 8.x compatibility by resolving potential deprecation warnings related to implicit nullability.
1 parent ea4cf52 commit 40bb728

File tree

10 files changed

+29
-23
lines changed

10 files changed

+29
-23
lines changed

.github/workflows/tests.yml

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,25 @@ on: [push, pull_request]
33
jobs:
44

55
php-intl:
6-
runs-on: ubuntu-18.04
6+
runs-on: ubuntu-24.04
77
strategy:
88
fail-fast: false
99
matrix:
10-
php-version: ['7.2', '7.3', '7.4', '8.0', '8.1', '8.2']
10+
php-version: ['7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4', '8.5']
1111

1212
steps:
1313
- uses: actions/checkout@v2
1414
with:
1515
fetch-depth: 1
1616

17-
- run: php${{ matrix.php-version }} -v
18-
- run: php${{ matrix.php-version }} -m
17+
- name: Setup PHP
18+
uses: shivammathur/setup-php@v2
19+
with:
20+
php-version: ${{ matrix.php-version }}
21+
extensions: curl, mbstring, json, intl
22+
23+
- run: php -v
24+
- run: php -m
1925
- run: composer -V
2026
- run: composer install
21-
- run: php${{ matrix.php-version }} vendor/bin/phpunit --bootstrap tests/bootstrap.php tests
27+
- run: vendor/bin/phpunit --bootstrap tests/bootstrap.php tests

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
"symfony/polyfill-intl-idn": "^1.27"
3333
},
3434
"require-dev" : {
35-
"phpunit/phpunit": "^8.0"
35+
"phpunit/phpunit": "^8.0 || ^9.0 || ^10.0 || ^11.0"
3636
},
3737
"autoload": {
3838
"psr-4": {

src/Iodev/Whois/Exceptions/ConnectionException.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
class ConnectionException extends Exception
1111
{
12-
public function __construct($message = "", $code = 0, Throwable $previous = null)
12+
public function __construct($message = "", $code = 0, ?Throwable $previous = null)
1313
{
1414
parent::__construct($message, $code, $previous);
1515
}

src/Iodev/Whois/Exceptions/ServerMismatchException.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
class ServerMismatchException extends \Exception
1010
{
11-
public function __construct($message = "", $code = 0, Throwable $previous = null)
11+
public function __construct($message = "", $code = 0, ?Throwable $previous = null)
1212
{
1313
parent::__construct($message, $code, $previous);
1414
}

src/Iodev/Whois/Exceptions/WhoisException.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
class WhoisException extends \Exception
1010
{
11-
public function __construct($message = "", $code = 0, Throwable $previous = null)
11+
public function __construct($message = "", $code = 0, ?Throwable $previous = null)
1212
{
1313
parent::__construct($message, $code, $previous);
1414
}

src/Iodev/Whois/Factory.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public function createPunycode(): IPunycode
4242
* @param ILoader|null $loader
4343
* @return Whois
4444
*/
45-
public function createWhois(ILoader $loader = null): Whois
45+
public function createWhois(?ILoader $loader = null): Whois
4646
{
4747
$whois = new Whois($loader ?: $this->createLoader());
4848
$whois->setFactory($this);
@@ -84,7 +84,7 @@ public function createTldModule(Whois $ehois): TldModule
8484
* @param TldParser|null $defaultParser
8585
* @return TldServer[]
8686
*/
87-
public function createTldSevers($configs = null, TldParser $defaultParser = null): array
87+
public function createTldSevers($configs = null, ?TldParser $defaultParser = null): array
8888
{
8989
$configs = is_array($configs) ? $configs : Config::load("module.tld.servers");
9090
$defaultParser = $defaultParser ?: $this->createTldParser();
@@ -100,7 +100,7 @@ public function createTldSevers($configs = null, TldParser $defaultParser = null
100100
* @param TldParser|null $defaultParser
101101
* @return TldServer
102102
*/
103-
public function createTldSever(array $config, TldParser $defaultParser = null): TldServer
103+
public function createTldSever(array $config, ?TldParser $defaultParser = null): TldServer
104104
{
105105
return new TldServer(
106106
$config['zone'] ?? '',
@@ -116,7 +116,7 @@ public function createTldSever(array $config, TldParser $defaultParser = null):
116116
* @param TldParser|null $defaultParser
117117
* @return TldParser
118118
*/
119-
public function createTldSeverParser(array $config, TldParser $defaultParser = null): TldParser
119+
public function createTldSeverParser(array $config, ?TldParser $defaultParser = null): TldParser
120120
{
121121
$options = $config['parserOptions'] ?? [];
122122
if (isset($config['parserClass'])) {
@@ -204,7 +204,7 @@ public function getTldParserConfigByType($type)
204204
* @param AsnParser $defaultParser
205205
* @return AsnServer[]
206206
*/
207-
public function createAsnSevers($configs = null, AsnParser $defaultParser = null): array
207+
public function createAsnSevers($configs = null, ?AsnParser $defaultParser = null): array
208208
{
209209
$configs = is_array($configs) ? $configs : Config::load("module.asn.servers");
210210
$defaultParser = $defaultParser ?: $this->createAsnParser();
@@ -220,7 +220,7 @@ public function createAsnSevers($configs = null, AsnParser $defaultParser = null
220220
* @param AsnParser $defaultParser
221221
* @return AsnServer
222222
*/
223-
public function createAsnSever($config, AsnParser $defaultParser = null)
223+
public function createAsnSever($config, ?AsnParser $defaultParser = null)
224224
{
225225
return new AsnServer(
226226
$config['host'] ?? '',
@@ -234,7 +234,7 @@ public function createAsnSever($config, AsnParser $defaultParser = null)
234234
* @param AsnParser|null $defaultParser
235235
* @return AsnParser
236236
*/
237-
public function createAsnSeverParser(array $config, AsnParser $defaultParser = null): AsnParser
237+
public function createAsnSeverParser(array $config, ?AsnParser $defaultParser = null): AsnParser
238238
{
239239
if (isset($config['parserClass'])) {
240240
return $this->createAsnParserByClass($config['parserClass']);

src/Iodev/Whois/Modules/Asn/AsnModule.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public function setServers($servers)
5757
* @throws ConnectionException
5858
* @throws WhoisException
5959
*/
60-
public function lookupAsn($asn, AsnServer $server = null)
60+
public function lookupAsn($asn, ?AsnServer $server = null)
6161
{
6262
if ($server) {
6363
return $this->loadResponse($asn, $server);
@@ -73,7 +73,7 @@ public function lookupAsn($asn, AsnServer $server = null)
7373
* @throws ConnectionException
7474
* @throws WhoisException
7575
*/
76-
public function loadAsnInfo($asn, AsnServer $server = null)
76+
public function loadAsnInfo($asn, ?AsnServer $server = null)
7777
{
7878
if ($server) {
7979
$resp = $this->loadResponse($asn, $server);

src/Iodev/Whois/Modules/Tld/TldModule.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ public function isDomainAvailable($domain)
116116
* @throws ConnectionException
117117
* @throws WhoisException
118118
*/
119-
public function lookupDomain($domain, TldServer $server = null)
119+
public function lookupDomain($domain, ?TldServer $server = null)
120120
{
121121
$servers = $server ? [$server] : $this->matchServers($domain);
122122
list ($response) = $this->loadDomainData($domain, $servers);
@@ -131,7 +131,7 @@ public function lookupDomain($domain, TldServer $server = null)
131131
* @throws ConnectionException
132132
* @throws WhoisException
133133
*/
134-
public function loadDomainInfo($domain, TldServer $server = null)
134+
public function loadDomainInfo($domain, ?TldServer $server = null)
135135
{
136136
$servers = $server ? [$server] : $this->matchServers($domain);
137137
list (, $info) = $this->loadDomainData($domain, $servers);

src/Iodev/Whois/Modules/Tld/TldServer.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class TldServer
2020
* @param TldParser $defaultParser
2121
* @return TldServer
2222
*/
23-
public static function fromData($data, TldParser $defaultParser = null)
23+
public static function fromData($data, ?TldParser $defaultParser = null)
2424
{
2525
return Factory::get()->createTldSever($data, $defaultParser);
2626
}
@@ -30,7 +30,7 @@ public static function fromData($data, TldParser $defaultParser = null)
3030
* @param TldParser $defaultParser
3131
* @return TldServer[]
3232
*/
33-
public static function fromDataList($dataList, TldParser $defaultParser = null)
33+
public static function fromDataList($dataList, ?TldParser $defaultParser = null)
3434
{
3535
return Factory::get()->createTldSevers($dataList, $defaultParser);
3636
}

src/Iodev/Whois/WhoisDeprecated.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ trait WhoisDeprecated
1313
* @param ILoader $loader
1414
* @return Whois
1515
*/
16-
public static function create(ILoader $loader = null)
16+
public static function create(?ILoader $loader = null)
1717
{
1818
return Factory::get()->createWhois($loader);
1919
}

0 commit comments

Comments
 (0)