Skip to content

Commit 55ea994

Browse files
committed
silently deprecated methods trigger E_USER_DEPRECATED
1 parent 641b754 commit 55ea994

17 files changed

Lines changed: 48 additions & 50 deletions

src/Http/FileUpload.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ public function __construct(array|string|null $value)
6767
*/
6868
public function getName(): string
6969
{
70+
trigger_error(__METHOD__ . '() is deprecated, use getUntrustedName()', E_USER_DEPRECATED);
7071
return $this->name;
7172
}
7273

src/Http/Request.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ public function getHeaders(): array
199199
*/
200200
public function getReferer(): ?UrlImmutable
201201
{
202+
trigger_error(__METHOD__ . '() is deprecated', E_USER_DEPRECATED);
202203
return isset($this->headers['referer'])
203204
? new UrlImmutable($this->headers['referer'])
204205
: null;
@@ -234,6 +235,7 @@ public function isSecured(): bool
234235
*/
235236
public function isSameSite(): bool
236237
{
238+
trigger_error(__METHOD__ . '() is deprecated, use isFrom() instead', E_USER_DEPRECATED);
237239
return $this->isFrom([FetchSite::SameSite, FetchSite::SameOrigin]);
238240
}
239241

src/Http/RequestFactory.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -396,9 +396,10 @@ private function parseHostAndPort(string $s): ?array
396396
}
397397

398398

399-
/** @deprecated */
399+
/** @deprecated use fromGlobals() */
400400
public function createHttpRequest(): Request
401401
{
402+
trigger_error(__METHOD__ . '() is deprecated, use fromGlobals()', E_USER_DEPRECATED);
402403
return $this->fromGlobals();
403404
}
404405
}

