| 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 |