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 |
||
16 | class UpdateOrderInfoRequest extends AbstractRequest |
||
17 | { |
||
18 | |||
19 | /** |
||
20 | * @return UpdateOrderInfoApi |
||
21 | */ |
||
22 | public function api() |
||
26 | |||
27 | /** |
||
28 | * @return UpdateOrderInfoResponse |
||
29 | */ |
||
30 | public function response() |
||
34 | |||
35 | /** |
||
36 | * @return void |
||
37 | */ |
||
38 | protected function validateParams() |
||
41 | |||
42 | /** |
||
43 | * @return string |
||
44 | */ |
||
45 | public function getParams() |
||
55 | |||
56 | /** |
||
57 | * [必須]注文ID |
||
58 | * |
||
59 | * @param string $orderId |
||
60 | * @return UpdateOrderInfoRequest |
||
61 | */ |
||
62 | View Code Duplication | public function setOrderId(string $orderId): self |
|
71 | |||
72 | /** |
||
73 | * [必須]ストアアカウント |
||
74 | * |
||
75 | * @param string $sellerId |
||
76 | * @return UpdateOrderInfoRequest |
||
77 | */ |
||
78 | View Code Duplication | public function setSellerId(string $sellerId): self |
|
87 | |||
88 | /** |
||
89 | * 更新者名(ビジネスID登録氏名) |
||
90 | * セラー更新のみ |
||
91 | * |
||
92 | * @param string $operationUser |
||
93 | * @return UpdateOrderInfoRequest |
||
94 | */ |
||
95 | View Code Duplication | public function setOperationUser(string $operationUser): self |
|
104 | |||
105 | /** |
||
106 | * 閲覧済みフラグ |
||
107 | * 更新する時必ずtrue |
||
108 | * |
||
109 | * @return UpdateOrderInfoRequest |
||
110 | */ |
||
111 | public function setIsSeen(): self |
||
117 | |||
118 | /** |
||
119 | * 悪戯フラグ |
||
120 | * |
||
121 | * @param SuspectFlag $suspectFlag |
||
122 | * @return UpdateOrderInfoRequest |
||
123 | */ |
||
124 | View Code Duplication | public function setSuspect(SuspectFlag $suspectFlag): self |
|
133 | |||
134 | /** |
||
135 | * 支払い分類 |
||
136 | * |
||
137 | * @param PayType $payType |
||
138 | * @return UpdateOrderInfoRequest |
||
139 | */ |
||
140 | View Code Duplication | public function setPayType(PayType $payType): self |
|
149 | |||
150 | /** |
||
151 | * 支払い種別 |
||
152 | * |
||
153 | * @param PayKind $payKind |
||
154 | * @return UpdateOrderInfoRequest |
||
155 | */ |
||
156 | View Code Duplication | public function setPayKind(PayKind $payKind): self |
|
165 | |||
166 | /** |
||
167 | * 支払い方法 |
||
168 | * |
||
169 | * @param PayMethod $payMethod |
||
170 | * @return UpdateOrderInfoRequest |
||
171 | */ |
||
172 | View Code Duplication | public function setPayMethod(PayMethod $payMethod): self |
|
181 | |||
182 | /** |
||
183 | * 支払い方法名称 |
||
184 | * max:150byte |
||
185 | * |
||
186 | * @param string $payMethodName |
||
187 | * @return UpdateOrderInfoRequest |
||
188 | */ |
||
189 | View Code Duplication | public function setPayMethodName(string $payMethodName): self |
|
198 | |||
199 | /** |
||
200 | * ストアステータス |
||
201 | * ストアが独自に設定可能なステータスです。 |
||
202 | * max:2byte |
||
203 | * |
||
204 | * @param string $storeStatus |
||
205 | * @return UpdateOrderInfoRequest |
||
206 | */ |
||
207 | View Code Duplication | public function setStoreStatus(string $storeStatus): self |
|
216 | |||
217 | /** |
||
218 | * 注文伝票出力時刻 |
||
219 | * 注文伝票を出力した日時です。 |
||
220 | * format:YYYYMMDDHH24MISS |
||
221 | * |
||
222 | * @param string $printSlipTime |
||
223 | * @return UpdateOrderInfoRequest |
||
224 | */ |
||
225 | View Code Duplication | public function setPrintSlipTime(\DateTimeImmutable $printSlipTime): self |
|
234 | |||
235 | /** |
||
236 | * 納品書出力時刻 |
||
237 | * 納品書を出力した日時です。 |
||
238 | * format:YYYYMMDDHH24MISS |
||
239 | * |
||
240 | * @param \DateTimeImmutable $printDeliveryTime |
||
241 | * @return UpdateOrderInfoRequest |
||
242 | */ |
||
243 | View Code Duplication | public function setPrintDeliveryTime(\DateTimeImmutable $printDeliveryTime): self |
|
252 | |||
253 | /** |
||
254 | * 請求書出力時刻 |
||
255 | * 請求書を出力した日時です。 |
||
256 | * format:YYYYMMDDHH24MISS |
||
257 | * |
||
258 | * @param \DateTimeImmutable $printBillTime |
||
259 | * @return UpdateOrderInfoRequest |
||
260 | */ |
||
261 | View Code Duplication | public function setPrintBillTime(\DateTimeImmutable $printBillTime): self |
|
270 | |||
271 | /** |
||
272 | * バイヤーコメント |
||
273 | * ご要望欄入力内容です。 |
||
274 | * max:750byte |
||
275 | * |
||
276 | * @param string $buyerComments |
||
277 | * @return UpdateOrderInfoRequest |
||
278 | */ |
||
279 | View Code Duplication | public function setBuyerComments(string $buyerComments): self |
|
288 | |||
289 | /** |
||
290 | * セラーコメント |
||
291 | * セラーがカートに表示しているコメント文字列です。 |
||
292 | * max:750byte |
||
293 | * |
||
294 | * @param string $sellerComments |
||
295 | * @return UpdateOrderInfoRequest |
||
296 | */ |
||
297 | View Code Duplication | public function setSellerComments(string $sellerComments): self |
|
306 | |||
307 | /** |
||
308 | * 社内メモ |
||
309 | * ビジネス注文管理ツールでセラーが入力した社内メモです |
||
310 | * max:未定 |
||
311 | * |
||
312 | * @param string $notes |
||
313 | * @return UpdateOrderInfoRequest |
||
314 | */ |
||
315 | View Code Duplication | public function setNotes(string $notes): self |
|
324 | |||
325 | /** |
||
326 | * 社内メモ |
||
327 | * ビジネス注文管理ツールでセラーが入力した社内メモです |
||
328 | * 1byte(固定) |
||
329 | * |
||
330 | * @param string $refundStatus |
||
331 | * @return UpdateOrderInfoRequest |
||
332 | */ |
||
333 | View Code Duplication | public function setRefundStatus(string $refundStatus): self |
|
342 | |||
343 | } |
||
344 |
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.