src/Http/SessionSection.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ public function remove(string|array|null $name = null): void
100100
*/
101101
public function __set(string $name, mixed $value): void
102102
{
103+
trigger_error("Writing to \$session->$name is deprecated, use \$session->set('$name', \$value) instead", E_USER_DEPRECATED);
103104
$this->session->autoStart(forWrite: true);
104105
$this->getData()[$name] = $value;
105106
}
@@ -111,6 +112,7 @@ public function __set(string $name, mixed $value): void
111112
*/
112113
public function &__get(string $name): mixed
113114
{
115+
trigger_error("Reading from \$session->$name is deprecated, use \$session->get('$name') instead", E_USER_DEPRECATED);
114116
$this->session->autoStart(forWrite: true);
115117
$data = &$this->getData();
116118
$data ??= [];
@@ -128,6 +130,7 @@ public function &__get(string $name): mixed
128130
*/
129131
public function __isset(string $name): bool
130132
{
133+
trigger_error("Using \$session->$name is deprecated, use \$session->get('$name') instead", E_USER_DEPRECATED);
131134
$this->session->autoStart(forWrite: false);
132135
return isset($this->getData()[$name]);
133136
}
@@ -139,6 +142,7 @@ public function __isset(string $name): bool
139142
*/
140143
public function __unset(string $name): void
141144
{
145+
trigger_error("Unset(\$session->$name) is deprecated, use \$session->remove('$name') instead", E_USER_DEPRECATED);
142146
$this->remove($name);
143147
}
144148

@@ -149,6 +153,7 @@ public function __unset(string $name): void
149153
*/
150154
public function offsetSet($name, $value): void
151155
{
156+
trigger_error("Writing to \$session['$name'] is deprecated, use \$session->set('$name', \$value) instead", E_USER_DEPRECATED);
152157
assert(is_string($name));
153158
$this->__set($name, $value);
154159
}
@@ -160,6 +165,7 @@ public function offsetSet($name, $value): void
160165
*/
161166
public function offsetGet($name): mixed
162167
{
168+
trigger_error("Reading from \$session['$name'] is deprecated, use \$session->get('$name') instead", E_USER_DEPRECATED);
163169
return $this->get($name);
164170
}
165171

@@ -170,6 +176,7 @@ public function offsetGet($name): mixed
170176
*/
171177
public function offsetExists($name): bool
172178
{
179+
trigger_error("Using \$session['$name'] is deprecated, use \$session->get('$name') instead", E_USER_DEPRECATED);
173180
return $this->__isset($name);
174181
}
175182

@@ -180,6 +187,7 @@ public function offsetExists($name): bool
180187
*/
181188
public function offsetUnset($name): void
182189
{
190+
trigger_error("Unset(\$session['$name']) is deprecated, use \$session->remove('$name') instead", E_USER_DEPRECATED);
183191
$this->remove($name);
184192
}
185193

src/Http/Url.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ public function getScheme(): string
106106
/** @deprecated */
107107
public function setUser(string $user): static
108108
{
109+
trigger_error(__METHOD__ . '() is deprecated', E_USER_DEPRECATED);
109110
$this->user = $user;
110111
return $this;
111112
}
@@ -114,13 +115,15 @@ public function setUser(string $user): static
114115
/** @deprecated */
115116
public function getUser(): string
116117
{
118+
trigger_error(__METHOD__ . '() is deprecated', E_USER_DEPRECATED);
117119
return $this->user;
118120
}
119121

120122

121123
/** @deprecated */
122124
public function setPassword(string $password): static
123125
{
126+
trigger_error(__METHOD__ . '() is deprecated', E_USER_DEPRECATED);
124127
$this->password = $password;
125128
return $this;
126129
}
@@ -129,6 +132,7 @@ public function setPassword(string $password): static
129132
/** @deprecated */
130133
public function getPassword(): string
131134
{
135+
trigger_error(__METHOD__ . '() is deprecated', E_USER_DEPRECATED);
132136
return $this->password;
133137
}
134138

@@ -307,6 +311,7 @@ public function getHostUrl(): string
307311
/** @deprecated use UrlScript::getBasePath() instead */
308312
public function getBasePath(): string
309313
{
314+
trigger_error(__METHOD__ . '() is deprecated, use UrlScript object', E_USER_DEPRECATED);
310315
$pos = strrpos($this->path, '/');
311316
return $pos === false ? '' : substr($this->path, 0, $pos + 1);
312317
}
@@ -315,13 +320,15 @@ public function getBasePath(): string
315320
/** @deprecated use UrlScript::getBaseUrl() instead */
316321
public function getBaseUrl(): string
317322
{
323+
trigger_error(__METHOD__ . '() is deprecated, use UrlScript object', E_USER_DEPRECATED);
318324
return $this->getHostUrl() . $this->getBasePath();
319325
}
320326

321327

322328
/** @deprecated use UrlScript::getRelativeUrl() instead */
323329
public function getRelativeUrl(): string
324330
{
331+
trigger_error(__METHOD__ . '() is deprecated, use UrlScript object', E_USER_DEPRECATED);
325332
return substr($this->getAbsoluteUrl(), strlen($this->getBaseUrl()));
326333
}
327334

src/Http/UrlImmutable.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ public function getScheme(): string
8383
/** @deprecated */
8484
public function withUser(string $user): static
8585
{
86+
trigger_error(__METHOD__ . '() is deprecated', E_USER_DEPRECATED);
8687
$dolly = clone $this;
8788
$dolly->user = $user;
8889
$dolly->authority = null;
@@ -93,13 +94,15 @@ public function withUser(string $user): static
9394
/** @deprecated */
9495
public function getUser(): string
9596
{
97+
trigger_error(__METHOD__ . '() is deprecated', E_USER_DEPRECATED);
9698
return $this->user;
9799
}
98100

99101

100102
/** @deprecated */
101103
public function withPassword(string $password): static
102104
{
105+
trigger_error(__METHOD__ . '() is deprecated', E_USER_DEPRECATED);
103106
$dolly = clone $this;
104107
$dolly->password = $password;
105108
$dolly->authority = null;
@@ -110,13 +113,15 @@ public function withPassword(string $password): static
110113
/** @deprecated */
111114
public function getPassword(): string
112115
{
116+
trigger_error(__METHOD__ . '() is deprecated', E_USER_DEPRECATED);
113117
return $this->password;
114118
}
115119

116120

117121
/** @deprecated */
118122
public function withoutUserInfo(): static
119123
{
124+
trigger_error(__METHOD__ . '() is deprecated', E_USER_DEPRECATED);
120125
$dolly = clone $this;
121126
$dolly->user = $dolly->password = '';
122127
$dolly->authority = null;

tests/Http/FileUpload.basic.phpt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ test('basic upload properties', function () {
2020
'size' => 209,
2121
]);
2222

23-
Assert::same('readme.txt', $upload->getName());
2423
Assert::same('readme.txt', $upload->getUntrustedName());
2524
Assert::same('readme.txt', $upload->getSanitizedName());
2625
Assert::same('path/to/readme.txt', $upload->getUntrustedFullPath());
@@ -45,7 +44,7 @@ test('sanitizing name with image detection', function () {
4544
'size' => 209,
4645
]);
4746

48-
Assert::same('../.image.png', $upload->getName());
47+
Assert::same('../.image.png', $upload->getUntrustedName());
4948
Assert::same('image.png', $upload->getSanitizedName());
5049
Assert::same('../.image.png', $upload->getUntrustedFullPath());
5150
Assert::same('image/png', $upload->getContentType());
@@ -88,7 +87,6 @@ test('empty upload data', function () {
8887
test('upload from file path', function () {
8988
$upload = new FileUpload($file = __DIR__ . '/files/file.txt');
9089

91-
Assert::same('file.txt', $upload->getName());
9290
Assert::same('file.txt', $upload->getUntrustedName());
9391
Assert::same('file.txt', $upload->getSanitizedName());
9492
Assert::same($file, $upload->getUntrustedFullPath());

tests/Http/Request.invalidEncoding.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,5 +116,5 @@ test('invalid encoding sanitization by default', function () {
116116
Assert::null($request->getFile(INVALID));
117117
Assert::null($request->getFile(CONTROL_CHARACTERS));
118118
Assert::type(Nette\Http\FileUpload::class, $request->files['file1']);
119-
Assert::same('', $request->files['file1']->name);
119+
Assert::same('', $request->files['file1']->getUntrustedName());
120120
});

tests/Http/Request.isFrom.phpt

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -123,27 +123,3 @@ test('cookie fallback not used when Sec-Fetch-Site present', function () {
123123
Assert::false($request->isFrom(FetchSite::SameOrigin));
124124
Assert::true($request->isFrom(FetchSite::CrossSite));
125125
});
126-
127-
128-
test('isSameSite() via Sec-Fetch-Site', function () {
129-
foreach (['same-origin', 'same-site'] as $site) {
130-
$request = new Http\Request(new Http\UrlScript, headers: ['Sec-Fetch-Site' => $site]);
131-
Assert::true($request->isSameSite(), $site);
132-
}
133-
134-
foreach (['cross-site', 'none'] as $site) {
135-
$request = new Http\Request(new Http\UrlScript, headers: ['Sec-Fetch-Site' => $site]);
136-
Assert::false($request->isSameSite(), $site);
137-
}
138-
});
139-
140-
141-
test('isSameSite() via cookie fallback', function () {
142-
$request = new Http\Request(new Http\UrlScript, cookies: [
143-
Http\Helpers::StrictCookieName => '1',
144-
]);
145-
Assert::true($request->isSameSite());
146-
147-
$request = new Http\Request(new Http\UrlScript);
148-
Assert::false($request->isSameSite());
149-
});

tests/Http/Request.request.phpt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ test('URL parsing with custom filters', function () {
3333

3434
Assert::same('/file.php', $request->getUrl()->scriptPath);
3535
Assert::same('https', $request->getUrl()->scheme);
36-
Assert::same('', $request->getUrl()->user);
37-
Assert::same('', $request->getUrl()->password);
36+
Assert::same('', @$request->getUrl()->user); // deprecated
37+
Assert::same('', @$request->getUrl()->password); // deprecated
3838
Assert::same('nette.org', $request->getUrl()->host);
3939
Assert::same(8080, $request->getUrl()->port);
4040
Assert::same('/file.php', $request->getUrl()->path);
@@ -59,8 +59,8 @@ test('URL components with special characters', function () {
5959
$request = $factory->fromGlobals();
6060

6161
Assert::same('https', $request->getUrl()->scheme);
62-
Assert::same('', $request->getUrl()->user);
63-
Assert::same('', $request->getUrl()->password);
62+
Assert::same('', @$request->getUrl()->user); // deprecated
63+
Assert::same('', @$request->getUrl()->password); // deprecated
6464
Assert::same('nette.org', $request->getUrl()->host);
6565
Assert::same(8080, $request->getUrl()->port);
6666
Assert::same('/file.php', $request->getUrl()->path);

0 commit comments

Comments
 (0)