Conditions | 16 |
Paths | 23 |
Total Lines | 70 |
Code Lines | 37 |
Lines | 0 |
Ratio | 0 % |
Changes | 1 | ||
Bugs | 0 | Features | 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 |
||
36 | function sn_RestoreFleetToPlanet(&$fleet_row, $start = true, $only_resources = false, $safe_fleet = false, &$result) { |
||
37 | db_mysql::db_transaction_check(true); |
||
38 | |||
39 | $result = CACHE_NOTHING; |
||
40 | if (!is_array($fleet_row)) { |
||
41 | return $result; |
||
42 | } |
||
43 | |||
44 | $prefix = $start ? 'start' : 'end'; |
||
45 | |||
46 | // Поскольку эта функция может быть вызвана не из обработчика флотов - нам надо всё заблокировать вроде бы НЕ МОЖЕТ!!! |
||
47 | // TODO Проеверить от многократного срабатывания !!! |
||
48 | // Тут не блокируем пока - сначала надо заблокировать пользователя, что бы не было дедлока |
||
49 | // $fleet_row = doquery("SELECT * FROM {{fleets}} WHERE `fleet_id`='{$fleet_row['fleet_id']}' LIMIT 1", true); |
||
50 | // Узнаем ИД владельца планеты - без блокировки |
||
51 | // TODO поменять на владельца планеты - когда его будут возвращать всегда !!! |
||
52 | $user_id = DBStaticPlanet::db_planet_by_vector($fleet_row, "fleet_{$prefix}_"); |
||
53 | $user_id = $user_id['id_owner']; |
||
54 | // Блокируем пользователя |
||
55 | $user = db_user_by_id($user_id, true); |
||
56 | // Блокируем планету |
||
57 | $planet_arrival = DBStaticPlanet::db_planet_by_vector($fleet_row, "fleet_{$prefix}_"); |
||
58 | // Блокируем флот |
||
59 | // $fleet_row = doquery("SELECT * FROM {{fleets}} WHERE `fleet_id`='{$fleet_row['fleet_id']}' LIMIT 1 FOR UPDATE;", true); |
||
60 | |||
61 | // Если флот уже обработан - не существует или возращается - тогда ничего не делаем |
||
62 | if (!$fleet_row || !is_array($fleet_row) || ($fleet_row['fleet_mess'] == 1 && $only_resources)) { |
||
63 | return $result; |
||
64 | } |
||
65 | |||
66 | // Флот, который возвращается на захваченную планету, пропадает |
||
67 | if ($start && $fleet_row['fleet_mess'] == 1 && $planet_arrival['id_owner'] != $fleet_row['fleet_owner']) { |
||
68 | DbFleetStatic::db_fleet_delete($fleet_row['fleet_id']); |
||
69 | |||
70 | return $result; |
||
71 | } |
||
72 | |||
73 | $db_changeset = array(); |
||
74 | if (!$only_resources) { |
||
75 | DbFleetStatic::db_fleet_delete($fleet_row['fleet_id']); |
||
76 | |||
77 | if ($fleet_row['fleet_owner'] == $planet_arrival['id_owner']) { |
||
78 | $fleet_array = sys_unit_str2arr($fleet_row['fleet_array']); |
||
79 | foreach ($fleet_array as $ship_id => $ship_count) { |
||
80 | if ($ship_count) { |
||
81 | $db_changeset['unit'][] = OldDbChangeSet::db_changeset_prepare_unit($ship_id, $ship_count, $user, $planet_arrival['id']); |
||
82 | } |
||
83 | } |
||
84 | } else { |
||
85 | return CACHE_NOTHING; |
||
86 | } |
||
87 | } else { |
||
88 | $fleet_set = array( |
||
89 | 'fleet_resource_metal' => 0, |
||
90 | 'fleet_resource_crystal' => 0, |
||
91 | 'fleet_resource_deuterium' => 0, |
||
92 | 'fleet_mess' => 1, |
||
93 | ); |
||
94 | DbFleetStatic::fleet_update_set($fleet_row['fleet_id'], $fleet_set); |
||
95 | } |
||
96 | |||
97 | if (!empty($db_changeset)) { |
||
98 | OldDbChangeSet::db_changeset_apply($db_changeset); |
||
99 | } |
||
100 | |||
101 | DBStaticPlanet::db_planet_set_by_id($planet_arrival['id'], |
||
102 | "`metal` = `metal` + '{$fleet_row['fleet_resource_metal']}', `crystal` = `crystal` + '{$fleet_row['fleet_resource_crystal']}', `deuterium` = `deuterium` + '{$fleet_row['fleet_resource_deuterium']}'"); |
||
103 | $result = CACHE_FLEET | ($start ? CACHE_PLANET_SRC : CACHE_PLANET_DST); |
||
104 | |||
105 | return $result; |
||
106 | } |
||
107 |