| Conditions | 24 | 
| Paths | 1 | 
| Total Lines | 249 | 
| Code Lines | 146 | 
| 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  | 
            ||
| 176 | protected function installEventHandlers()  | 
            ||
| 177 |     { | 
            ||
| 178 | // Register our variables  | 
            ||
| 179 | Event::on(  | 
            ||
| 180 | CraftVariable::class,  | 
            ||
| 181 | CraftVariable::EVENT_INIT,  | 
            ||
| 182 |             function (Event $event) { | 
            ||
| 183 | /** @var CraftVariable $variable */  | 
            ||
| 184 | $variable = $event->sender;  | 
            ||
| 185 |                 $variable->set('imageOptimize', ImageOptimizeVariable::class); | 
            ||
| 186 | }  | 
            ||
| 187 | );  | 
            ||
| 188 | |||
| 189 | // Register our Field  | 
            ||
| 190 | Event::on(  | 
            ||
| 191 | Fields::class,  | 
            ||
| 192 | Fields::EVENT_REGISTER_FIELD_TYPES,  | 
            ||
| 193 |             function (RegisterComponentTypesEvent $event) { | 
            ||
| 194 | Craft::debug(  | 
            ||
| 195 | 'Fields::EVENT_REGISTER_FIELD_TYPES',  | 
            ||
| 196 | __METHOD__  | 
            ||
| 197 | );  | 
            ||
| 198 | $event->types[] = OptimizedImages::class;  | 
            ||
| 199 | }  | 
            ||
| 200 | );  | 
            ||
| 201 | |||
| 202 | // Handler: Fields::EVENT_AFTER_SAVE_FIELD  | 
            ||
| 203 | Event::on(  | 
            ||
| 204 | Fields::class,  | 
            ||
| 205 | Fields::EVENT_AFTER_SAVE_FIELD,  | 
            ||
| 206 |             function (FieldEvent $event) { | 
            ||
| 207 | Craft::debug(  | 
            ||
| 208 | 'Fields::EVENT_AFTER_SAVE_FIELD',  | 
            ||
| 209 | __METHOD__  | 
            ||
| 210 | );  | 
            ||
| 211 | $settings = $this->getSettings();  | 
            ||
| 212 | /** @var Field $field */  | 
            ||
| 213 |                 if (!$event->isNew && $settings->automaticallyResaveImageVariants) { | 
            ||
| 214 | $thisField = $event->field;  | 
            ||
| 215 |                     if ($thisField instanceof OptimizedImages) { | 
            ||
| 216 | $volumes = Craft::$app->getVolumes()->getAllVolumes();  | 
            ||
| 217 |                         foreach ($volumes as $volume) { | 
            ||
| 218 | $needToReSave = false;  | 
            ||
| 219 | /** @var FieldLayout $fieldLayout */  | 
            ||
| 220 | /** @var Volume $volume */  | 
            ||
| 221 | $fieldLayout = $volume->getFieldLayout();  | 
            ||
| 222 | // Loop through the fields in the layout to see if it contains our field  | 
            ||
| 223 |                             if ($fieldLayout) { | 
            ||
| 224 | $fields = $fieldLayout->getFields();  | 
            ||
| 225 |                                 foreach ($fields as $field) { | 
            ||
| 226 |                                     if ($thisField->handle == $field->handle) { | 
            ||
| 227 | $needToReSave = true;  | 
            ||
| 228 | }  | 
            ||
| 229 | }  | 
            ||
| 230 |                                 if ($needToReSave) { | 
            ||
| 231 | ImageOptimize::$plugin->optimizedImages->resaveVolumeAssets($volume);  | 
            ||
| 232 | }  | 
            ||
| 233 | }  | 
            ||
| 234 | }  | 
            ||
| 235 | }  | 
            ||
| 236 | }  | 
            ||
| 237 | }  | 
            ||
| 238 | );  | 
            ||
| 239 | |||
| 240 | // Handler: Plugins::EVENT_AFTER_SAVE_PLUGIN_SETTINGS  | 
            ||
| 241 | Event::on(  | 
            ||
| 242 | Plugins::class,  | 
            ||
| 243 | Plugins::EVENT_AFTER_SAVE_PLUGIN_SETTINGS,  | 
            ||
| 244 |             function (PluginEvent $event) { | 
            ||
| 245 |                 if ($event->plugin === $this) { | 
            ||
| 246 | Craft::debug(  | 
            ||
| 247 | 'Plugins::EVENT_AFTER_SAVE_PLUGIN_SETTINGS',  | 
            ||
| 248 | __METHOD__  | 
            ||
| 249 | );  | 
            ||
| 250 | $settings = $this->getSettings();  | 
            ||
| 251 |                     if ($settings->automaticallyResaveImageVariants) { | 
            ||
| 252 | // After they have changed the settings, resave all of the assets  | 
            ||
| 253 | ImageOptimize::$plugin->optimizedImages->resaveAllVolumesAssets();  | 
            ||
| 254 | }  | 
            ||
| 255 | }  | 
            ||
| 256 | }  | 
            ||
| 257 | );  | 
            ||
| 258 | |||
| 259 | // Handler: Volumes::EVENT_AFTER_SAVE_VOLUME  | 
            ||
| 260 | Event::on(  | 
            ||
| 261 | Volumes::class,  | 
            ||
| 262 | Volumes::EVENT_AFTER_SAVE_VOLUME,  | 
            ||
| 263 |             function (VolumeEvent $event) { | 
            ||
| 264 | Craft::debug(  | 
            ||
| 265 | 'Volumes::EVENT_AFTER_SAVE_VOLUME',  | 
            ||
| 266 | __METHOD__  | 
            ||
| 267 | );  | 
            ||
| 268 | $settings = $this->getSettings();  | 
            ||
| 269 | // Only worry about this volume if it's not new  | 
            ||
| 270 |                 if (!$event->isNew && $settings->automaticallyResaveImageVariants) { | 
            ||
| 271 | /** @var Volume $volume */  | 
            ||
| 272 | $volume = $event->volume;  | 
            ||
| 273 |                     if (is_subclass_of($volume, Volume::class)) { | 
            ||
| 274 | ImageOptimize::$plugin->optimizedImages->resaveVolumeAssets($volume);  | 
            ||
| 275 | }  | 
            ||
| 276 | }  | 
            ||
| 277 | }  | 
            ||
| 278 | );  | 
            ||
| 279 | |||
| 280 | // Handler: Assets::EVENT_GET_ASSET_URL  | 
            ||
| 281 | Event::on(  | 
            ||
| 282 | Assets::class,  | 
            ||
| 283 | Assets::EVENT_GET_ASSET_URL,  | 
            ||
| 284 |             function (GetAssetUrlEvent $event) { | 
            ||
| 285 | Craft::debug(  | 
            ||
| 286 | 'Assets::EVENT_GET_ASSET_URL',  | 
            ||
| 287 | __METHOD__  | 
            ||
| 288 | );  | 
            ||
| 289 | // Return the URL to the asset URL or null to let Craft handle it  | 
            ||
| 290 | $event->url = ImageOptimize::$plugin->optimize->handleGetAssetUrlEvent(  | 
            ||
| 291 | $event  | 
            ||
| 292 | );  | 
            ||
| 293 | }  | 
            ||
| 294 | );  | 
            ||
| 295 | |||
| 296 | // Handler: AssetTransforms::EVENT_GENERATE_TRANSFORM  | 
            ||
| 297 | Event::on(  | 
            ||
| 298 | AssetTransforms::class,  | 
            ||
| 299 | AssetTransforms::EVENT_GENERATE_TRANSFORM,  | 
            ||
| 300 |             function (GenerateTransformEvent $event) { | 
            ||
| 301 | Craft::debug(  | 
            ||
| 302 | 'AssetTransforms::EVENT_GENERATE_TRANSFORM',  | 
            ||
| 303 | __METHOD__  | 
            ||
| 304 | );  | 
            ||
| 305 | // Return the path to the optimized image to _createTransformForAsset()  | 
            ||
| 306 | $event->tempPath = ImageOptimize::$plugin->optimize->handleGenerateTransformEvent(  | 
            ||
| 307 | $event  | 
            ||
| 308 | );  | 
            ||
| 309 | }  | 
            ||
| 310 | );  | 
            ||
| 311 | |||
| 312 | // Handler: AssetTransforms::EVENT_AFTER_DELETE_TRANSFORMS  | 
            ||
| 313 | Event::on(  | 
            ||
| 314 | AssetTransforms::class,  | 
            ||
| 315 | AssetTransforms::EVENT_AFTER_DELETE_TRANSFORMS,  | 
            ||
| 316 |             function (AssetTransformImageEvent $event) { | 
            ||
| 317 | Craft::debug(  | 
            ||
| 318 | 'AssetTransforms::EVENT_AFTER_DELETE_TRANSFORMS',  | 
            ||
| 319 | __METHOD__  | 
            ||
| 320 | );  | 
            ||
| 321 | // Clean up any stray variant files  | 
            ||
| 322 | ImageOptimize::$plugin->optimize->handleAfterDeleteTransformsEvent(  | 
            ||
| 323 | $event  | 
            ||
| 324 | );  | 
            ||
| 325 | }  | 
            ||
| 326 | );  | 
            ||
| 327 | |||
| 328 | // Handler: Elements::EVENT_BEFORE_SAVE_ELEMENT  | 
            ||
| 329 | Event::on(  | 
            ||
| 330 | Elements::class,  | 
            ||
| 331 | Elements::EVENT_BEFORE_SAVE_ELEMENT,  | 
            ||
| 332 |             function (ElementEvent $event) { | 
            ||
| 333 | Craft::debug(  | 
            ||
| 334 | 'Elements::EVENT_BEFORE_SAVE_ELEMENT',  | 
            ||
| 335 | __METHOD__  | 
            ||
| 336 | );  | 
            ||
| 337 | /** @var Element $element */  | 
            ||
| 338 | $element = $event->element;  | 
            ||
| 339 | $isNewElement = $event->isNew;  | 
            ||
| 340 |                 if (($element instanceof Asset) && (!$isNewElement)) { | 
            ||
| 341 | // Purge the URL  | 
            ||
| 342 | $purgeUrl = ImageOptimize::$transformClass::getPurgeUrl(  | 
            ||
| 343 | $element,  | 
            ||
| 344 | ImageOptimize::$transformParams  | 
            ||
| 345 | );  | 
            ||
| 346 |                     if ($purgeUrl) { | 
            ||
| 347 | ImageOptimize::$transformClass::purgeUrl($purgeUrl, ImageOptimize::$transformParams);  | 
            ||
| 348 | }  | 
            ||
| 349 | }  | 
            ||
| 350 | }  | 
            ||
| 351 | );  | 
            ||
| 352 | |||
| 353 | // Handler: Elements::EVENT_BEFORE_DELETE_ELEMENT  | 
            ||
| 354 | Event::on(  | 
            ||
| 355 | Elements::class,  | 
            ||
| 356 | Elements::EVENT_BEFORE_DELETE_ELEMENT,  | 
            ||
| 357 |             function (ElementEvent $event) { | 
            ||
| 358 | Craft::debug(  | 
            ||
| 359 | 'Elements::EVENT_BEFORE_DELETE_ELEMENT',  | 
            ||
| 360 | __METHOD__  | 
            ||
| 361 | );  | 
            ||
| 362 | /** @var Element $element */  | 
            ||
| 363 | $element = $event->element;  | 
            ||
| 364 |                 if ($element instanceof Asset) { | 
            ||
| 365 | // Purge the URL  | 
            ||
| 366 | $purgeUrl = ImageOptimize::$transformClass::getPurgeUrl(  | 
            ||
| 367 | $element,  | 
            ||
| 368 | ImageOptimize::$transformParams  | 
            ||
| 369 | );  | 
            ||
| 370 |                     if ($purgeUrl) { | 
            ||
| 371 | ImageOptimize::$transformClass::purgeUrl($purgeUrl, ImageOptimize::$transformParams);  | 
            ||
| 372 | }  | 
            ||
| 373 | }  | 
            ||
| 374 | }  | 
            ||
| 375 | );  | 
            ||
| 376 | |||
| 377 | // Handler: Assets::EVENT_BEFORE_REPLACE_ASSET  | 
            ||
| 378 | Event::on(  | 
            ||
| 379 | Assets::class,  | 
            ||
| 380 | Assets::EVENT_BEFORE_REPLACE_ASSET,  | 
            ||
| 381 |             function (ReplaceAssetEvent $event) { | 
            ||
| 382 | Craft::debug(  | 
            ||
| 383 | 'Assets::EVENT_BEFORE_REPLACE_ASSET',  | 
            ||
| 384 | __METHOD__  | 
            ||
| 385 | );  | 
            ||
| 386 | /** @var Asset $element */  | 
            ||
| 387 | $element = $event->asset;  | 
            ||
| 388 | // Purge the URL  | 
            ||
| 389 | $purgeUrl = ImageOptimize::$transformClass::getPurgeUrl(  | 
            ||
| 390 | $element,  | 
            ||
| 391 | ImageOptimize::$transformParams  | 
            ||
| 392 | );  | 
            ||
| 393 |                 if ($purgeUrl) { | 
            ||
| 394 | ImageOptimize::$transformClass::purgeUrl($purgeUrl, ImageOptimize::$transformParams);  | 
            ||
| 395 | }  | 
            ||
| 396 | }  | 
            ||
| 397 | );  | 
            ||
| 398 | |||
| 399 | // Handler: Elements::EVENT_AFTER_REPLACE_ASSET  | 
            ||
| 400 | Event::on(  | 
            ||
| 401 | Assets::class,  | 
            ||
| 402 | Assets::EVENT_AFTER_REPLACE_ASSET,  | 
            ||
| 403 |             function (ReplaceAssetEvent $event) { | 
            ||
| 404 | Craft::debug(  | 
            ||
| 405 | 'Assets::EVENT_AFTER_REPLACE_ASSET',  | 
            ||
| 406 | __METHOD__  | 
            ||
| 407 | );  | 
            ||
| 408 | /** @var Asset $element */  | 
            ||
| 409 | $element = $event->asset;  | 
            ||
| 410 |                 if (!empty($element->id)) { | 
            ||
| 411 | ImageOptimize::$plugin->optimizedImages->resaveAsset($element->id);  | 
            ||
| 412 | }  | 
            ||
| 413 | }  | 
            ||
| 414 | );  | 
            ||
| 415 | |||
| 416 | // Do something after we're installed  | 
            ||
| 417 | Event::on(  | 
            ||
| 418 | Plugins::class,  | 
            ||
| 419 | Plugins::EVENT_AFTER_INSTALL_PLUGIN,  | 
            ||
| 420 |             function (PluginEvent $event) { | 
            ||
| 421 |                 if ($event->plugin === $this) { | 
            ||
| 422 | $request = Craft::$app->getRequest();  | 
            ||
| 423 |                     if (($request->isCpRequest) && (!$request->isConsoleRequest)) { | 
            ||
| 424 |                         Craft::$app->getResponse()->redirect(UrlHelper::cpUrl('image-optimize/welcome'))->send(); | 
            ||
| 425 | }  | 
            ||
| 431 |