Skip to content

Commit e0a5097

Browse files
authored
Merge pull request nextcloud#2071 from nextcloud/dependabot/composer/laravel/serializable-closure-2.0.4
build(deps): Bump laravel/serializable-closure from 1.3.5 to 2.0.4
2 parents 45c25d7 + 82fa55b commit e0a5097

File tree

11 files changed

+153
-124
lines changed

11 files changed

+153
-124
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"icewind/searchdav": "^3.2.0",
3232
"icewind/streams": "^0.7.7",
3333
"kornrunner/blurhash": "^1.2",
34-
"laravel/serializable-closure": "^1.3.5",
34+
"laravel/serializable-closure": "^2.0.4",
3535
"mexitek/phpcolors": "^1.0",
3636
"microsoft/azure-storage-blob": "^1.5.4",
3737
"mlocati/ip-lib": "^1.18",

composer.lock

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

composer/installed.json

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1745,34 +1745,34 @@
17451745
},
17461746
{
17471747
"name": "laravel/serializable-closure",
1748-
"version": "v1.3.5",
1749-
"version_normalized": "1.3.5.0",
1748+
"version": "v2.0.4",
1749+
"version_normalized": "2.0.4.0",
17501750
"source": {
17511751
"type": "git",
17521752
"url": "https://github.com/laravel/serializable-closure.git",
1753-
"reference": "1dc4a3dbfa2b7628a3114e43e32120cce7cdda9c"
1753+
"reference": "b352cf0534aa1ae6b4d825d1e762e35d43f8a841"
17541754
},
17551755
"dist": {
17561756
"type": "zip",
1757-
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/1dc4a3dbfa2b7628a3114e43e32120cce7cdda9c",
1758-
"reference": "1dc4a3dbfa2b7628a3114e43e32120cce7cdda9c",
1757+
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/b352cf0534aa1ae6b4d825d1e762e35d43f8a841",
1758+
"reference": "b352cf0534aa1ae6b4d825d1e762e35d43f8a841",
17591759
"shasum": ""
17601760
},
17611761
"require": {
1762-
"php": "^7.3|^8.0"
1762+
"php": "^8.1"
17631763
},
17641764
"require-dev": {
1765-
"illuminate/support": "^8.0|^9.0|^10.0|^11.0",
1766-
"nesbot/carbon": "^2.61|^3.0",
1767-
"pestphp/pest": "^1.21.3",
1768-
"phpstan/phpstan": "^1.8.2",
1769-
"symfony/var-dumper": "^5.4.11|^6.2.0|^7.0.0"
1765+
"illuminate/support": "^10.0|^11.0|^12.0",
1766+
"nesbot/carbon": "^2.67|^3.0",
1767+
"pestphp/pest": "^2.36|^3.0",
1768+
"phpstan/phpstan": "^2.0",
1769+
"symfony/var-dumper": "^6.2.0|^7.0.0"
17701770
},
1771-
"time": "2024-09-23T13:33:08+00:00",
1771+
"time": "2025-03-19T13:51:03+00:00",
17721772
"type": "library",
17731773
"extra": {
17741774
"branch-alias": {
1775-
"dev-master": "1.x-dev"
1775+
"dev-master": "2.x-dev"
17761776
}
17771777
},
17781778
"installation-source": "dist",

composer/installed.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -218,9 +218,9 @@
218218
'dev_requirement' => false,
219219
),
220220
'laravel/serializable-closure' => array(
221-
'pretty_version' => 'v1.3.5',
222-
'version' => '1.3.5.0',
223-
'reference' => '1dc4a3dbfa2b7628a3114e43e32120cce7cdda9c',
221+
'pretty_version' => 'v2.0.4',
222+
'version' => '2.0.4.0',
223+
'reference' => 'b352cf0534aa1ae6b4d825d1e762e35d43f8a841',
224224
'type' => 'library',
225225
'install_path' => __DIR__ . '/../laravel/serializable-closure',
226226
'aliases' => array(),

laravel/serializable-closure/src/SerializableClosure.php

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
use Closure;
66
use Laravel\SerializableClosure\Exceptions\InvalidSignatureException;
7-
use Laravel\SerializableClosure\Exceptions\PhpVersionNotSupportedException;
87
use Laravel\SerializableClosure\Serializers\Signed;
98
use Laravel\SerializableClosure\Signers\Hmac;
109

@@ -25,10 +24,6 @@ class SerializableClosure
2524
*/
2625
public function __construct(Closure $closure)
2726
{
28-
if (\PHP_VERSION_ID < 70400) {
29-
throw new PhpVersionNotSupportedException();
30-
}
31-
3227
$this->serializable = Serializers\Signed::$signer
3328
? new Serializers\Signed($closure)
3429
: new Serializers\Native($closure);
@@ -41,10 +36,6 @@ public function __construct(Closure $closure)
4136
*/
4237
public function __invoke()
4338
{
44-
if (\PHP_VERSION_ID < 70400) {
45-
throw new PhpVersionNotSupportedException();
46-
}
47-
4839
return call_user_func_array($this->serializable, func_get_args());
4940
}
5041

@@ -55,10 +46,6 @@ public function __invoke()
5546
*/
5647
public function getClosure()
5748
{
58-
if (\PHP_VERSION_ID < 70400) {
59-
throw new PhpVersionNotSupportedException();
60-
}
61-
6249
return $this->serializable->getClosure();
6350
}
6451

@@ -111,7 +98,7 @@ public static function resolveUseVariablesUsing($resolver)
11198
/**
11299
* Get the serializable representation of the closure.
113100
*
114-
* @return array
101+
* @return array{serializable: \Laravel\SerializableClosure\Serializers\Signed|\Laravel\SerializableClosure\Contracts\Serializable}
115102
*/
116103
public function __serialize()
117104
{
@@ -123,7 +110,7 @@ public function __serialize()
123110
/**
124111
* Restore the closure after serialization.
125112
*
126-
* @param array $data
113+
* @param array{serializable: \Laravel\SerializableClosure\Serializers\Signed|\Laravel\SerializableClosure\Contracts\Serializable} $data
127114
* @return void
128115
*
129116
* @throws \Laravel\SerializableClosure\Exceptions\InvalidSignatureException

laravel/serializable-closure/src/Serializers/Native.php

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
use Laravel\SerializableClosure\Support\SelfReference;
1313
use Laravel\SerializableClosure\UnsignedSerializableClosure;
1414
use ReflectionObject;
15+
use ReflectionProperty;
1516
use UnitEnum;
1617

1718
class Native implements Serializable
@@ -274,7 +275,7 @@ public static function wrapClosures(&$data, $storage)
274275

275276
$property->setAccessible(true);
276277

277-
if (PHP_VERSION >= 7.4 && ! $property->isInitialized($instance)) {
278+
if (! $property->isInitialized($instance)) {
278279
continue;
279280
}
280281

@@ -374,11 +375,7 @@ protected function mapPointers(&$data)
374375

375376
$property->setAccessible(true);
376377

377-
if (PHP_VERSION >= 7.4 && ! $property->isInitialized($data)) {
378-
continue;
379-
}
380-
381-
if (PHP_VERSION >= 8.1 && $property->isReadOnly()) {
378+
if (! $property->isInitialized($data) || $property->isReadOnly()) {
382379
continue;
383380
}
384381

@@ -494,13 +491,13 @@ protected function mapByReference(&$data)
494491
}
495492

496493
foreach ($reflection->getProperties() as $property) {
497-
if ($property->isStatic() || ! $property->getDeclaringClass()->isUserDefined()) {
494+
if ($property->isStatic() || ! $property->getDeclaringClass()->isUserDefined() || $this->isVirtualProperty($property)) {
498495
continue;
499496
}
500497

501498
$property->setAccessible(true);
502499

503-
if (PHP_VERSION >= 7.4 && ! $property->isInitialized($instance)) {
500+
if (! $property->isInitialized($instance) || ($property->isReadOnly() && $property->class !== $reflection->name)) {
504501
continue;
505502
}
506503

@@ -515,4 +512,15 @@ protected function mapByReference(&$data)
515512
} while ($reflection = $reflection->getParentClass());
516513
}
517514
}
515+
516+
/**
517+
* Determine is virtual property.
518+
*
519+
* @param \ReflectionProperty $property
520+
* @return bool
521+
*/
522+
protected function isVirtualProperty(ReflectionProperty $property): bool
523+
{
524+
return method_exists($property, 'isVirtual') && $property->isVirtual();
525+
}
518526
}

laravel/serializable-closure/src/Serializers/Signed.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ public function __serialize()
7272
/**
7373
* Restore the closure after serialization.
7474
*
75-
* @param array $signature
75+
* @param array{serializable: string, hash: string} $signature
7676
* @return void
7777
*
7878
* @throws \Laravel\SerializableClosure\Exceptions\InvalidSignatureException

laravel/serializable-closure/src/Signers/Hmac.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public function sign($serialized)
4141
/**
4242
* Verify the given signature.
4343
*
44-
* @param array $signature
44+
* @param array{serializable: string, hash: string} $signature
4545
* @return bool
4646
*/
4747
public function verify($signature)

laravel/serializable-closure/src/Support/ClosureStream.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ class ClosureStream
77
{
88
/**
99
* The stream protocol.
10+
*
11+
* @var string
1012
*/
1113
const STREAM_PROTO = 'laravel-serializable-closure';
1214

0 commit comments

Comments
 (0)