Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc98cfb6

Browse files
feature#59035 [VarDumper] Add casters for object-converted resources (alexandre-daubois)
This PR was squashed before being merged into the 7.3 branch.Discussion----------[VarDumper] Add casters for object-converted resources| Q | A| ------------- | ---| Branch? | 7.3| Bug fix? | no| New feature? | yes| Deprecations? | yes| Issues | -| License | MITThis PR makes up for the backlog of resources transformed into objects in the latest versions of PHP.✅ Support added (or already existing with an update in `AbstractCloner`):- ext-curl - `CurlMultiHandle`: **no information to gather**- ext-openssl - `OpenSSLCertificateSigningRequest` - `OpenSSLAsymmetricKey`- ext-finfo - **No information to gather**- ext-sqlite3- `Sqlite3Result`- ext-sockets- `Sockets` (to rebase on#59026)- ext-pgsql- `PgSql\Lob`- `PgSql\Connection`- `PgSql\Result`⚠️ Remaining classes I couldn't test/find enough info yet (introduced in PHP 8.4):- `Odbc\Connection`- `Odbc\Result`- `Soap\Url`- `Soap\Sdl`Commits-------7be6483 [VarDumper] Add casters for object-converted resources
2 parents8f04a56 +7be6483 commitc98cfb6

38 files changed

+696
-41
lines changed

‎UPGRADE-7.3.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,9 @@ Serializer
1919
----------
2020

2121
* Deprecate the`CompiledClassMetadataFactory` and`CompiledClassMetadataCacheWarmer` classes
22+
23+
VarDumper
24+
---------
25+
26+
* Deprecate`ResourceCaster::castCurl()`,`ResourceCaster::castGd()` and`ResourceCaster::castOpensslX509()`
27+
* Mark all casters as`@internal`

‎src/Symfony/Component/VarDumper/CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
CHANGELOG
22
=========
33

4+
7.3
5+
---
6+
7+
* Add casters for`Dba\Connection`,`SQLite3Result`,`OpenSSLAsymmetricKey` and`OpenSSLCertificateSigningRequest`
8+
* Deprecate`ResourceCaster::castCurl()`,`ResourceCaster::castGd()` and`ResourceCaster::castOpensslX509()`
9+
* Mark all casters as`@internal`
10+
411
7.2
512
---
613

‎src/Symfony/Component/VarDumper/Caster/AddressInfoCaster.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515

1616
/**
1717
* @author Nicolas Grekas <p@tchwork.com>
18+
*
19+
* @internal since Symfony 7.3
1820
*/
1921
finalclass AddressInfoCaster
2022
{

‎src/Symfony/Component/VarDumper/Caster/AmqpCaster.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
* @author Grégoire Pineau <lyrixx@lyrixx.info>
2020
*
2121
* @final
22+
*
23+
* @internal since Symfony 7.3
2224
*/
2325
class AmqpCaster
2426
{

‎src/Symfony/Component/VarDumper/Caster/Caster.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ class Caster
4646
* Casts objects to arrays and adds the dynamic property prefix.
4747
*
4848
* @param bool $hasDebugInfo Whether the __debugInfo method exists on $obj or not
49+
*
50+
* @internal since Symfony 7.3
4951
*/
5052
publicstaticfunctioncastObject(object$obj,string$class,bool$hasDebugInfo =false, ?string$debugClass =null):array
5153
{
@@ -162,6 +164,9 @@ public static function filter(array $a, int $filter, array $listedProperties = [
162164
return$a;
163165
}
164166

167+
/**
168+
* @internal since Symfony 7.3
169+
*/
165170
publicstaticfunctioncastPhpIncompleteClass(\__PHP_Incomplete_Class$c,array$a,Stub$stub,bool$isNested):array
166171
{
167172
if (isset($a['__PHP_Incomplete_Class_Name'])) {
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Symfony package.
5+
*
6+
* (c) Fabien Potencier <fabien@symfony.com>
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
namespaceSymfony\Component\VarDumper\Caster;
13+
14+
useSymfony\Component\VarDumper\Cloner\Stub;
15+
16+
/**
17+
* @author Nicolas Grekas <p@tchwork.com>
18+
*
19+
* @internal
20+
*/
21+
finalclass CurlCaster
22+
{
23+
publicstaticfunctioncastCurl(\CurlHandle$h,array$a,Stub$stub,bool$isNested):array
24+
{
25+
foreach (curl_getinfo($h)as$key =>$val) {
26+
$a[Caster::PREFIX_VIRTUAL.$key] =$val;
27+
}
28+
29+
return$a;
30+
}
31+
}

‎src/Symfony/Component/VarDumper/Caster/DOMCaster.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
* @author Nicolas Grekas <p@tchwork.com>
2020
*
2121
* @final
22+
*
23+
* @internal since Symfony 7.3
2224
*/
2325
class DOMCaster
2426
{

‎src/Symfony/Component/VarDumper/Caster/DateCaster.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
* @author Dany Maillard <danymaillard93b@gmail.com>
2020
*
2121
* @final
22+
*
23+
* @internal since Symfony 7.3
2224
*/
2325
class DateCaster
2426
{

‎src/Symfony/Component/VarDumper/Caster/DoctrineCaster.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
* @author Nicolas Grekas <p@tchwork.com>
2323
*
2424
* @final
25+
*
26+
* @internal since Symfony 7.3
2527
*/
2628
class DoctrineCaster
2729
{

‎src/Symfony/Component/VarDumper/Caster/ExceptionCaster.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
* @author Nicolas Grekas <p@tchwork.com>
2323
*
2424
* @final
25+
*
26+
* @internal since Symfony 7.3
2527
*/
2628
class ExceptionCaster
2729
{
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Symfony package.
5+
*
6+
* (c) Fabien Potencier <fabien@symfony.com>
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
namespaceSymfony\Component\VarDumper\Caster;
13+
14+
useSymfony\Component\VarDumper\Cloner\Stub;
15+
16+
/**
17+
* @author Nicolas Grekas <p@tchwork.com>
18+
*
19+
* @internal
20+
*/
21+
finalclass GdCaster
22+
{
23+
publicstaticfunctioncastGd(\GdImage$gd,array$a,Stub$stub,bool$isNested):array
24+
{
25+
$a[Caster::PREFIX_VIRTUAL.'size'] =imagesx($gd).'x'.imagesy($gd);
26+
$a[Caster::PREFIX_VIRTUAL.'trueColor'] =imageistruecolor($gd);
27+
28+
return$a;
29+
}
30+
}

‎src/Symfony/Component/VarDumper/Caster/GmpCaster.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
* @author Nicolas Grekas <p@tchwork.com>
2121
*
2222
* @final
23+
*
24+
* @internal since Symfony 7.3
2325
*/
2426
class GmpCaster
2527
{

‎src/Symfony/Component/VarDumper/Caster/ImagineCaster.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
/**
1818
* @author Grégoire Pineau <lyrixx@lyrixx.info>
19+
*
20+
* @internal since Symfony 7.3
1921
*/
2022
finalclass ImagineCaster
2123
{

‎src/Symfony/Component/VarDumper/Caster/IntlCaster.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
* @author Jan Schädlich <jan.schaedlich@sensiolabs.de>
1919
*
2020
* @final
21+
*
22+
* @internal since Symfony 7.3
2123
*/
2224
class IntlCaster
2325
{

‎src/Symfony/Component/VarDumper/Caster/MemcachedCaster.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
* @author Jan Schädlich <jan.schaedlich@sensiolabs.de>
1818
*
1919
* @final
20+
*
21+
* @internal since Symfony 7.3
2022
*/
2123
class MemcachedCaster
2224
{
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Symfony package.
5+
*
6+
* (c) Fabien Potencier <fabien@symfony.com>
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
namespaceSymfony\Component\VarDumper\Caster;
13+
14+
useSymfony\Component\VarDumper\Cloner\Stub;
15+
16+
/**
17+
* @author Nicolas Grekas <p@tchwork.com>
18+
* @author Alexandre Daubois <alex.daubois@gmail.com>
19+
*
20+
* @internal
21+
*/
22+
finalclass OpenSSLCaster
23+
{
24+
publicstaticfunctioncastOpensslX509(\OpenSSLCertificate$h,array$a,Stub$stub,bool$isNested):array
25+
{
26+
$stub->cut = -1;
27+
$info =openssl_x509_parse($h,false);
28+
29+
$pin =openssl_pkey_get_public($h);
30+
$pin =openssl_pkey_get_details($pin)['key'];
31+
$pin =\array_slice(explode("\n",$pin),1, -2);
32+
$pin =base64_decode(implode('',$pin));
33+
$pin =base64_encode(hash('sha256',$pin,true));
34+
35+
$a += [
36+
Caster::PREFIX_VIRTUAL.'subject' =>newEnumStub(array_intersect_key($info['subject'], ['organizationName' =>true,'commonName' =>true])),
37+
Caster::PREFIX_VIRTUAL.'issuer' =>newEnumStub(array_intersect_key($info['issuer'], ['organizationName' =>true,'commonName' =>true])),
38+
Caster::PREFIX_VIRTUAL.'expiry' =>newConstStub(date(\DateTimeInterface::ISO8601,$info['validTo_time_t']),$info['validTo_time_t']),
39+
Caster::PREFIX_VIRTUAL.'fingerprint' =>newEnumStub([
40+
'md5' =>newConstStub(wordwrap(strtoupper(openssl_x509_fingerprint($h,'md5')),2,':',true)),
41+
'sha1' =>newConstStub(wordwrap(strtoupper(openssl_x509_fingerprint($h,'sha1')),2,':',true)),
42+
'sha256' =>newConstStub(wordwrap(strtoupper(openssl_x509_fingerprint($h,'sha256')),2,':',true)),
43+
'pin-sha256' =>newConstStub($pin),
44+
]),
45+
];
46+
47+
return$a;
48+
}
49+
50+
publicstaticfunctioncastOpensslAsymmetricKey(\OpenSSLAsymmetricKey$key,array$a,Stub$stub,bool$isNested):array
51+
{
52+
foreach (openssl_pkey_get_details($key)as$k =>$v) {
53+
$a[Caster::PREFIX_VIRTUAL.$k] =$v;
54+
}
55+
56+
unset($a[Caster::PREFIX_VIRTUAL.'rsa']);// binary data
57+
58+
return$a;
59+
}
60+
61+
publicstaticfunctioncastOpensslCsr(\OpenSSLCertificateSigningRequest$csr,array$a,Stub$stub,bool$isNested):array
62+
{
63+
foreach (openssl_csr_get_subject($csr,false)as$k =>$v) {
64+
$a[Caster::PREFIX_VIRTUAL.$k] =$v;
65+
}
66+
67+
return$a;
68+
}
69+
}

‎src/Symfony/Component/VarDumper/Caster/PdoCaster.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
* @author Nicolas Grekas <p@tchwork.com>
2020
*
2121
* @final
22+
*
23+
* @internal since Symfony 7.3
2224
*/
2325
class PdoCaster
2426
{

‎src/Symfony/Component/VarDumper/Caster/PgSqlCaster.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
* @author Nicolas Grekas <p@tchwork.com>
2020
*
2121
* @final
22+
*
23+
* @internal since Symfony 7.3
2224
*/
2325
class PgSqlCaster
2426
{

‎src/Symfony/Component/VarDumper/Caster/ProxyManagerCaster.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
* @author Nicolas Grekas <p@tchwork.com>
1919
*
2020
* @final
21+
*
22+
* @internal since Symfony 7.3
2123
*/
2224
class ProxyManagerCaster
2325
{

‎src/Symfony/Component/VarDumper/Caster/RdKafkaCaster.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828
* Casts RdKafka related classes to array representation.
2929
*
3030
* @author Romain Neutron <imprec@gmail.com>
31+
*
32+
* @internal since Symfony 7.3
3133
*/
3234
class RdKafkaCaster
3335
{

‎src/Symfony/Component/VarDumper/Caster/RedisCaster.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
* @author Nicolas Grekas <p@tchwork.com>
2121
*
2222
* @final
23+
*
24+
* @internal since Symfony 7.3
2325
*/
2426
class RedisCaster
2527
{

‎src/Symfony/Component/VarDumper/Caster/ReflectionCaster.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
* @author Nicolas Grekas <p@tchwork.com>
2020
*
2121
* @final
22+
*
23+
* @internal since Symfony 7.3
2224
*/
2325
class ReflectionCaster
2426
{

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp