@@ -413,7 +413,6 @@ $createArray = $user2->toArray();
413
413
// 'name' => '李四',
414
414
// 'username' => 'username',
415
415
// 'email' => 'zhangsan@example.com',
416
- // 'noGroupInfo' => '默认分组信息'
417
416
// ]
418
417
419
418
// 使用 update 分组更新用户 只会接受group为update的数据信息
@@ -434,7 +433,6 @@ $updateArray = $user3->toArray();
434
433
// 'id' => '1',
435
434
// 'name' => '李四',
436
435
// 'score' => 100,
437
- // 'noGroupInfo' => '默认分组信息'
438
436
// ]
439
437
440
438
// 使用 detail 和 other 展示用户 会接受group为detail和other的数据信息
@@ -458,7 +456,6 @@ $multiGroupArray = $user4->toArray();
458
456
// 'score' => 100,
459
457
// 'email' => 'zhangsan@example.com',
460
458
// 'sensitiveData' => '机密信息',
461
- // 'noGroupInfo' => '默认分组信息'
462
459
// ]
463
460
```
464
461
@@ -645,7 +642,7 @@ $complexUserArray = $complexUser->toArray();
645
642
// ]
646
643
```
647
644
648
- ##### 命名映射高级用法
645
+ ##### Mapper映射
649
646
650
647
``` php
651
648
use Astral\Serialize\Attributes\InputName;
@@ -729,6 +726,11 @@ $userArray = $user->toArray();
729
726
// 'userId' => 123,
730
727
// 'registeredAt' => '2023-01-01'
731
728
// ]
729
+ ```
730
+
731
+ ###### 局部属性可以覆盖全局映射
732
+
733
+ ``` php
732
734
733
735
// 局部属性可以覆盖全局映射
734
736
#[InputName(SnakeCaseMapper::class)]
@@ -752,7 +754,9 @@ $partialUser->toArray();
752
754
// ]
753
755
```
754
756
755
- ##### 全局类映射的分组使用
757
+ ###### 全局类映射的分组使用
758
+
759
+ 需要搭配` Groups ` 注解一起使用
756
760
757
761
``` php
758
762
use Astral\Serialize\Attributes\Groups;
@@ -855,6 +859,7 @@ use Astral\Serialize\Attributes\InputIgnore;
855
859
use Astral\Serialize\Attributes\OutputIgnore;
856
860
use Astral\Serialize\Serialize;
857
861
862
+
858
863
class User extends Serialize {
859
864
860
865
public string $name;
@@ -888,54 +893,89 @@ $userArray = $user->toArray();
888
893
889
894
##### 分组忽略
890
895
896
+ 忽略分组需要搭配Groups注解一起使用
897
+
891
898
``` php
892
- use Astral\Serialize\Attributes\InputIgnore;
893
- use Astral\Serialize\Attributes\OutputIgnore;
899
+ use Astral\Serialize\Attributes\Input\ InputIgnore;
900
+ use Astral\Serialize\Attributes\Output\ OutputIgnore;
894
901
use Astral\Serialize\Serialize;
902
+ use Astral\Serialize\Attributes\Groups;
895
903
896
904
class ComplexUser extends Serialize {
897
905
898
-
899
- #[Group('admin','public')]
906
+ #[Groups('admin','public')]
900
907
#[InputIgnore('admin')]
901
908
public string $name;
902
909
903
- #[Group ('admin','public')]
910
+ #[Groups ('admin','public')]
904
911
#[OutputIgnore('public')]
905
912
public string $secretKey;
906
913
907
- // 支持分组忽略
914
+ #[Groups('admin','public')]
908
915
#[InputIgnore('admin')]
909
916
#[OutputIgnore('public')]
910
- #[Group('admin','public')]
911
917
public string $sensitiveInfo;
918
+
919
+ #[InputIgnore]
920
+ public string $globalInputIgnore;
921
+
922
+ #[OutputIgnore]
923
+ public string $globalOutputIgnore;
912
924
}
913
925
926
+ // 默认分组
927
+ $complexUser = ComplexUser::from([
928
+ 'name' => '张三',
929
+ 'secretKey' => 'confidential',
930
+ 'sensitiveInfo' => '机密信息',
931
+ 'globalInputIgnore' => '全局输入忽略',
932
+ 'globalOutputIgnore' => '全局输出忽略'
933
+ ]);
934
+
935
+ echo $complexUser->globalInputIgnore; // 输出 ‘’
936
+ echo $complexUser->globalOutputIgnore; // 输出 ‘全局输出忽略’
937
+
938
+ $complexUser = $complexUser->toArray();
939
+ // $complexUser 的内容:
940
+ // [
941
+ // 'name' => '张三',
942
+ // 'secretKey' => 'confidential',
943
+ // 'sensitiveInfo' => '机密信息',
944
+ // 'globalInputIgnore' => '',
945
+ // ]
946
+
947
+
914
948
// 使用admin分组
915
949
$complexUser = ComplexUser::setGroups('admin')->from([
916
950
'name' => '张三',
917
951
'secretKey' => 'confidential',
918
952
'sensitiveInfo' => '机密信息'
953
+ 'globalInputIgnore' => '全局输入忽略',
954
+ 'globalOutputIgnore' => '全局输出忽略'
919
955
]);
920
956
921
957
$complexUser = $complexUser->toArray();
922
958
// $complexUser 的内容:
923
959
// [
924
960
// 'name' => '',
925
961
// 'secretKey' => 'confidential',
962
+ // 'globalInputIgnore' => '',
926
963
// ]
927
964
928
965
// 使用public分组
929
966
$complexUser = ComplexUser::setGroups('public')->from([
930
967
'name' => '张三',
931
968
'secretKey' => 'confidential',
932
969
'sensitiveInfo' => '机密信息'
970
+ 'globalInputIgnore' => '全局输入忽略',
971
+ 'globalOutputIgnore' => '全局输出忽略'
933
972
]);
934
973
935
974
$complexUser = $complexUser->toArray();
936
975
// $complexUser 的内容:
937
976
// [
938
977
// 'name' => '张三',
978
+ /// 'globalInputIgnore' => '',
939
979
// ]
940
980
```
941
981
@@ -954,8 +994,8 @@ $complexUser = $complexUser->toArray();
954
994
##### 基础使用
955
995
956
996
``` php
957
- use Astral\Serialize\Attributes\InputDateFormat;
958
- use Astral\Serialize\Attributes\OutputDateFormat;
997
+ use Astral\Serialize\Attributes\Input\ InputDateFormat;
998
+ use Astral\Serialize\Attributes\Output\ OutputDateFormat;
959
999
use Astral\Serialize\Serialize;
960
1000
961
1001
class TimeExample extends Serialize {
@@ -980,7 +1020,7 @@ class TimeExample extends Serialize {
980
1020
}
981
1021
982
1022
// 创建订单对象
983
- $order = Order ::from([
1023
+ $order = TimeExample ::from([
984
1024
'dateTime' => new DateTime('2023-08-11'), // 输入格式:Y-m-d
985
1025
'dateDateString' => '2023-08-15', // 输入格式:Y-m-d
986
1026
'processedAt' => '2023-08-16 14:30', // 输入默认格式 也支持DateTime对象
@@ -1001,6 +1041,11 @@ $orderArray = $order->toArray();
1001
1041
##### 带时区的时间转换
1002
1042
1003
1043
``` php
1044
+
1045
+ use Astral\Serialize\Attributes\Input\InputDateFormat;
1046
+ use Astral\Serialize\Attributes\Output\OutputDateFormat;
1047
+ use Astral\Serialize\Serialize;
1048
+
1004
1049
class AdvancedTimeUser extends Serialize {
1005
1050
// 支持时区转换
1006
1051
#[InputDateFormat('Y-m-d H:i:s', timezone: 'UTC')]
0 commit comments