| Conditions | 3 |
| Paths | 3 |
| Total Lines | 52 |
| Code Lines | 39 |
| 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 |
||
| 64 | private function updateSearchIndex():void |
||
| 65 | { |
||
| 66 | $parameters = [ |
||
| 67 | 'models' => [ |
||
| 68 | 'Users' => Users::class, |
||
| 69 | ], |
||
| 70 | 'joins' => [ |
||
| 71 | 'Sip' => [ |
||
| 72 | 0 => Sip::class, |
||
| 73 | 1 => 'Sip.extension=Extensions.number', |
||
| 74 | 2 => 'Sip', |
||
| 75 | 3 => 'INNER', |
||
| 76 | ], |
||
| 77 | 'Extensions' => [ |
||
| 78 | 0 => Extensions::class, |
||
| 79 | 1 => 'Extensions.userid=Users.id and Extensions.is_general_user_number = "1" and Extensions.type="' . Extensions::TYPE_SIP . '"', |
||
| 80 | 2 => 'Extensions', |
||
| 81 | 3 => 'INNER', |
||
| 82 | ], |
||
| 83 | 'ExternalExtensions' => [ |
||
| 84 | 0 => Extensions::class, |
||
| 85 | 1 => 'ExternalExtensions.userid=Users.id and Extensions.is_general_user_number = "1" and ExternalExtensions.type="' . Extensions::TYPE_EXTERNAL . '"', |
||
| 86 | 2 => 'ExternalExtensions', |
||
| 87 | 3 => 'LEFT', |
||
| 88 | ], |
||
| 89 | ], |
||
| 90 | 'columns' => [ |
||
| 91 | 'extensionId'=>'Extensions.id', |
||
| 92 | 'user_username'=>'Users.username', |
||
| 93 | 'user_email'=>'Users.email', |
||
| 94 | 'extension_number'=>'Extensions.number', |
||
| 95 | 'mobile_number'=>'ExternalExtensions.number', |
||
| 96 | 'extension_callerid'=>'Extensions.callerid', |
||
| 97 | ] |
||
| 98 | ]; |
||
| 99 | $query = $this->di->get('modelsManager')->createBuilder($parameters)->getQuery(); |
||
| 100 | $selectedUsers = $query->execute()->toArray(); |
||
| 101 | foreach ($selectedUsers as $record) { |
||
| 102 | $extension = Extensions::findFirst($record['extensionId']); |
||
| 103 | if (!$extension) { |
||
| 104 | continue; |
||
| 105 | } |
||
| 106 | // Collect data for the search index |
||
| 107 | $username = mb_strtolower($record['user_username']??''); |
||
| 108 | $callerId = mb_strtolower($record['extension_callerid']??''); |
||
| 109 | $email = mb_strtolower($record['user_email']??''); |
||
| 110 | $internalNumber = mb_strtolower($record['extension_number']??''); |
||
| 111 | $mobileNumber = mb_strtolower($record['mobile_number']??''); |
||
| 112 | |||
| 113 | // Combine all fields into a single string |
||
| 114 | $extension->search_index = $username . ' ' . $callerId . ' ' . $email . ' ' . $internalNumber . ' ' . $mobileNumber; |
||
| 115 | $extension->save(); |
||
| 116 | } |
||
| 152 | } |