Skip to content

Commit 81f4f19

Browse files
committed
up: obj, url - update some helper method logic
1 parent f759b58 commit 81f4f19

File tree

3 files changed

+27
-27
lines changed

3 files changed

+27
-27
lines changed

src/Obj/AbstractObj.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,6 @@ public function __construct(array $config = [])
3636
*/
3737
public function toArray(): array
3838
{
39-
return Obj::toArray($this);
39+
return Obj::toArray($this, false, false);
4040
}
4141
}

src/Obj/ObjectHelper.php

+11-11
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,11 @@ class ObjectHelper
5959
* - 会先尝试用 setter 方法设置属性
6060
* - 再尝试直接设置属性
6161
*
62-
* @template T object
63-
* @param T $object An object instance
62+
* @param object $object An object instance
6463
* @param array $config
6564
* @param bool $toCamel
6665
*
67-
* @return T
66+
* @return object
6867
*/
6968
public static function init(object $object, array $config, bool $toCamel = false): object
7069
{
@@ -159,25 +158,26 @@ public static function decode(string $txt, bool|array $allowedClasses): mixed
159158
/**
160159
* PHP对象转换成为数组
161160
*
162-
* @param object $data
161+
* @param object $obj
163162
* @param bool $recursive
163+
* @param bool $checkMth in the data obj
164164
*
165165
* @return array
166166
*/
167-
public static function toArray(object $data, bool $recursive = false): array
167+
public static function toArray(object $obj, bool $recursive = false, bool $checkMth = true): array
168168
{
169-
if ($data instanceof Traversable) {
170-
$arr = iterator_to_array($data);
171-
} elseif (method_exists($data, 'toArray')) {
172-
$arr = $data->toArray();
169+
if ($obj instanceof Traversable) {
170+
$arr = iterator_to_array($obj);
171+
} elseif ($checkMth && method_exists($obj, self::TO_ARRAY_METHOD)) {
172+
$arr = $obj->toArray();
173173
} else {
174-
$arr = get_object_vars($data);
174+
$arr = get_object_vars($obj);
175175
}
176176

177177
if ($recursive) {
178178
foreach ($arr as $key => $value) {
179179
if (is_object($value)) {
180-
$arr[$key] = static::toArray($value, $recursive);
180+
$arr[$key] = static::toArray($value, $recursive, $checkMth);
181181
}
182182
}
183183
}

src/Str/UrlHelper.php

+15-15
Original file line numberDiff line numberDiff line change
@@ -10,29 +10,29 @@
1010
namespace Toolkit\Stdlib\Str;
1111

1212
use InvalidArgumentException;
13-
use function implode;
14-
use function preg_match;
15-
use function http_build_query;
16-
use function curl_init;
17-
use function curl_setopt;
1813
use function curl_exec;
1914
use function curl_getinfo;
15+
use function curl_init;
16+
use function curl_setopt;
17+
use function file_get_contents;
2018
use function function_exists;
2119
use function get_headers;
22-
use function stream_context_create;
23-
use function file_get_contents;
20+
use function http_build_query;
21+
use function implode;
22+
use function mb_convert_encoding;
2423
use function parse_url;
24+
use function preg_match;
25+
use function rawurlencode;
26+
use function str_replace;
27+
use function stream_context_create;
2528
use function strpos;
2629
use function trim;
2730
use function urldecode;
28-
use function rawurlencode;
29-
use function mb_convert_encoding;
30-
use function str_replace;
3131
use function urlencode;
32-
use const CURLOPT_NOBODY;
32+
use const CURLINFO_HTTP_CODE;
3333
use const CURLOPT_CONNECTTIMEOUT;
34+
use const CURLOPT_NOBODY;
3435
use const CURLOPT_TIMEOUT;
35-
use const CURLINFO_HTTP_CODE;
3636

3737
/**
3838
* Class UrlHelper
@@ -272,8 +272,8 @@ public static function encode(string $url): string
272272
}
273273

274274
// 若已被编码的url,将被解码,再继续重新编码
275-
$decodeUrl = urldecode($url);
276-
$encodeUrl = urlencode($decodeUrl);
275+
// $decodeUrl = urldecode($url);
276+
$encodeUrl = urlencode($url);
277277

278278
return str_replace(self::$entities, self::$replacements, $encodeUrl);
279279
}
@@ -297,7 +297,7 @@ public static function encode2(string $url): string
297297
}
298298

299299
// 若已被编码的url,将被解码,再继续重新编码
300-
$url = urldecode($url);
300+
// $url = urldecode($url);
301301

302302
$encodeUrl = rawurlencode(mb_convert_encoding($url, 'utf-8'));
303303
// $url = rawurlencode($url);

0 commit comments

Comments
 (0)