Skip to content

Commit 591f21a

Browse files
committed
Remove WHATWG non-raw getters
1 parent 14d9fe1 commit 591f21a

File tree

9 files changed

+69
-101
lines changed

9 files changed

+69
-101
lines changed

ext/uri/php_lexbor.c

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -67,24 +67,13 @@ const uri_handler_t lexbor_uri_handler = {
6767
return SUCCESS; \
6868
} while (0)
6969

70-
#define LEXBOR_READ_PERCENT_ENCODED_URI_COMPONENT(start, len, read_mode, retval) do { \
70+
#define LEXBOR_READ_ASCII_URI_COMPONENT(start, len, read_mode, retval) do { \
7171
switch (read_mode) { \
72-
case URI_COMPONENT_READ_RAW: \
73-
ZVAL_STRINGL(retval, (const char *) start, len); \
74-
break; \
72+
case URI_COMPONENT_READ_RAW: /* Intentional fallthrough */ \
7573
case URI_COMPONENT_READ_NORMALIZED_UNICODE: /* Intentional fallthrough */ \
7674
case URI_COMPONENT_READ_NORMALIZED_ASCII: { \
77-
lexbor_str_t *str = lexbor_str_create(); \
78-
lxb_url_host_opt_t opt; \
79-
lxb_status_t result = lxb_url_percent_decode(start, start + len, \
80-
str, lexbor_uri->mraw, &opt \
81-
); \
82-
if (result != LXB_STATUS_OK) { \
83-
return FAILURE; \
84-
} \
85-
ZVAL_STRINGL(retval, (const char *) str->data, str->length); \
86-
lexbor_str_destroy(str, lexbor_uri->mraw, true); \
87-
break; \
75+
ZVAL_STRINGL(retval, (const char *) start, len); \
76+
break; \
8877
} \
8978
EMPTY_SWITCH_DEFAULT_CASE() \
9079
} \
@@ -291,7 +280,7 @@ static zend_result lexbor_read_username(const uri_internal_t *internal_uri, uri_
291280
lxb_url_t *lexbor_uri = (lxb_url_t *) internal_uri->uri;
292281

293282
if (lexbor_uri->username.length) {
294-
LEXBOR_READ_PERCENT_ENCODED_URI_COMPONENT(lexbor_uri->username.data, lexbor_uri->username.length, read_mode, retval);
283+
LEXBOR_READ_ASCII_URI_COMPONENT(lexbor_uri->username.data, lexbor_uri->username.length, read_mode, retval);
295284
} else {
296285
ZVAL_NULL(retval);
297286
}
@@ -316,7 +305,7 @@ static zend_result lexbor_read_password(const uri_internal_t *internal_uri, uri_
316305
lxb_url_t *lexbor_uri = (lxb_url_t *) internal_uri->uri;
317306

318307
if (lexbor_uri->password.length > 0) {
319-
LEXBOR_READ_PERCENT_ENCODED_URI_COMPONENT(lexbor_uri->password.data, lexbor_uri->password.length, read_mode, retval);
308+
LEXBOR_READ_ASCII_URI_COMPONENT(lexbor_uri->password.data, lexbor_uri->password.length, read_mode, retval);
320309
} else {
321310
ZVAL_NULL(retval);
322311
}
@@ -427,9 +416,9 @@ static zend_result lexbor_read_path(const uri_internal_t *internal_uri, uri_comp
427416
lxb_url_t *lexbor_uri = (lxb_url_t *) internal_uri->uri;
428417

429418
if (lexbor_uri->path.opaque) {
430-
LEXBOR_READ_PERCENT_ENCODED_URI_COMPONENT(lexbor_uri->path.str.data, lexbor_uri->path.str.length, read_mode, retval);
419+
LEXBOR_READ_ASCII_URI_COMPONENT(lexbor_uri->path.str.data, lexbor_uri->path.str.length, read_mode, retval);
431420
} else if (lexbor_uri->path.str.length) {
432-
LEXBOR_READ_PERCENT_ENCODED_URI_COMPONENT(lexbor_uri->path.str.data, lexbor_uri->path.str.length, read_mode, retval);
421+
LEXBOR_READ_ASCII_URI_COMPONENT(lexbor_uri->path.str.data, lexbor_uri->path.str.length, read_mode, retval);
433422
} else {
434423
ZVAL_EMPTY_STRING(retval);
435424
}
@@ -454,7 +443,7 @@ static zend_result lexbor_read_query(const uri_internal_t *internal_uri, uri_com
454443
lxb_url_t *lexbor_uri = (lxb_url_t *) internal_uri->uri;
455444

456445
if (lexbor_uri->query.length) {
457-
LEXBOR_READ_PERCENT_ENCODED_URI_COMPONENT(lexbor_uri->query.data, lexbor_uri->query.length, read_mode, retval);
446+
LEXBOR_READ_ASCII_URI_COMPONENT(lexbor_uri->query.data, lexbor_uri->query.length, read_mode, retval);
458447
} else {
459448
ZVAL_NULL(retval);
460449
}
@@ -479,7 +468,7 @@ static zend_result lexbor_read_fragment(const uri_internal_t *internal_uri, uri_
479468
lxb_url_t *lexbor_uri = (lxb_url_t *) internal_uri->uri;
480469

481470
if (lexbor_uri->fragment.length) {
482-
LEXBOR_READ_PERCENT_ENCODED_URI_COMPONENT(lexbor_uri->fragment.data, lexbor_uri->fragment.length, read_mode, retval);
471+
LEXBOR_READ_ASCII_URI_COMPONENT(lexbor_uri->fragment.data, lexbor_uri->fragment.length, read_mode, retval);
483472
} else {
484473
ZVAL_NULL(retval);
485474
}

ext/uri/php_uri.stub.php

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -149,17 +149,11 @@ public function getScheme(): string {}
149149

150150
public function withScheme(string $scheme): static {}
151151

152-
/** @implementation-alias Uri\Rfc3986\Uri::getUsername */
153-
public function getUsername(): ?string {}
154-
155152
/** @implementation-alias Uri\Rfc3986\Uri::getRawUsername */
156153
public function getRawUsername(): ?string {}
157154

158155
public function withUsername(?string $user): static {}
159156

160-
/** @implementation-alias Uri\Rfc3986\Uri::getPassword */
161-
public function getPassword(): ?string {}
162-
163157
/** @implementation-alias Uri\Rfc3986\Uri::getRawPassword */
164158
public function getRawPassword(): ?string {}
165159

@@ -177,27 +171,18 @@ public function getPort(): ?int {}
177171
/** @implementation-alias Uri\Rfc3986\Uri::withPort */
178172
public function withPort(?int $port): static {}
179173

180-
/** @implementation-alias Uri\Rfc3986\Uri::getPath */
181-
public function getPath(): string {}
182-
183174
/** @implementation-alias Uri\Rfc3986\Uri::getRawPath */
184175
public function getRawPath(): string {}
185176

186177
/** @implementation-alias Uri\Rfc3986\Uri::withPath */
187178
public function withPath(string $path): static {}
188179

189-
/** @implementation-alias Uri\Rfc3986\Uri::getQuery */
190-
public function getQuery(): ?string {}
191-
192180
/** @implementation-alias Uri\Rfc3986\Uri::getRawQuery */
193181
public function getRawQuery(): ?string {}
194182

195183
/** @implementation-alias Uri\Rfc3986\Uri::withQuery */
196184
public function withQuery(?string $query): static {}
197185

198-
/** @implementation-alias Uri\Rfc3986\Uri::getFragment */
199-
public function getFragment(): ?string {}
200-
201186
/** @implementation-alias Uri\Rfc3986\Uri::getRawFragment */
202187
public function getRawFragment(): ?string {}
203188

ext/uri/php_uri_arginfo.h

Lines changed: 1 addition & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ext/uri/tests/008.phpt

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,18 @@ uri
55
--FILE--
66
<?php
77

8-
function callGetters($uri)
8+
function callRfc3986Getters($uri)
99
{
1010
var_dump($uri->getScheme());
11-
if ($uri instanceof Uri\Rfc3986\Uri) {
12-
var_dump($uri->getRawScheme());
13-
}
11+
var_dump($uri->getRawScheme());
1412
var_dump($uri->getUsername());
1513
var_dump($uri->getRawUsername());
1614
var_dump($uri->getPassword());
1715
var_dump($uri->getRawPassword());
18-
if ($uri instanceof Uri\Rfc3986\Uri) {
19-
var_dump($uri->getHost());
20-
var_dump($uri->getRawHost());
21-
} else {
22-
var_dump($uri->getAsciiHost());
23-
var_dump($uri->getUnicodeHost());
24-
}
16+
var_dump($uri->getUserInfo());
17+
var_dump($uri->getRawUserInfo());
18+
var_dump($uri->getHost());
19+
var_dump($uri->getRawHost());
2520
var_dump($uri->getPort());
2621
var_dump($uri->getPath());
2722
var_dump($uri->getRawPath());
@@ -31,13 +26,26 @@ function callGetters($uri)
3126
var_dump($uri->getRawFragment());
3227
}
3328

29+
function callWhatWgGetters($uri)
30+
{
31+
var_dump($uri->getScheme());
32+
var_dump($uri->getRawUsername());
33+
var_dump($uri->getRawPassword());
34+
var_dump($uri->getAsciiHost());
35+
var_dump($uri->getUnicodeHost());
36+
var_dump($uri->getPort());
37+
var_dump($uri->getRawPath());
38+
var_dump($uri->getRawQuery());
39+
var_dump($uri->getRawFragment());
40+
}
41+
3442
$uri = Uri\Rfc3986\Uri::parse("https://username:[email protected]:8080/pathname1/pathname2/pathname3?query=true#hash-exists");
35-
callGetters($uri);
43+
callRfc3986Getters($uri);
3644

3745
echo "\n";
3846

3947
$url = Uri\WhatWg\Url::parse("https://username:[email protected]:8080/pathname1/pathname2/pathname3?query=true#hash-exists");
40-
callGetters($url);
48+
callWhatWgGetters($url);
4149

4250
?>
4351
--EXPECT--
@@ -47,6 +55,8 @@ string(8) "username"
4755
string(8) "username"
4856
string(8) "password"
4957
string(8) "password"
58+
string(17) "username:password"
59+
string(17) "username:password"
5060
string(14) "www.google.com"
5161
string(14) "www.google.com"
5262
int(8080)
@@ -59,15 +69,10 @@ string(11) "hash-exists"
5969

6070
string(5) "https"
6171
string(8) "username"
62-
string(8) "username"
63-
string(8) "password"
6472
string(8) "password"
6573
string(14) "www.google.com"
6674
string(14) "www.google.com"
6775
int(8080)
6876
string(30) "/pathname1/pathname2/pathname3"
69-
string(30) "/pathname1/pathname2/pathname3"
70-
string(10) "query=true"
7177
string(10) "query=true"
7278
string(11) "hash-exists"
73-
string(11) "hash-exists"

ext/uri/tests/024.phpt

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
--TEST--
2-
Test property mutation - user
2+
Test property mutation - username
33
--EXTENSIONS--
44
uri
55
--FILE--
@@ -17,17 +17,13 @@ $url6 = $url6->withUsername("user");
1717
var_dump($url2->getRawUsername());
1818
var_dump($url3->getRawUsername());
1919
var_dump($url4->getRawUsername());
20-
var_dump($url4->getUsername());
2120
var_dump($url5->getRawUsername());
22-
var_dump($url5->getUsername());
2321
var_dump($url6->getRawUsername());
2422

2523
?>
2624
--EXPECT--
2725
string(4) "user"
2826
NULL
2927
string(8) "%75s%2Fr"
30-
string(4) "us/r"
3128
string(9) "u%3As%2Fr"
32-
string(5) "u:s/r"
3329
NULL

ext/uri/tests/039.phpt

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,19 @@ uri
55
--FILE--
66
<?php
77

8-
function printUri($uri) {
8+
function callRfc3986Getters($uri)
9+
{
10+
var_dump($uri->getScheme());
11+
var_dump($uri->getRawScheme());
912
var_dump($uri->getUsername());
1013
var_dump($uri->getRawUsername());
1114
var_dump($uri->getPassword());
1215
var_dump($uri->getRawPassword());
13-
if ($uri instanceof Uri\Rfc3986\Uri) {
14-
var_dump($uri->getHost());
15-
var_dump($uri->getRawHost());
16-
} else {
17-
var_dump($uri->getAsciiHost());
18-
var_dump($uri->getUnicodeHost());
19-
}
16+
var_dump($uri->getUserInfo());
17+
var_dump($uri->getRawUserInfo());
18+
var_dump($uri->getHost());
19+
var_dump($uri->getRawHost());
20+
var_dump($uri->getPort());
2021
var_dump($uri->getPath());
2122
var_dump($uri->getRawPath());
2223
var_dump($uri->getQuery());
@@ -25,35 +26,50 @@ function printUri($uri) {
2526
var_dump($uri->getRawFragment());
2627
}
2728

29+
function callWhatWgGetters($uri)
30+
{
31+
var_dump($uri->getScheme());
32+
var_dump($uri->getRawUsername());
33+
var_dump($uri->getRawPassword());
34+
var_dump($uri->getAsciiHost());
35+
var_dump($uri->getUnicodeHost());
36+
var_dump($uri->getPort());
37+
var_dump($uri->getRawPath());
38+
var_dump($uri->getRawQuery());
39+
var_dump($uri->getRawFragment());
40+
}
41+
2842
$uri = Uri\Rfc3986\Uri::parse("http://%61pple:p%61ss@ex%61mple.com/foob%61r?%61bc=%61bc#%61bc");
29-
printUri($uri);
43+
callRfc3986Getters($uri);
3044

3145
$url = Uri\WhatWg\Url::parse("http://%61pple:p%61ss@ex%61mple.com/foob%61r?%61bc=%61bc#%61bc");
32-
printUri($url);
46+
callWhatWgGetters($url);
3347

3448
?>
3549
--EXPECT--
50+
string(4) "http"
51+
string(4) "http"
3652
string(5) "apple"
3753
string(7) "%61pple"
3854
string(4) "pass"
3955
string(6) "p%61ss"
56+
string(10) "apple:pass"
57+
string(14) "%61pple:p%61ss"
4058
string(11) "example.com"
4159
string(13) "ex%61mple.com"
60+
NULL
4261
string(7) "/foobar"
4362
string(9) "/foob%61r"
4463
string(7) "abc=abc"
4564
string(11) "%61bc=%61bc"
4665
string(3) "abc"
4766
string(5) "%61bc"
48-
string(5) "apple"
67+
string(4) "http"
4968
string(7) "%61pple"
50-
string(4) "pass"
5169
string(6) "p%61ss"
5270
string(11) "example.com"
5371
string(11) "example.com"
54-
string(7) "/foobar"
72+
NULL
5573
string(9) "/foob%61r"
56-
string(7) "abc=abc"
5774
string(11) "%61bc=%61bc"
58-
string(3) "abc"
5975
string(5) "%61bc"

0 commit comments

Comments
 (0)