| Conditions | 8 |
| Paths | 11 |
| Total Lines | 82 |
| Code Lines | 56 |
| Lines | 40 |
| Ratio | 48.78 % |
| Changes | 0 | ||
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | <?php |
||
| 242 | public function update(Request $request, $id) |
||
| 243 | { |
||
| 244 | $response = array(); |
||
| 245 | $message = array(); |
||
| 246 | |||
| 247 | $bahasa_indonesia = $request->bahasa_indonesia; |
||
| 248 | $bahasa_inggris = $request->bahasa_inggris; |
||
| 249 | $matematika = $request->matematika; |
||
| 250 | $ipa = $request->ipa; |
||
| 251 | |||
| 252 | $total_nialai_akademik = $bahasa_indonesia + $bahasa_inggris + $matematika + $ipa; |
||
| 253 | |||
| 254 | $akademik = $this->akademik->findOrFail($id); |
||
| 255 | |||
| 256 | $validator = Validator::make($request->all(), [ |
||
| 257 | 'user_id' => 'required|unique:akademiks,user_id,'.$id, |
||
| 258 | 'siswa_id' => 'required|unique:akademiks,siswa_id,'.$id, |
||
| 259 | 'bahasa_indonesia' => 'required', |
||
| 260 | 'bahasa_inggris' => 'required', |
||
| 261 | 'matematika' => 'required', |
||
| 262 | 'ipa' => 'required', |
||
| 263 | |||
| 264 | ]); |
||
| 265 | |||
| 266 | if ($validator->fails()) { |
||
| 267 | |||
| 268 | foreach($validator->messages()->getMessages() as $key => $error){ |
||
| 269 | foreach($error AS $error_get) { |
||
| 270 | array_push($message, $error_get); |
||
| 271 | } |
||
| 272 | } |
||
| 273 | |||
| 274 | $check_user = $this->akademik->where('id','!=', $id)->where('user_id', $request->user_id); |
||
| 275 | $check_siswa = $this->akademik->where('id','!=', $id)->where('siswa_id', $request->siswa_id); |
||
| 276 | |||
| 277 | if($check_user->count() > 0 || $check_siswa->count() > 0){ |
||
| 278 | $response['message'] = implode("\n",$message); |
||
| 279 | View Code Duplication | } else { |
|
| 280 | $akademik->user_id = $request->input('user_id'); |
||
| 281 | $akademik->bahasa_indonesia = $request->input('bahasa_indonesia'); |
||
| 282 | $akademik->siswa_id = $request->input('siswa_id'); |
||
| 283 | $akademik->bahasa_inggris = $request->input('bahasa_inggris'); |
||
| 284 | $akademik->matematika = $request->input('matematika'); |
||
| 285 | $akademik->ipa = $request->input('ipa'); |
||
| 286 | $akademik->save(); |
||
| 287 | |||
| 288 | $check_akademik = $this->nilai->where('siswa_id', $request->input('siswa_id')); |
||
| 289 | if($check_akademik->count() > 0){ |
||
| 290 | $this->nilai->where('siswa_id', $request->input('siswa_id'))->update([ |
||
| 291 | 'user_id' => $request->input('user_id'), |
||
| 292 | 'siswa_id' => $request->input('siswa_id'), |
||
| 293 | 'akademik' => $total_nialai_akademik |
||
| 294 | ]); |
||
| 295 | } |
||
| 296 | |||
| 297 | $response['message'] = 'success'; |
||
| 298 | } |
||
| 299 | View Code Duplication | } else { |
|
| 300 | $akademik->user_id = $request->input('user_id'); |
||
| 301 | $akademik->bahasa_indonesia = $request->input('bahasa_indonesia'); |
||
| 302 | $akademik->siswa_id = $request->input('siswa_id'); |
||
| 303 | $akademik->bahasa_inggris = $request->input('bahasa_inggris'); |
||
| 304 | $akademik->matematika = $request->input('matematika'); |
||
| 305 | $akademik->ipa = $request->input('ipa'); |
||
| 306 | $akademik->save(); |
||
| 307 | |||
| 308 | $check_akademik = $this->nilai->where('siswa_id', $request->input('siswa_id')); |
||
| 309 | if($check_akademik->count() > 0){ |
||
| 310 | $this->nilai->where('siswa_id', $request->input('siswa_id'))->update([ |
||
| 311 | 'user_id' => $request->input('user_id'), |
||
| 312 | 'siswa_id' => $request->input('siswa_id'), |
||
| 313 | 'akademik' => $total_nialai_akademik |
||
| 314 | ]); |
||
| 315 | } |
||
| 316 | |||
| 317 | $response['message'] = 'success'; |
||
| 318 | } |
||
| 319 | |||
| 320 | $response['status'] = true; |
||
| 321 | |||
| 322 | return response()->json($response); |
||
| 323 | } |
||
| 324 | |||
| 344 |
If you implement
__calland you know which methods are available, you can improve IDE auto-completion and static analysis by adding a @method annotation to the class.This is often the case, when
__callis implemented by a parent class and only the child class knows which methods exist: