BigBad /
golfleague
This project does not seem to handle request data directly as such no vulnerable execution paths were found.
include, or for example
via PHP's auto-loading mechanism.
These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
| 1 | <?php |
||
| 2 | |||
| 3 | namespace GolfLeague\Handlers; |
||
| 4 | |||
| 5 | use GolfLeague\Storage\Round\RoundRepository; |
||
| 6 | use \Ctp; |
||
| 7 | use \Netwinner; |
||
| 8 | use \Grosswinner; |
||
| 9 | use \Skin; |
||
| 10 | use \Player; |
||
| 11 | |||
| 12 | /** |
||
| 13 | * MatchHandler Connection Class |
||
| 14 | * |
||
| 15 | * This class subscribes to events in related to match creation |
||
| 16 | * |
||
| 17 | * @author Michael Schmidt |
||
| 18 | */ |
||
| 19 | class FinalizeHandler |
||
| 20 | { |
||
| 21 | /** |
||
| 22 | * Create a new instance of the MatchHandler |
||
| 23 | * |
||
| 24 | * @param GolfLeague\Storage\Round\RoundRepository $roundRepo |
||
| 25 | * @return void |
||
|
0 ignored issues
–
show
|
|||
| 26 | */ |
||
| 27 | public function __construct(RoundRepository $roundRepo) |
||
| 28 | { |
||
| 29 | $this->roundRepo= $roundRepo; |
||
|
0 ignored issues
–
show
The property
roundRepo does not exist. Did you maybe forget to declare it?
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code: class MyClass { }
$x = new MyClass();
$x->foo = true;
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion: class MyClass {
public $foo;
}
$x = new MyClass();
$x->foo = true;
Loading history...
|
|||
| 30 | } // End of __construct |
||
| 31 | |||
| 32 | /** |
||
| 33 | * Create an initial round for each player after a new match is created |
||
| 34 | * |
||
| 35 | * @param Match $match |
||
| 36 | * @return void |
||
| 37 | */ |
||
| 38 | public function handle($match) |
||
| 39 | { |
||
| 40 | //for the match get ctps, netwinner, grosswinner, and skins |
||
| 41 | //calculate winnings |
||
| 42 | //store in the pivot table match_player for the given player |
||
| 43 | |||
| 44 | $winningPlayers = array(); |
||
| 45 | $i = 1; |
||
| 46 | |||
| 47 | $ctpWinners = Ctp::where('match_id', '=', $match->id)->get(); |
||
| 48 | View Code Duplication | foreach($ctpWinners as $key => $ctpWinner){ |
|
|
0 ignored issues
–
show
This code seems to be duplicated across your project.
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. Loading history...
|
|||
| 49 | $playerExists = $this->recursive_array_search($ctpWinner->player_id, $winningPlayers); |
||
| 50 | //if player is already there add money here to other money |
||
| 51 | if($playerExists){ |
||
| 52 | $winningPlayers[$i]['player_id'] = $ctpWinner->player_id; |
||
| 53 | $winningPlayers[$i]['money'] = ($ctpWinner->money + $winningPlayers[$playerExists]['money']); |
||
| 54 | unset($winningPlayers[$playerExists]); |
||
| 55 | } |
||
| 56 | else { |
||
| 57 | $winningPlayers[$i]['player_id'] = $ctpWinner->player_id; |
||
| 58 | $winningPlayers[$i]['money'] = $ctpWinner->money; |
||
| 59 | } |
||
| 60 | $i++; |
||
| 61 | } |
||
| 62 | |||
| 63 | $netWinners = Netwinner::where('match_id', '=', $match->id)->get(); |
||
| 64 | View Code Duplication | foreach($netWinners as $key => $netWinner){ |
|
|
0 ignored issues
–
show
This code seems to be duplicated across your project.
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. Loading history...
|
|||
| 65 | $playerExists = $this->recursive_array_search($netWinner->player_id, $winningPlayers); |
||
| 66 | //if player is already there add money here to other money |
||
| 67 | if($playerExists){ |
||
| 68 | $winningPlayers[$i]['player_id'] = $netWinner->player_id; |
||
| 69 | $winningPlayers[$i]['money'] = ($netWinner->money + $winningPlayers[$playerExists]['money']); |
||
| 70 | unset($winningPlayers[$playerExists]); |
||
| 71 | } |
||
| 72 | else{ |
||
| 73 | $winningPlayers[$i]['player_id'] = $netWinner->player_id; |
||
| 74 | $winningPlayers[$i]['money'] = $netWinner->money; |
||
| 75 | } |
||
| 76 | $i++; |
||
| 77 | } |
||
| 78 | |||
| 79 | $grossWinners = Grosswinner::where('match_id', '=', $match->id)->get(); |
||
| 80 | View Code Duplication | foreach($grossWinners as $key => $grossWinner){ |
|
|
0 ignored issues
–
show
This code seems to be duplicated across your project.
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. Loading history...
|
|||
| 81 | $playerExists = $this->recursive_array_search($grossWinner->player_id, $winningPlayers); |
||
| 82 | //if player is already there add money here to other money |
||
| 83 | if($playerExists){ |
||
| 84 | $winningPlayers[$i]['player_id'] = $grossWinner->player_id; |
||
| 85 | $winningPlayers[$i]['money'] = ($grossWinner->money + $winningPlayers[$playerExists]['money']); |
||
| 86 | unset($winningPlayers[$playerExists]); |
||
| 87 | } |
||
| 88 | else{ |
||
| 89 | $winningPlayers[$i]['player_id'] = $grossWinner->player_id; |
||
| 90 | $winningPlayers[$i]['money'] = $grossWinner->money; |
||
| 91 | } |
||
| 92 | $i++; |
||
| 93 | } |
||
| 94 | |||
| 95 | $skinWinners = Skin::where('match_id', '=', $match->id)->get(); |
||
| 96 | View Code Duplication | foreach($skinWinners as $key => $skinWinner){ |
|
|
0 ignored issues
–
show
This code seems to be duplicated across your project.
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. Loading history...
|
|||
| 97 | $playerExists = $this->recursive_array_search($skinWinner->player_id, $winningPlayers); |
||
| 98 | //if player is already there add money here to other money |
||
| 99 | if($playerExists){ |
||
| 100 | $winningPlayers[$i]['player_id'] = $skinWinner->player_id; |
||
| 101 | $winningPlayers[$i]['money'] = ($skinWinner->money + $winningPlayers[$playerExists]['money']); |
||
| 102 | unset($winningPlayers[$playerExists]); |
||
| 103 | } |
||
| 104 | else{ |
||
| 105 | $winningPlayers[$i]['player_id'] = $skinWinner->player_id; |
||
| 106 | $winningPlayers[$i]['money'] = $skinWinner->money; |
||
| 107 | } |
||
| 108 | $i++; |
||
| 109 | } |
||
| 110 | |||
| 111 | //Consolidate any multiple instances of a player |
||
| 112 | foreach ($winningPlayers as $key => $winningPlayer){ |
||
| 113 | array_search($winningPlayer['player_id'], $winningPlayers); |
||
| 114 | } |
||
| 115 | |||
| 116 | foreach ($winningPlayers as $key => $player){ |
||
| 117 | $currentPlayer = Player::find($player['player_id']); |
||
| 118 | $attributes = array( |
||
| 119 | "winnings" => $player['money'] |
||
| 120 | ); |
||
| 121 | $currentPlayer->matches()->updateExistingPivot($match->id, $attributes); //save match_player pivot data |
||
| 122 | }// End foreach |
||
| 123 | |||
| 124 | |||
| 125 | } |
||
| 126 | |||
| 127 | /** |
||
| 128 | * Register the listeners for the subscriber. |
||
| 129 | * |
||
| 130 | * @param Illuminate\Events\Dispatcher $events |
||
| 131 | * @return array |
||
| 132 | */ |
||
| 133 | public function subscribe($events) |
||
| 134 | { |
||
| 135 | $events->listen('match.finalize', 'GolfLeague\Handlers\FinalizeHandler'); |
||
| 136 | } |
||
| 137 | |||
| 138 | public function recursive_array_search($needle,$haystack) { |
||
| 139 | foreach($haystack as $key=>$value) { |
||
| 140 | $current_key=$key; |
||
| 141 | if($needle===$value || (is_array($value) && $this->recursive_array_search($needle,$value) !== false)) { |
||
| 142 | return $current_key; |
||
| 143 | } |
||
| 144 | } |
||
| 145 | return false; |
||
| 146 | } |
||
| 147 | } |
||
| 148 |
Adding a
@returnannotation to a constructor is not recommended, since a constructor does not have a meaningful return value.Please refer to the PHP core documentation on constructors.