Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.
Common duplication problems, and corresponding solutions are:
1 | <?php |
||
70 | class EventService { |
||
71 | |||
72 | |||
73 | use TNC22Logger; |
||
74 | |||
75 | |||
76 | /** @var IEventDispatcher */ |
||
77 | private $eventDispatcher; |
||
78 | |||
79 | |||
80 | /** |
||
81 | * EventService constructor. |
||
82 | * |
||
83 | * @param IEventDispatcher $eventDispatcher |
||
84 | */ |
||
85 | public function __construct(IEventDispatcher $eventDispatcher) { |
||
90 | |||
91 | |||
92 | /** |
||
93 | * @param FederatedEvent $federatedEvent |
||
94 | */ |
||
95 | public function circleCreating(FederatedEvent $federatedEvent): void { |
||
99 | |||
100 | /** |
||
101 | * @param FederatedEvent $federatedEvent |
||
102 | * @param array $results |
||
103 | */ |
||
104 | public function circleCreated(FederatedEvent $federatedEvent, array $results): void { |
||
108 | |||
109 | |||
110 | /** |
||
111 | * @param FederatedEvent $federatedEvent |
||
112 | */ |
||
113 | public function circleEditing(FederatedEvent $federatedEvent): void { |
||
117 | |||
118 | /** |
||
119 | * @param FederatedEvent $federatedEvent |
||
120 | * @param array $results |
||
121 | */ |
||
122 | public function circleEdited(FederatedEvent $federatedEvent, array $results): void { |
||
126 | |||
127 | |||
128 | /** |
||
129 | * @param FederatedEvent $federatedEvent |
||
130 | */ |
||
131 | public function circleDestroying(FederatedEvent $federatedEvent): void { |
||
135 | |||
136 | /** |
||
137 | * @param FederatedEvent $federatedEvent |
||
138 | * @param array $results |
||
139 | */ |
||
140 | public function circleDestroyed(FederatedEvent $federatedEvent, array $results): void { |
||
144 | |||
145 | |||
146 | /** |
||
147 | * @param FederatedEvent $federatedEvent |
||
148 | */ |
||
149 | public function memberAdding(FederatedEvent $federatedEvent): void { |
||
154 | |||
155 | /** |
||
156 | * @param FederatedEvent $federatedEvent |
||
157 | * @param array $results |
||
158 | */ |
||
159 | public function memberAdded(FederatedEvent $federatedEvent, array $results): void { |
||
164 | |||
165 | |||
166 | /** |
||
167 | * @param FederatedEvent $federatedEvent |
||
168 | */ |
||
169 | public function memberInviting(FederatedEvent $federatedEvent): void { |
||
174 | |||
175 | /** |
||
176 | * @param FederatedEvent $federatedEvent |
||
177 | * @param array $results |
||
178 | */ |
||
179 | public function memberInvited(FederatedEvent $federatedEvent, array $results): void { |
||
184 | |||
185 | |||
186 | /** |
||
187 | * @param FederatedEvent $federatedEvent |
||
188 | */ |
||
189 | public function memberRequesting(FederatedEvent $federatedEvent): void { |
||
194 | |||
195 | /** |
||
196 | * @param FederatedEvent $federatedEvent |
||
197 | * @param array $results |
||
198 | */ |
||
199 | public function memberRequested(FederatedEvent $federatedEvent, array $results): void { |
||
204 | |||
205 | |||
206 | /** |
||
207 | * @param FederatedEvent $federatedEvent |
||
208 | */ |
||
209 | public function memberJoining(FederatedEvent $federatedEvent): void { |
||
214 | |||
215 | /** |
||
216 | * @param FederatedEvent $federatedEvent |
||
217 | * @param array $results |
||
218 | */ |
||
219 | public function memberJoined(FederatedEvent $federatedEvent, array $results): void { |
||
224 | |||
225 | |||
226 | /** |
||
227 | * @param FederatedEvent $federatedEvent |
||
228 | */ |
||
229 | View Code Duplication | public function memberLevelEditing(FederatedEvent $federatedEvent): void { |
|
235 | |||
236 | /** |
||
237 | * @param FederatedEvent $federatedEvent |
||
238 | * @param array $results |
||
239 | */ |
||
240 | View Code Duplication | public function memberLevelEdited(FederatedEvent $federatedEvent, array $results): void { |
|
246 | |||
247 | |||
248 | /** |
||
249 | * @param FederatedEvent $federatedEvent |
||
250 | */ |
||
251 | View Code Duplication | public function memberNameEditing(FederatedEvent $federatedEvent): void { |
|
257 | |||
258 | /** |
||
259 | * @param FederatedEvent $federatedEvent |
||
260 | * @param array $results |
||
261 | */ |
||
262 | View Code Duplication | public function memberNameEdited(FederatedEvent $federatedEvent, array $results): void { |
|
268 | |||
269 | |||
270 | /** |
||
271 | * @param FederatedEvent $federatedEvent |
||
272 | */ |
||
273 | public function memberRemoving(FederatedEvent $federatedEvent): void { |
||
278 | |||
279 | /** |
||
280 | * @param FederatedEvent $federatedEvent |
||
281 | * @param array $results |
||
282 | */ |
||
283 | public function memberRemoved(FederatedEvent $federatedEvent, array $results): void { |
||
288 | |||
289 | |||
290 | /** |
||
291 | * @param FederatedEvent $federatedEvent |
||
292 | */ |
||
293 | public function memberLeaving(FederatedEvent $federatedEvent): void { |
||
298 | |||
299 | /** |
||
300 | * @param FederatedEvent $federatedEvent |
||
301 | * @param SimpleDataStore[] $results |
||
302 | */ |
||
303 | public function memberLeft(FederatedEvent $federatedEvent, array $results): void { |
||
308 | |||
309 | |||
310 | /** |
||
311 | * @param Membership[] $new |
||
312 | */ |
||
313 | public function membershipsCreated(array $new): void { |
||
317 | |||
318 | |||
319 | /** |
||
320 | * @param Membership[] $deprecated |
||
321 | */ |
||
322 | public function membershipsRemoved(array $deprecated): void { |
||
326 | |||
327 | |||
328 | /** |
||
329 | * @param ShareWrapper $wrappedShare |
||
330 | */ |
||
331 | public function localShareCreated(ShareWrapper $wrappedShare): void { |
||
333 | |||
334 | /** |
||
335 | * @param ShareWrapper $wrappedShare |
||
336 | * @param Mount $mount |
||
337 | */ |
||
338 | public function federatedShareCreated(ShareWrapper $wrappedShare, Mount $mount): void { |
||
345 | |||
346 | |||
347 | /** |
||
348 | * @param ShareWrapper $wrappedShare |
||
349 | */ |
||
350 | public function localShareDeleted(ShareWrapper $wrappedShare): void { |
||
352 | |||
353 | /** |
||
354 | * @param ShareWrapper $wrappedShare |
||
355 | */ |
||
356 | public function federatedShareDeleted(ShareWrapper $wrappedShare): void { |
||
358 | |||
359 | |||
360 | |||
361 | // /** |
||
362 | // * @param FederatedEvent $federatedEvent |
||
363 | // */ |
||
364 | // public function onSharedItemsSyncRequested(FederatedEvent $federatedEvent) { |
||
365 | // $event = new SharedItemsSyncRequestedEvent($federatedEvent); |
||
366 | // $this->eventDispatcher->dispatchTyped($event); |
||
367 | // } |
||
368 | |||
369 | } |
||
370 | |||
371 |
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.