Conditions | 4 |
Paths | 8 |
Total Lines | 138 |
Code Lines | 118 |
Lines | 0 |
Ratio | 0 % |
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 |
||
22 | public function index() |
||
23 | { |
||
24 | $gametypes = \DB::table('games_files_types') |
||
25 | ->select('id', 'title', 'short') |
||
26 | ->get(); |
||
27 | $gtypes = []; |
||
|
|||
28 | foreach ($gametypes as $gt) { |
||
29 | $t['title'] = $gt->title; |
||
30 | $t['short'] = $gt->short; |
||
31 | $gtypes[$gt->id] = $t; |
||
32 | } |
||
33 | |||
34 | $news = News::with('user', 'comments')->orderBy('created_at', 'desc')->where('approved', '=', 1)->get()->take(5); |
||
35 | $shoutbox = Shoutbox::with('user')->orderBy('created_at', 'desc')->limit(5)->get()->reverse(); |
||
36 | $cdc = GamesCoupdecoeur::with('game')->orderBy('created_at', 'desc')->get()->first(); |
||
37 | $latestadded = Game::with('maker', 'gamefiles', 'language', 'developers')->orderBy('created_at', 'desc')->limit(5)->get(); |
||
38 | $latestreleased = Game::where('release_type', '!=', 99)->orderBy('release_date', 'desc')->limit(5)->get(); |
||
39 | $threads = BoardThread::with('posts', 'user', 'last_user')->orderBy('last_created_at', 'desc')->limit(10)->get(); |
||
40 | |||
41 | $topusers = \DB::table('users as u') |
||
42 | ->leftJoin('user_role_user as uru', 'u.id', '=', 'uru.user_id') |
||
43 | ->leftJoin('user_roles as ur', 'ur.id', '=', 'uru.role_id') |
||
44 | ->select([ |
||
45 | 'u.id as userid', |
||
46 | 'u.name as username', |
||
47 | 'u.created_at as usercreated_at', |
||
48 | 'ur.display_name as rolename', |
||
49 | 'ur.description as roledesc', |
||
50 | ]) |
||
51 | ->selectRaw('(SELECT SUM(obyx.value) FROM user_obyx LEFT JOIN obyx ON obyx.id = user_obyx.obyx_id WHERE user_obyx.user_id = u.id) as obyx') |
||
52 | ->orderBy('obyx', 'desc') |
||
53 | ->limit(5) |
||
54 | ->get(); |
||
55 | |||
56 | $obyxmax = \DB::table('user_obyx as uo') |
||
57 | ->leftJoin('obyx as o', 'o.id', '=', 'uo.obyx_id') |
||
58 | ->selectRaw('SUM(o.value) as value') |
||
59 | ->groupBy('uo.user_id') |
||
60 | ->orderByRaw('SUM(o.value) DESC') |
||
61 | ->first(); |
||
62 | |||
63 | if (\Auth::check()) { |
||
64 | $pm = \Auth::user()->newThreadsCount(); |
||
65 | } else { |
||
66 | $pm = ''; |
||
67 | } |
||
68 | |||
69 | $stats = \DB::table('games') |
||
70 | ->selectRaw('COUNT(id) as gamecount') |
||
71 | ->selectRaw('(SELECT COUNT(id) FROM makers) as makercount') |
||
72 | ->selectRaw('(SELECT COUNT(id) FROM developer) as developercount') |
||
73 | ->selectRaw('(SELECT COUNT(id) FROM users) as usercount') |
||
74 | ->selectRaw('(SELECT COUNT(id) FROM board_threads) as threadcount') |
||
75 | ->selectRaw('(SELECT COUNT(id) FROM board_posts) as postcount') |
||
76 | ->selectRaw('(SELECT COUNT(id) FROM shoutbox) as shoutboxcount') |
||
77 | ->selectRAW('(SELECT COUNT(id) FROM comments) as commentcount') |
||
78 | ->selectRaw('(SELECT COUNT(id) FROM logos) as logocount') |
||
79 | ->selectRaw('(SELECT SUM(downloadcount) FROM games_files) as downloadcount') |
||
80 | ->selectRaw('(SELECT SUM(filesize) FROM games_files) as totalsize') |
||
81 | ->selectRaw('(SELECT COUNT(id) FROM games_files) as filecount') |
||
82 | ->first(); |
||
83 | |||
84 | $size = \DB::table('games_files') |
||
85 | ->selectRaw('SUM(filesize * downloadcount) as downsize') |
||
86 | ->groupBy('id') |
||
87 | ->get(); |
||
88 | |||
89 | $res = 0; |
||
90 | foreach ($size as $s) { |
||
91 | $res += $s->downsize; |
||
92 | } |
||
93 | $size = MiscHelper::getReadableBytes($res); |
||
94 | |||
95 | $topmonth = \DB::table('games') |
||
96 | ->leftJoin('games_developer', 'games.id', '=', 'games_developer.game_id') |
||
97 | ->leftJoin('developer', 'games_developer.developer_id', '=', 'developer.id') |
||
98 | ->leftJoin('makers', 'makers.id', '=', 'games.maker_id') |
||
99 | ->leftJoin('languages', 'languages.id', '=', 'games.lang_id') |
||
100 | ->leftJoin('comments', function ($join) { |
||
101 | $join->on('comments.content_id', '=', 'games.id'); |
||
102 | $join->on('comments.content_type', '=', \DB::raw("'game'")); |
||
103 | }) |
||
104 | ->leftJoin('games_files', 'games_files.game_id', '=', 'games.id') |
||
105 | ->leftJoin('users', 'games_developer.user_id', '=', 'users.id') |
||
106 | ->select([ |
||
107 | 'games.id as gameid', |
||
108 | 'games.title as gametitle', |
||
109 | 'games.subtitle as gamesubtitle', |
||
110 | 'developer.name as developername', |
||
111 | 'developer.id as developerid', |
||
112 | 'developer.created_at as developerdate', |
||
113 | 'developer.user_id as developeruserid', |
||
114 | 'users.name as developerusername', |
||
115 | 'games.created_at as gamecreated_at', |
||
116 | 'makers.short as makershort', |
||
117 | 'makers.title as makertitle', |
||
118 | 'makers.id as makerid', |
||
119 | 'languages.id as lang_id', |
||
120 | 'languages.name as lang_name', |
||
121 | 'languages.short as lang_short', |
||
122 | ]) |
||
123 | ->selectRaw('(SELECT COUNT(id) FROM comments WHERE content_id = games.id AND content_type = "game") as commentcount') |
||
124 | ->selectRaw('(SELECT SUM(vote_up) FROM comments WHERE content_id = games.id AND content_type = "game") as voteup') |
||
125 | ->selectRaw('(SELECT SUM(vote_down) FROM comments WHERE content_id = games.id AND content_type = "game") as votedown') |
||
126 | ->selectRaw('MAX(games_files.release_type) as gametype') |
||
127 | ->selectRaw("(SELECT STR_TO_DATE(CONCAT(release_year,'-',release_month,'-',release_day ), '%Y-%m-%d') FROM games_files WHERE game_id = games.id ORDER BY release_year DESC, release_month DESC, release_day DESC LIMIT 1) as releasedate") |
||
128 | ->selectRaw('(SELECT COUNT(id) FROM games_coupdecoeur WHERE game_id = games.id) as cdccount') |
||
129 | ->where('comments.created_at', '>', Carbon::today()->addMonth(-1)->toDateString()) |
||
130 | ->orderByRaw('(voteup - votedown) / (voteup + votedown) DESC') |
||
131 | ->groupBy('games.id') |
||
132 | ->limit(5)->get(); |
||
133 | |||
134 | $topalltime = Game::orderBy('avg', 'desc')->limit(5)->get(); |
||
135 | $latestcomments = Comment::with('game')->whereContentType('game')->orderBy('created_at', 'desc')->limit(5)->get(); |
||
136 | $randomgame = Game::inRandomOrder()->first(); |
||
137 | |||
138 | $newuser = User::orderBy('created_at', 'desc')->first(); |
||
139 | |||
140 | return view('index.index', [ |
||
141 | 'news' => $news, |
||
142 | 'shoutbox' => $shoutbox, |
||
143 | 'cdc' => $cdc, |
||
144 | 'latestadded' => $latestadded, |
||
145 | 'gametypes' => $gtypes, |
||
146 | 'latestreleased' => $latestreleased, |
||
147 | 'threads' => $threads, |
||
148 | 'obeymax' => $obyxmax, |
||
149 | 'topusers' => $topusers, |
||
150 | 'pm' => $pm, |
||
151 | 'stats' => $stats, |
||
152 | 'topmonth' => $topmonth, |
||
153 | 'topalltime' => $topalltime, |
||
154 | 'latestcomments' => $latestcomments, |
||
155 | 'size' => $size, |
||
156 | 'randomgame' => $randomgame, |
||
157 | 'newuser' => $newuser, |
||
158 | ]); |
||
159 | } |
||
160 | } |
||
161 |
This check looks for multiple assignments in successive lines of code. It will report an issue if the operators are not in a straight line.
To visualize
will produce issues in the first and second line, while this second example
will produce no issues.