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 |
||
13 | class Transfers extends MoipResource |
||
14 | { |
||
15 | /** |
||
16 | * @const string |
||
17 | */ |
||
18 | const PATH = 'transfers'; |
||
19 | |||
20 | /** |
||
21 | * @const string |
||
22 | */ |
||
23 | const METHOD_BKA = 'BANK_ACCOUNT'; |
||
24 | |||
25 | /** |
||
26 | * @const string |
||
27 | */ |
||
28 | const METHOD_MPA = 'MOIP_ACCOUNT'; |
||
29 | |||
30 | /** |
||
31 | * @const string |
||
32 | */ |
||
33 | const TYPE = 'CHECKING'; |
||
34 | |||
35 | /** |
||
36 | * Initializes new instances. |
||
37 | */ |
||
38 | View Code Duplication | protected function initialize() |
|
47 | |||
48 | /** |
||
49 | * @param stdClass $response |
||
50 | * |
||
51 | * @return Transfers |
||
52 | */ |
||
53 | protected function populate(stdClass $response) |
||
90 | |||
91 | /** |
||
92 | * Set the amount of transfer. |
||
93 | * |
||
94 | * @param int $amount |
||
95 | * |
||
96 | * @return $this |
||
97 | */ |
||
98 | public function setAmount($amount) |
||
104 | |||
105 | /** |
||
106 | * Returns amount. |
||
107 | * |
||
108 | * @return amount |
||
109 | */ |
||
110 | public function getAmount() |
||
114 | |||
115 | /** |
||
116 | * Set the bank accout transfer. |
||
117 | * |
||
118 | * @param string $bankNumber Bank number. possible values: 001, 237, 341, 041. |
||
119 | * @param int $agencyNumber |
||
120 | * @param int $agencyCheckNumber |
||
121 | * @param int $accountNumber |
||
122 | * @param int $accountCheckNumber |
||
123 | * |
||
124 | * @return $this |
||
125 | */ |
||
126 | public function transferToBankAccount( |
||
143 | |||
144 | /** |
||
145 | * Set the ID of a saved bank account. |
||
146 | * |
||
147 | * @param string $bankAccountId Saved bank account ID (BKA-XXXXXXX). |
||
148 | * |
||
149 | * @return $this |
||
150 | */ |
||
151 | public function transferWithBankAccountId($bankAccountId) |
||
158 | |||
159 | /** |
||
160 | * Set the Moip Account ID to create a transfer to this account. |
||
161 | * |
||
162 | * @param string $moipAccountId The Moip Account ID (MPA-XXXXXXX) |
||
163 | */ |
||
164 | public function transferToMoipAccount($moipAccountId) |
||
171 | |||
172 | /** |
||
173 | * Returns transfer. |
||
174 | * |
||
175 | * @return stdClass |
||
176 | */ |
||
177 | public function getTransfers() |
||
181 | |||
182 | /** |
||
183 | * Get own request id. external reference. |
||
184 | * |
||
185 | * @param mixed $ownId id |
||
186 | * |
||
187 | * @return $this |
||
188 | */ |
||
189 | public function setOwnId($ownId) |
||
195 | |||
196 | /** |
||
197 | * Set info of holder. |
||
198 | * |
||
199 | * @param string $fullname |
||
200 | * @param int $taxDocument |
||
201 | * |
||
202 | * @return $this |
||
203 | */ |
||
204 | public function setHolder($fullname, $taxDocumentNumber, $taxDocumentType = 'CPF') |
||
212 | |||
213 | /** |
||
214 | * Returns transfer holder. |
||
215 | * |
||
216 | * @return stdClass |
||
217 | */ |
||
218 | public function getHolder() |
||
222 | |||
223 | /** |
||
224 | * Execute Tranfers. |
||
225 | * |
||
226 | * @return Transfers |
||
227 | */ |
||
228 | View Code Duplication | public function execute() |
|
236 | |||
237 | /** |
||
238 | * Revert Tranfers. |
||
239 | * |
||
240 | * @param string $id Transfer id. |
||
241 | * |
||
242 | * @return Transfers |
||
243 | */ |
||
244 | View Code Duplication | public function revert($id) |
|
252 | |||
253 | /** |
||
254 | * Get a Transfer. |
||
255 | * |
||
256 | * @param string $id Transfer id. |
||
257 | * |
||
258 | * @return stdClass |
||
259 | */ |
||
260 | public function get($id) |
||
264 | |||
265 | /** |
||
266 | * Create a new Transfers list instance. |
||
267 | * |
||
268 | * @return \Moip\Resource\TransfersList |
||
269 | */ |
||
270 | public function getList(Pagination $pagination = null, Filters $filters = null, $qParam = '') |
||
276 | |||
277 | /** |
||
278 | * Get MoIP Transfers id. |
||
279 | * |
||
280 | * @return string |
||
281 | */ |
||
282 | public function getId() |
||
286 | |||
287 | /** |
||
288 | * Get own request id. external reference. |
||
289 | * |
||
290 | * @return mixed |
||
291 | */ |
||
292 | public function getOwnId() |
||
296 | } |
||
297 |
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.