| Conditions | 24 | 
| Paths | 552 | 
| Total Lines | 180 | 
| Code Lines | 160 | 
| 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  | 
            ||
| 131 | public static function parseImageSources($elementName, &$globalsSettings, &$bundleSettings, $siteId = 0)  | 
            ||
| 132 |     { | 
            ||
| 133 |         if (empty($siteId)) { | 
            ||
| 134 | $siteId = 0;  | 
            ||
| 135 | }  | 
            ||
| 136 | $objectPrefix = '';  | 
            ||
| 137 |         if (!empty($elementName)) { | 
            ||
| 138 | $elementName .= '.';  | 
            ||
| 139 | $objectPrefix = '';  | 
            ||
| 140 | }  | 
            ||
| 141 |         foreach (self::PULL_ASSET_FIELDS as $fields) { | 
            ||
| 142 | $fieldName = $fields['fieldName'];  | 
            ||
| 143 | $fieldNameWidth = $fields['fieldName'] . 'Width';  | 
            ||
| 144 | $fieldNameHeight = $fields['fieldName'] . 'Height';  | 
            ||
| 145 | $source = $bundleSettings[$fieldName . 'Source'] ?? '';  | 
            ||
| 146 | $ids = $bundleSettings[$fieldName . 'Ids'] ?? [];  | 
            ||
| 147 | $sourceField = $bundleSettings[$fieldName . 'Field'] ?? '';  | 
            ||
| 148 |             if (!empty($source)) { | 
            ||
| 149 | $transformImage = $bundleSettings[$fieldName . 'Transform'] ?? true;  | 
            ||
| 150 | $seoField = $fields['seoField'];  | 
            ||
| 151 | $tranformModeField = $fields['transformModeField'];  | 
            ||
| 152 | $transformMode = $bundleSettings[$tranformModeField] ?? 'crop';  | 
            ||
| 153 |                 if (empty($transformMode)) { | 
            ||
| 154 | $transformMode = 'crop';  | 
            ||
| 155 | }  | 
            ||
| 156 | $seoFieldWidth = $fields['seoField'] . 'Width';  | 
            ||
| 157 | $seoFieldHeight = $fields['seoField'] . 'Height';  | 
            ||
| 158 | $transformName = $fields['transformName'];  | 
            ||
| 159 | // Quote all the things here for clarity  | 
            ||
| 160 | $transformName = '"' . $transformName . '"';  | 
            ||
| 161 | $transformMode = '"' . $transformMode . '"';  | 
            ||
| 162 | // Special-case Twitter transforms  | 
            ||
| 163 |                 if ($fieldName === 'twitterImage') { | 
            ||
| 164 | $transformName = 'seomatic.helper.twitterTransform()';  | 
            ||
| 165 | }  | 
            ||
| 166 | // Reset the fields to empty by default  | 
            ||
| 167 |                 if ($source !== 'fromUrl') { | 
            ||
| 168 | $globalsSettings[$fieldName] = '';  | 
            ||
| 169 | }  | 
            ||
| 170 | $globalsSettings[$fieldNameWidth] = '';  | 
            ||
| 171 | $globalsSettings[$fieldNameHeight] = '';  | 
            ||
| 172 | // Handle transformed images  | 
            ||
| 173 |                 if ($transformImage) { | 
            ||
| 174 |                     switch ($source) { | 
            ||
| 175 | case 'sameAsSeo':  | 
            ||
| 176 | $seoSource = $bundleSettings[$seoField . 'Source'] ?? '';  | 
            ||
| 177 | $seoIds = $bundleSettings[$seoField . 'Ids'] ?? [];  | 
            ||
| 178 | $seoSourceField = $bundleSettings[$seoField . 'Field'] ?? '';  | 
            ||
| 179 |                             if (!empty($seoSource)) { | 
            ||
| 180 |                                 switch ($seoSource) { | 
            ||
| 181 | case 'fromField':  | 
            ||
| 182 |                                         if (!empty($seoSourceField)) { | 
            ||
| 183 |                                             $globalsSettings[$fieldName] = '{{ seomatic.helper.socialTransform(' | 
            ||
| 184 | . $objectPrefix . $elementName . $seoSourceField . '.collect()[0]'  | 
            ||
| 185 | . ', ' . $transformName  | 
            ||
| 186 | . ', ' . $siteId  | 
            ||
| 187 | . ', ' . $transformMode  | 
            ||
| 188 | . ') }}';  | 
            ||
| 189 |                                             $globalsSettings[$fieldNameWidth] = '{{ seomatic.helper.socialTransformWidth(' | 
            ||
| 190 | . $objectPrefix . $elementName . $seoSourceField . '.collect()[0]'  | 
            ||
| 191 | . ', ' . $transformName  | 
            ||
| 192 | . ', ' . $siteId  | 
            ||
| 193 | . ', ' . $transformMode  | 
            ||
| 194 | . ') }}';  | 
            ||
| 195 |                                             $globalsSettings[$fieldNameHeight] = '{{ seomatic.helper.socialTransformHeight(' | 
            ||
| 196 | . $objectPrefix . $elementName . $seoSourceField . '.collect()[0]'  | 
            ||
| 197 | . ', ' . $transformName  | 
            ||
| 198 | . ', ' . $siteId  | 
            ||
| 199 | . ', ' . $transformMode  | 
            ||
| 200 | . ') }}';  | 
            ||
| 201 | }  | 
            ||
| 202 | break;  | 
            ||
| 203 | case 'fromAsset':  | 
            ||
| 204 |                                         if (!empty($seoIds)) { | 
            ||
| 205 |                                             $globalsSettings[$fieldName] = '{{ seomatic.helper.socialTransform(' | 
            ||
| 206 | . $seoIds[0]  | 
            ||
| 207 | . ', ' . $transformName  | 
            ||
| 208 | . ', ' . $siteId  | 
            ||
| 209 | . ', ' . $transformMode  | 
            ||
| 210 | . ') }}';  | 
            ||
| 211 |                                             $globalsSettings[$fieldNameWidth] = '{{ seomatic.helper.socialTransformWidth(' | 
            ||
| 212 | . $seoIds[0]  | 
            ||
| 213 | . ', ' . $transformName  | 
            ||
| 214 | . ', ' . $siteId  | 
            ||
| 215 | . ', ' . $transformMode  | 
            ||
| 216 | . ') }}';  | 
            ||
| 217 |                                             $globalsSettings[$fieldNameHeight] = '{{ seomatic.helper.socialTransformHeight(' | 
            ||
| 218 | . $seoIds[0]  | 
            ||
| 219 | . ', ' . $transformName  | 
            ||
| 220 | . ', ' . $siteId  | 
            ||
| 221 | . ', ' . $transformMode  | 
            ||
| 222 | . ') }}';  | 
            ||
| 223 | }  | 
            ||
| 224 | break;  | 
            ||
| 225 | default:  | 
            ||
| 226 |                                         $globalsSettings[$fieldName] = '{{ seomatic.meta.' . $seoField . ' }}'; | 
            ||
| 227 |                                         $globalsSettings[$fieldNameWidth] = '{{ seomatic.meta.' . $seoFieldWidth . ' }}'; | 
            ||
| 228 |                                         $globalsSettings[$fieldNameHeight] = '{{ seomatic.meta.' . $seoFieldHeight . ' }}'; | 
            ||
| 229 | break;  | 
            ||
| 230 | }  | 
            ||
| 231 | }  | 
            ||
| 232 | break;  | 
            ||
| 233 | case 'fromField':  | 
            ||
| 234 |                             if (!empty($sourceField)) { | 
            ||
| 235 |                                 $globalsSettings[$fieldName] = '{{ seomatic.helper.socialTransform(' | 
            ||
| 236 | . $objectPrefix . $elementName . $sourceField . '.collect()[0]'  | 
            ||
| 237 | . ', ' . $transformName  | 
            ||
| 238 | . ', ' . $siteId  | 
            ||
| 239 | . ', ' . $transformMode  | 
            ||
| 240 | . ') }}';  | 
            ||
| 241 |                                 $globalsSettings[$fieldNameWidth] = '{{ seomatic.helper.socialTransformWidth(' | 
            ||
| 242 | . $objectPrefix . $elementName . $sourceField . '.collect()[0]'  | 
            ||
| 243 | . ', ' . $transformName  | 
            ||
| 244 | . ', ' . $siteId  | 
            ||
| 245 | . ', ' . $transformMode  | 
            ||
| 246 | . ') }}';  | 
            ||
| 247 |                                 $globalsSettings[$fieldNameHeight] = '{{ seomatic.helper.socialTransformHeight(' | 
            ||
| 248 | . $objectPrefix . $elementName . $sourceField . '.collect()[0]'  | 
            ||
| 249 | . ', ' . $transformName  | 
            ||
| 250 | . ', ' . $siteId  | 
            ||
| 251 | . ', ' . $transformMode  | 
            ||
| 252 | . ') }}';  | 
            ||
| 253 | }  | 
            ||
| 254 | break;  | 
            ||
| 255 | case 'fromAsset':  | 
            ||
| 256 |                             if (!empty($ids)) { | 
            ||
| 257 |                                 $globalsSettings[$fieldName] = '{{ seomatic.helper.socialTransform(' | 
            ||
| 258 | . $ids[0]  | 
            ||
| 259 | . ', ' . $transformName  | 
            ||
| 260 | . ', ' . $siteId  | 
            ||
| 261 | . ', ' . $transformMode  | 
            ||
| 262 | . ') }}';  | 
            ||
| 263 |                                 $globalsSettings[$fieldNameWidth] = '{{ seomatic.helper.socialTransformWidth(' | 
            ||
| 264 | . $ids[0]  | 
            ||
| 265 | . ', ' . $transformName  | 
            ||
| 266 | . ', ' . $siteId  | 
            ||
| 267 | . ', ' . $transformMode  | 
            ||
| 268 | . ') }}';  | 
            ||
| 269 |                                 $globalsSettings[$fieldNameHeight] = '{{ seomatic.helper.socialTransformHeight(' | 
            ||
| 270 | . $ids[0]  | 
            ||
| 271 | . ', ' . $transformName  | 
            ||
| 272 | . ', ' . $siteId  | 
            ||
| 273 | . ', ' . $transformMode  | 
            ||
| 274 | . ') }}';  | 
            ||
| 275 | }  | 
            ||
| 276 | break;  | 
            ||
| 277 | }  | 
            ||
| 278 |                 } else { | 
            ||
| 279 |                     switch ($source) { | 
            ||
| 280 | case 'sameAsSeo':  | 
            ||
| 281 |                             $globalsSettings[$fieldName] = '{{ seomatic.meta.' . $seoField . ' }}'; | 
            ||
| 282 |                             $globalsSettings[$fieldNameWidth] = '{{ seomatic.meta.' . $seoFieldWidth . ' }}'; | 
            ||
| 283 |                             $globalsSettings[$fieldNameHeight] = '{{ seomatic.meta.' . $seoFieldHeight . ' }}'; | 
            ||
| 284 | break;  | 
            ||
| 285 | case 'fromField':  | 
            ||
| 286 |                             if (!empty($sourceField)) { | 
            ||
| 287 |                                 $globalsSettings[$fieldName] = '{{ ' | 
            ||
| 288 | . $elementName . $sourceField . '.collect()[0].url'  | 
            ||
| 289 | . ' }}';  | 
            ||
| 290 |                                 $globalsSettings[$fieldNameWidth] = '{{ ' | 
            ||
| 291 | . $elementName . $sourceField . '.collect()[0].width'  | 
            ||
| 292 | . ' }}';  | 
            ||
| 293 |                                 $globalsSettings[$fieldNameHeight] = '{{ ' | 
            ||
| 294 | . $elementName . $sourceField . '.collect()[0].height'  | 
            ||
| 295 | . ' }}';  | 
            ||
| 296 | }  | 
            ||
| 297 | break;  | 
            ||
| 298 | case 'fromAsset':  | 
            ||
| 299 |                             if (!empty($ids)) { | 
            ||
| 300 |                                 $globalsSettings[$fieldName] = '{{ craft.app.assets.assetById(' | 
            ||
| 301 | . $ids[0]  | 
            ||
| 302 | . ', ' . $siteId . ').url }}';  | 
            ||
| 303 |                                 $globalsSettings[$fieldNameWidth] = '{{ craft.app.assets.assetById(' | 
            ||
| 304 | . $ids[0]  | 
            ||
| 305 | . ', ' . $siteId . ').width }}';  | 
            ||
| 306 |                                 $globalsSettings[$fieldNameHeight] = '{{ craft.app.assets.assetById(' | 
            ||
| 307 | . $ids[0]  | 
            ||
| 308 | . ', ' . $siteId . ').height }}';  | 
            ||
| 309 | }  | 
            ||
| 310 | break;  | 
            ||
| 311 | }  | 
            ||
| 317 |