Commit 2de7ed3
committed
Users: Lazy load user capabilities in WP_User object.
Convert the WP_User object properties caps, roles, and allcaps to protected, and introduce lazy loading for capabilities. These properties are now populated only when first accessed.
The existing magic methods (__get, __set, and __unset) have been updated to maintain backward compatibility, ensuring that reading or modifying these formerly public properties continues to work as expected.
Ensure that these properties are initialised when calling remove_all_caps(), remove_cap(), has_cap(), add_role(), and set_role() methods.
Props spacedmonkey, flixos90, peterwilsoncc, mukesh27, westonruter, swissspidy, prettyboymp.
Fixes #58001.
git-svn-id: https://develop.svn.wordpress.org/trunk@60915 602fd350-edb4-49c9-b593-d223f7449a821 parent e11e9f2 commit 2de7ed3
File tree
4 files changed
+140
-15
lines changed- src/wp-includes
- tests/phpunit/tests/user
4 files changed
+140
-15
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
40 | 43 | | |
41 | 44 | | |
42 | 45 | | |
| |||
60 | 63 | | |
61 | 64 | | |
62 | 65 | | |
63 | | - | |
64 | | - | |
| 66 | + | |
| 67 | + | |
65 | 68 | | |
66 | | - | |
| 69 | + | |
67 | 70 | | |
68 | 71 | | |
69 | 72 | | |
| |||
79 | 82 | | |
80 | 83 | | |
81 | 84 | | |
82 | | - | |
| 85 | + | |
83 | 86 | | |
84 | 87 | | |
85 | 88 | | |
86 | 89 | | |
87 | 90 | | |
88 | | - | |
89 | | - | |
| 91 | + | |
| 92 | + | |
90 | 93 | | |
91 | | - | |
| 94 | + | |
92 | 95 | | |
93 | 96 | | |
94 | 97 | | |
| |||
288 | 291 | | |
289 | 292 | | |
290 | 293 | | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
291 | 298 | | |
292 | 299 | | |
293 | 300 | | |
| |||
321 | 328 | | |
322 | 329 | | |
323 | 330 | | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
324 | 336 | | |
325 | 337 | | |
326 | 338 | | |
| |||
363 | 375 | | |
364 | 376 | | |
365 | 377 | | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
366 | 385 | | |
367 | 386 | | |
368 | 387 | | |
| |||
386 | 405 | | |
387 | 406 | | |
388 | 407 | | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
389 | 412 | | |
390 | 413 | | |
391 | 414 | | |
| |||
515 | 538 | | |
516 | 539 | | |
517 | 540 | | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
518 | 546 | | |
519 | 547 | | |
520 | 548 | | |
| |||
548 | 576 | | |
549 | 577 | | |
550 | 578 | | |
| 579 | + | |
551 | 580 | | |
552 | 581 | | |
553 | 582 | | |
| |||
577 | 606 | | |
578 | 607 | | |
579 | 608 | | |
| 609 | + | |
580 | 610 | | |
581 | 611 | | |
582 | 612 | | |
| |||
609 | 639 | | |
610 | 640 | | |
611 | 641 | | |
| 642 | + | |
612 | 643 | | |
613 | 644 | | |
614 | 645 | | |
| |||
710 | 741 | | |
711 | 742 | | |
712 | 743 | | |
| 744 | + | |
713 | 745 | | |
714 | 746 | | |
715 | 747 | | |
| |||
724 | 756 | | |
725 | 757 | | |
726 | 758 | | |
| 759 | + | |
727 | 760 | | |
728 | 761 | | |
729 | 762 | | |
| |||
742 | 775 | | |
743 | 776 | | |
744 | 777 | | |
745 | | - | |
| 778 | + | |
746 | 779 | | |
747 | 780 | | |
748 | | - | |
| 781 | + | |
749 | 782 | | |
750 | 783 | | |
751 | 784 | | |
| |||
776 | 809 | | |
777 | 810 | | |
778 | 811 | | |
| 812 | + | |
| 813 | + | |
779 | 814 | | |
780 | 815 | | |
781 | 816 | | |
| |||
877 | 912 | | |
878 | 913 | | |
879 | 914 | | |
880 | | - | |
881 | | - | |
882 | | - | |
883 | | - | |
| 915 | + | |
884 | 916 | | |
885 | 917 | | |
886 | 918 | | |
| |||
911 | 943 | | |
912 | 944 | | |
913 | 945 | | |
| 946 | + | |
| 947 | + | |
| 948 | + | |
| 949 | + | |
| 950 | + | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
| 955 | + | |
| 956 | + | |
| 957 | + | |
| 958 | + | |
914 | 959 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
992 | 992 | | |
993 | 993 | | |
994 | 994 | | |
| 995 | + | |
| 996 | + | |
| 997 | + | |
| 998 | + | |
| 999 | + | |
| 1000 | + | |
| 1001 | + | |
| 1002 | + | |
| 1003 | + | |
| 1004 | + | |
| 1005 | + | |
| 1006 | + | |
| 1007 | + | |
| 1008 | + | |
| 1009 | + | |
| 1010 | + | |
| 1011 | + | |
| 1012 | + | |
| 1013 | + | |
| 1014 | + | |
| 1015 | + | |
| 1016 | + | |
| 1017 | + | |
| 1018 | + | |
| 1019 | + | |
| 1020 | + | |
| 1021 | + | |
| 1022 | + | |
| 1023 | + | |
| 1024 | + | |
| 1025 | + | |
| 1026 | + | |
| 1027 | + | |
| 1028 | + | |
| 1029 | + | |
| 1030 | + | |
995 | 1031 | | |
996 | 1032 | | |
997 | 1033 | | |
| |||
1100 | 1136 | | |
1101 | 1137 | | |
1102 | 1138 | | |
| 1139 | + | |
| 1140 | + | |
| 1141 | + | |
| 1142 | + | |
| 1143 | + | |
| 1144 | + | |
| 1145 | + | |
| 1146 | + | |
| 1147 | + | |
| 1148 | + | |
| 1149 | + | |
| 1150 | + | |
| 1151 | + | |
| 1152 | + | |
| 1153 | + | |
| 1154 | + | |
| 1155 | + | |
| 1156 | + | |
| 1157 | + | |
| 1158 | + | |
| 1159 | + | |
| 1160 | + | |
| 1161 | + | |
| 1162 | + | |
| 1163 | + | |
| 1164 | + | |
| 1165 | + | |
| 1166 | + | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
1103 | 1174 | | |
1104 | 1175 | | |
1105 | 1176 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
369 | 369 | | |
370 | 370 | | |
371 | 371 | | |
| 372 | + | |
372 | 373 | | |
373 | 374 | | |
374 | 375 | | |
375 | 376 | | |
376 | 377 | | |
377 | | - | |
| 378 | + | |
378 | 379 | | |
379 | 380 | | |
380 | 381 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
162 | 162 | | |
163 | 163 | | |
164 | 164 | | |
165 | | - | |
| 165 | + | |
166 | 166 | | |
167 | 167 | | |
168 | 168 | | |
169 | 169 | | |
170 | 170 | | |
171 | 171 | | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
172 | 180 | | |
173 | 181 | | |
174 | 182 | | |
| |||
0 commit comments