File tree Expand file tree Collapse file tree 2 files changed +32
-1
lines changed Expand file tree Collapse file tree 2 files changed +32
-1
lines changed Original file line number Diff line number Diff line change 3
3
return [
4
4
'locale ' => 'en_US ' ,
5
5
'chunk_size ' => 1000 ,
6
- 'models_path ' => app_path ('Models ' )
6
+ 'models_path ' => app_path ('Models ' ),
7
+
8
+ /*
9
+ |--------------------------------------------------------------------------
10
+ | Model Ordering
11
+ |--------------------------------------------------------------------------
12
+ |
13
+ | Optionally specify the order of anonymization, these Models will be anonymized first.
14
+ |
15
+ */
16
+ 'ordered_models ' => []
17
+
7
18
];
Original file line number Diff line number Diff line change @@ -54,6 +54,26 @@ public function handle(): int
54
54
55
55
$ this ->warn ('Anonymization started ' );
56
56
57
+ $ anonymizableClassesOrdered = collect (config ('anonymizer.ordered_models ' ) ?? [])
58
+ ->map (fn ($ ac ) => '\\' .$ ac );
59
+
60
+ $ anonymizableClasses = collect ($ anonymizableClasses )
61
+ ->diff ($ anonymizableClassesOrdered )
62
+ ->toArray ();
63
+
64
+ if (!empty ($ anonymizableClassesOrdered )) {
65
+ $ this ->warn ('Order dependent models anonymizing. ' );
66
+ }
67
+ foreach ($ anonymizableClassesOrdered as $ anonymizableClass ) {
68
+ $ this ->anonymizeTable (
69
+ new $ anonymizableClass ()
70
+ );
71
+ }
72
+
73
+ if (!empty ($ anonymizableClassesOrdered )) {
74
+ $ this ->warn ('Remaining models anonymizing. ' );
75
+ }
76
+ $ anonymizableClasses = collect ($ anonymizableClasses )->diff ($ anonymizableClassesOrdered )->all ();
57
77
foreach ($ anonymizableClasses as $ anonymizableClass ) {
58
78
$ this ->anonymizeTable (
59
79
new $ anonymizableClass ()
You can’t perform that action at this time.
0 commit comments