Passed
Push — develop ( 36b43d...5f8f62 )
by Andrew
30:33 queued 21:51
created
src/services/Redirects.php 1 patch
Spacing   +73 added lines, -73 removed lines patch added patch discarded remove patch
@@ -192,7 +192,7 @@  discard block
 block discarded – undo
192 192
                 Craft::t(
193 193
                     'retour',
194 194
                     '404 full URL: {fullUrl}, 404 path only: {pathOnly}',
195
-                    ['fullUrl' => $fullUrl, 'pathOnly' => $pathOnly]
195
+                    [ 'fullUrl' => $fullUrl, 'pathOnly' => $pathOnly ]
196 196
                 ),
197 197
                 __METHOD__
198 198
             );
@@ -226,7 +226,7 @@  discard block
 block discarded – undo
226 226
         $response = Craft::$app->getResponse();
227 227
         if ($redirect !== null) {
228 228
             // Figure out what type of source matching was done
229
-            $redirectSrcMatch = $redirect['redirectSrcMatch'] ?? 'pathonly';
229
+            $redirectSrcMatch = $redirect[ 'redirectSrcMatch' ] ?? 'pathonly';
230 230
             switch ($redirectSrcMatch) {
231 231
                 case 'pathonly':
232 232
                     $url = $pathOnly;
@@ -238,13 +238,13 @@  discard block
 block discarded – undo
238 238
                     $url = $pathOnly;
239 239
                     break;
240 240
             }
241
-            $dest = $redirect['redirectDestUrl'];
241
+            $dest = $redirect[ 'redirectDestUrl' ];
242 242
             // If this isn't a full URL, make it one based on the appropriate site
243 243
             if (!UrlHelper::isFullUrl($dest)) {
244 244
                 try {
245
-                    $siteId = $redirect['siteId'] ?? null;
245
+                    $siteId = $redirect[ 'siteId' ] ?? null;
246 246
                     if ($siteId !== null) {
247
-                        $siteId = (int)$siteId;
247
+                        $siteId = (int) $siteId;
248 248
                     }
249 249
                     $dest = UrlHelper::siteUrl($dest, null, null, $siteId);
250 250
                 } catch (\yii\base\Exception $e) {
@@ -256,17 +256,17 @@  discard block
 block discarded – undo
256 256
                     $dest .= '?' . $request->getQueryStringWithoutPath();
257 257
                 }
258 258
             }
259
-            $redirectMatchType = $redirect['redirectMatchType'] ?? 'notfound';
259
+            $redirectMatchType = $redirect[ 'redirectMatchType' ] ?? 'notfound';
260 260
             // Parse reference tags for exact matches
261 261
             if ($redirectMatchType === 'exactmatch') {
262
-                $dest = Craft::$app->elements->parseRefs($dest, $redirect['siteId'] ?? null);
262
+                $dest = Craft::$app->elements->parseRefs($dest, $redirect[ 'siteId' ] ?? null);
263 263
             }
264
-            $status = $redirect['redirectHttpCode'];
264
+            $status = $redirect[ 'redirectHttpCode' ];
265 265
             Craft::info(
266 266
                 Craft::t(
267 267
                     'retour',
268 268
                     'Redirecting {url} to {dest} with status {status}',
269
-                    ['url' => $url, 'dest' => $dest, 'status' => $status]
269
+                    [ 'url' => $url, 'dest' => $dest, 'status' => $status ]
270 270
                 ),
271 271
                 __METHOD__
272 272
             );
@@ -290,7 +290,7 @@  discard block
 block discarded – undo
290 290
             // Add any additional headers (existing ones will be replaced)
291 291
             if (!empty(Retour::$settings->additionalHeaders)) {
292 292
                 foreach (Retour::$settings->additionalHeaders as $additionalHeader) {
293
-                    $response->headers->set($additionalHeader['name'], $additionalHeader['value']);
293
+                    $response->headers->set($additionalHeader[ 'name' ], $additionalHeader[ 'value' ]);
294 294
                 }
295 295
             }
296 296
             // Redirect the request away;
@@ -361,13 +361,13 @@  discard block
 block discarded – undo
361 361
     public function getRedirectFromCache($url, int $siteId = 0)
362 362
     {
363 363
         $cache = Craft::$app->getCache();
364
-        $cacheKey = $this::CACHE_KEY.md5($url).$siteId;
364
+        $cacheKey = $this::CACHE_KEY . md5($url) . $siteId;
365 365
         $redirect = $cache->get($cacheKey);
366 366
         Craft::info(
367 367
             Craft::t(
368 368
                 'retour',
369 369
                 'Cached redirect hit for {url}',
370
-                ['url' => $url]
370
+                [ 'url' => $url ]
371 371
             ),
372 372
             __METHOD__
373 373
         );
@@ -389,12 +389,12 @@  discard block
 block discarded – undo
389 389
         } catch (SiteNotFoundException $e) {
390 390
             $siteId = 1;
391 391
         }
392
-        $cacheKey = $this::CACHE_KEY.md5($url).$siteId;
392
+        $cacheKey = $this::CACHE_KEY . md5($url) . $siteId;
393 393
         // Create the dependency tags
394 394
         $dependency = new TagDependency([
395 395
             'tags' => [
396 396
                 $this::GLOBAL_REDIRECTS_CACHE_TAG,
397
-                $this::GLOBAL_REDIRECTS_CACHE_TAG.$siteId,
397
+                $this::GLOBAL_REDIRECTS_CACHE_TAG . $siteId,
398 398
             ],
399 399
         ]);
400 400
         $cache->set($cacheKey, $redirect, Retour::$cacheDuration, $dependency);
@@ -402,7 +402,7 @@  discard block
 block discarded – undo
402 402
             Craft::t(
403 403
                 'retour',
404 404
                 'Cached redirect saved for {url}',
405
-                ['url' => $url]
405
+                [ 'url' => $url ]
406 406
             ),
407 407
             __METHOD__
408 408
         );
@@ -433,8 +433,8 @@  discard block
 block discarded – undo
433 433
         // Iterate through the redirects
434 434
         foreach ($redirects as $redirect) {
435 435
             // Figure out what type of source matching to do
436
-            $redirectSrcMatch = $redirect['redirectSrcMatch'] ?? 'pathonly';
437
-            $redirectEnabled = (bool)$redirect['enabled'];
436
+            $redirectSrcMatch = $redirect[ 'redirectSrcMatch' ] ?? 'pathonly';
437
+            $redirectEnabled = (bool) $redirect[ 'enabled' ];
438 438
             if ($redirectEnabled === true) {
439 439
                 switch ($redirectSrcMatch) {
440 440
                     case 'pathonly':
@@ -447,11 +447,11 @@  discard block
 block discarded – undo
447 447
                         $url = $pathOnly;
448 448
                         break;
449 449
                 }
450
-                $redirectMatchType = $redirect['redirectMatchType'] ?? 'notfound';
450
+                $redirectMatchType = $redirect[ 'redirectMatchType' ] ?? 'notfound';
451 451
                 switch ($redirectMatchType) {
452 452
                     // Do a straight up match
453 453
                     case 'exactmatch':
454
-                        if (strcasecmp($redirect['redirectSrcUrlParsed'], $url) === 0) {
454
+                        if (strcasecmp($redirect[ 'redirectSrcUrlParsed' ], $url) === 0) {
455 455
                             $this->incrementRedirectHitCount($redirect);
456 456
                             $this->saveRedirectToCache($url, $redirect);
457 457
 
@@ -475,15 +475,15 @@  discard block
 block discarded – undo
475 475
 
476 476
                     // Do a regex match
477 477
                     case 'regexmatch':
478
-                        $matchRegEx = '`'.$redirect['redirectSrcUrlParsed'].'`i';
478
+                        $matchRegEx = '`' . $redirect[ 'redirectSrcUrlParsed' ] . '`i';
479 479
                         try {
480 480
                             if (preg_match($matchRegEx, $url) === 1) {
481 481
                                 $this->incrementRedirectHitCount($redirect);
482 482
                                 // If we're not associated with an EntryID, handle capture group replacement
483
-                                if ((int)$redirect['associatedElementId'] === 0) {
484
-                                    $redirect['redirectDestUrl'] = preg_replace(
483
+                                if ((int) $redirect[ 'associatedElementId' ] === 0) {
484
+                                    $redirect[ 'redirectDestUrl' ] = preg_replace(
485 485
                                         $matchRegEx,
486
-                                        $redirect['redirectDestUrl'],
486
+                                        $redirect[ 'redirectDestUrl' ],
487 487
                                         $url
488 488
                                     );
489 489
                                 }
@@ -508,7 +508,7 @@  discard block
 block discarded – undo
508 508
                             }
509 509
                         } catch (\Exception $e) {
510 510
                             // That's fine
511
-                            Craft::error('Invalid Redirect Regex: '.$matchRegEx, __METHOD__);
511
+                            Craft::error('Invalid Redirect Regex: ' . $matchRegEx, __METHOD__);
512 512
                         }
513 513
 
514 514
                         break;
@@ -522,7 +522,7 @@  discard block
 block discarded – undo
522 522
                                     'redirect' => &$redirect,
523 523
                                 ],
524 524
                             ];
525
-                            $result = \call_user_func_array([$plugin, 'retourMatch'], $args);
525
+                            $result = \call_user_func_array([ $plugin, 'retourMatch' ], $args);
526 526
                             if ($result) {
527 527
                                 $this->incrementRedirectHitCount($redirect);
528 528
                                 $this->saveRedirectToCache($url, $redirect);
@@ -564,7 +564,7 @@  discard block
 block discarded – undo
564 564
             Craft::t(
565 565
                 'retour',
566 566
                 'Not handled-> full URL: {fullUrl}, path only: {pathOnly}',
567
-                ['fullUrl' => $fullUrl, 'pathOnly' => $pathOnly]
567
+                [ 'fullUrl' => $fullUrl, 'pathOnly' => $pathOnly ]
568 568
             ),
569 569
             __METHOD__
570 570
         );
@@ -591,8 +591,8 @@  discard block
 block discarded – undo
591 591
 
592 592
             if ($url !== null && $redirect !== null) {
593 593
                 // Save the modified redirect to the cache
594
-                $redirect['redirectDestUrl'] = $event->redirectDestUrl;
595
-                $redirect['redirectHttpCode'] = $event->redirectHttpCode;
594
+                $redirect[ 'redirectDestUrl' ] = $event->redirectDestUrl;
595
+                $redirect[ 'redirectHttpCode' ] = $event->redirectHttpCode;
596 596
                 $this->saveRedirectToCache($url, $redirect);
597 597
             }
598 598
         }
@@ -616,7 +616,7 @@  discard block
 block discarded – undo
616 616
         foreach (Craft::$app->getPlugins()->getAllPlugins() as $plugin) {
617 617
             /** @var Plugin $plugin */
618 618
             if (method_exists($plugin, 'retourMatch')) {
619
-                $result[$plugin->getHandle()] = $plugin->name.Craft::t('retour', ' Match');
619
+                $result[ $plugin->getHandle() ] = $plugin->name . Craft::t('retour', ' Match');
620 620
             }
621 621
         }
622 622
 
@@ -637,12 +637,12 @@  discard block
 block discarded – undo
637 637
         }
638 638
         // Query the db table
639 639
         $query = (new Query())
640
-            ->from(['{{%retour_static_redirects}}'])
640
+            ->from([ '{{%retour_static_redirects}}' ])
641 641
             ->orderBy('redirectMatchType ASC, redirectSrcMatch ASC, hitCount DESC');
642 642
         if ($siteId) {
643 643
             $query
644
-                ->where(['siteId' => $siteId])
645
-                ->orWhere(['siteId' => null]);
644
+                ->where([ 'siteId' => $siteId ])
645
+                ->orWhere([ 'siteId' => null ]);
646 646
         }
647 647
         if ($limit) {
648 648
             $query->limit($limit);
@@ -665,8 +665,8 @@  discard block
 block discarded – undo
665 665
     {
666 666
         // Query the db table
667 667
         $redirect = (new Query())
668
-            ->from(['{{%retour_static_redirects}}'])
669
-            ->where(['id' => $id])
668
+            ->from([ '{{%retour_static_redirects}}' ])
669
+            ->where([ 'id' => $id ])
670 670
             ->one();
671 671
 
672 672
         return $redirect;
@@ -684,16 +684,16 @@  discard block
 block discarded – undo
684 684
     {
685 685
         // Query the db table
686 686
         $query = (new Query())
687
-            ->from(['{{%retour_static_redirects}}'])
688
-            ->where(['redirectSrcUrl' => $redirectSrcUrl])
687
+            ->from([ '{{%retour_static_redirects}}' ])
688
+            ->where([ 'redirectSrcUrl' => $redirectSrcUrl ])
689 689
             ;
690 690
         if ($siteId) {
691 691
             $query
692
-                ->andWhere(['or', [
692
+                ->andWhere([ 'or', [
693 693
                     'siteId' => $siteId,
694 694
                 ], [
695 695
                     'siteId' => null,
696
-                ]]);
696
+                ] ]);
697 697
         }
698 698
         $redirect = $query->one();
699 699
 
@@ -735,13 +735,13 @@  discard block
 block discarded – undo
735 735
     {
736 736
         if ($redirectConfig !== null) {
737 737
             $db = Craft::$app->getDb();
738
-            $redirectConfig['hitCount']++;
739
-            $redirectConfig['hitLastTime'] = Db::prepareDateForDb(new \DateTime());
738
+            $redirectConfig[ 'hitCount' ]++;
739
+            $redirectConfig[ 'hitLastTime' ] = Db::prepareDateForDb(new \DateTime());
740 740
             Craft::debug(
741 741
                 Craft::t(
742 742
                     'retour',
743 743
                     'Incrementing statistics for: {redirect}',
744
-                    ['redirect' => print_r($redirectConfig, true)]
744
+                    [ 'redirect' => print_r($redirectConfig, true) ]
745 745
                 ),
746 746
                 __METHOD__
747 747
             );
@@ -750,14 +750,14 @@  discard block
 block discarded – undo
750 750
                 $rowsAffected = $db->createCommand()->update(
751 751
                     '{{%retour_static_redirects}}',
752 752
                     [
753
-                        'hitCount' => $redirectConfig['hitCount'],
754
-                        'hitLastTime' => $redirectConfig['hitLastTime'],
753
+                        'hitCount' => $redirectConfig[ 'hitCount' ],
754
+                        'hitLastTime' => $redirectConfig[ 'hitLastTime' ],
755 755
                     ],
756 756
                     [
757
-                        'id' => $redirectConfig['id'],
757
+                        'id' => $redirectConfig[ 'id' ],
758 758
                     ]
759 759
                 )->execute();
760
-                Craft::debug('Rows affected: '.$rowsAffected, __METHOD__);
760
+                Craft::debug('Rows affected: ' . $rowsAffected, __METHOD__);
761 761
             } catch (\Exception $e) {
762 762
                 Craft::error($e->getMessage(), __METHOD__);
763 763
             }
@@ -770,9 +770,9 @@  discard block
 block discarded – undo
770 770
     public function saveRedirect(array $redirectConfig)
771 771
     {
772 772
         // Handle URL encoded URLs by decoding them before saving them
773
-        if (isset($redirectConfig['redirectMatchType']) && $redirectConfig['redirectMatchType'] === 'exactmatch') {
774
-            $redirectConfig['redirectSrcUrl'] = urldecode($redirectConfig['redirectSrcUrl'] ?? '');
775
-            $redirectConfig['redirectSrcUrlParsed'] = urldecode($redirectConfig['redirectSrcUrlParsed'] ?? '');
773
+        if (isset($redirectConfig[ 'redirectMatchType' ]) && $redirectConfig[ 'redirectMatchType' ] === 'exactmatch') {
774
+            $redirectConfig[ 'redirectSrcUrl' ] = urldecode($redirectConfig[ 'redirectSrcUrl' ] ?? '');
775
+            $redirectConfig[ 'redirectSrcUrlParsed' ] = urldecode($redirectConfig[ 'redirectSrcUrlParsed' ] ?? '');
776 776
         }
777 777
         // Validate the model before saving it to the db
778 778
         $redirect = new StaticRedirectsModel($redirectConfig);
@@ -781,7 +781,7 @@  discard block
 block discarded – undo
781 781
                 Craft::t(
782 782
                     'retour',
783 783
                     'Error validating redirect {id}: {errors}',
784
-                    ['id' => $redirect->id, 'errors' => print_r($redirect->getErrors(), true)]
784
+                    [ 'id' => $redirect->id, 'errors' => print_r($redirect->getErrors(), true) ]
785 785
                 ),
786 786
                 __METHOD__
787 787
             );
@@ -791,33 +791,33 @@  discard block
 block discarded – undo
791 791
         // Get the validated model attributes and save them to the db
792 792
         $redirectConfig = $redirect->getAttributes();
793 793
         // 0 for a siteId needs to be converted to null
794
-        if (empty($redirectConfig['siteId']) || (int)$redirectConfig['siteId'] === 0) {
795
-            $redirectConfig['siteId'] = null;
794
+        if (empty($redirectConfig[ 'siteId' ]) || (int) $redirectConfig[ 'siteId' ] === 0) {
795
+            $redirectConfig[ 'siteId' ] = null;
796 796
         }
797 797
         // Throw an event to before saving the redirect
798 798
         $db = Craft::$app->getDb();
799 799
         // See if a redirect exists with this source URL already
800
-        if ((int)$redirectConfig['id'] === 0) {
800
+        if ((int) $redirectConfig[ 'id' ] === 0) {
801 801
             // Query the db table
802 802
             $redirect = (new Query())
803
-                ->from(['{{%retour_static_redirects}}'])
804
-                ->where(['redirectSrcUrlParsed' => $redirectConfig['redirectSrcUrlParsed']])
805
-                ->andWhere(['siteId' => $redirectConfig['siteId']])
803
+                ->from([ '{{%retour_static_redirects}}' ])
804
+                ->where([ 'redirectSrcUrlParsed' => $redirectConfig[ 'redirectSrcUrlParsed' ] ])
805
+                ->andWhere([ 'siteId' => $redirectConfig[ 'siteId' ] ])
806 806
                 ->one();
807 807
             // If it exists, update it rather than having duplicates
808 808
             if (!empty($redirect)) {
809
-                $redirectConfig['id'] = $redirect['id'];
809
+                $redirectConfig[ 'id' ] = $redirect[ 'id' ];
810 810
             }
811 811
         }
812 812
         // Trigger a 'beforeSaveRedirect' event
813
-        $isNew = (int)$redirectConfig['id'] === 0;
813
+        $isNew = (int) $redirectConfig[ 'id' ] === 0;
814 814
         $event = new RedirectEvent([
815 815
             'isNew' => $isNew,
816
-            'legacyUrl' => $redirectConfig['redirectSrcUrlParsed'],
817
-            'destinationUrl' => $redirectConfig['redirectDestUrl'],
818
-            'matchType' => $redirectConfig['redirectSrcMatch'],
819
-            'redirectType' => $redirectConfig['redirectHttpCode'],
820
-            'siteId' => $redirectConfig['siteId'],
816
+            'legacyUrl' => $redirectConfig[ 'redirectSrcUrlParsed' ],
817
+            'destinationUrl' => $redirectConfig[ 'redirectDestUrl' ],
818
+            'matchType' => $redirectConfig[ 'redirectSrcMatch' ],
819
+            'redirectType' => $redirectConfig[ 'redirectHttpCode' ],
820
+            'siteId' => $redirectConfig[ 'siteId' ],
821 821
         ]);
822 822
         $this->trigger(self::EVENT_BEFORE_SAVE_REDIRECT, $event);
823 823
         if (!$event->isValid) {
@@ -829,7 +829,7 @@  discard block
 block discarded – undo
829 829
                 Craft::t(
830 830
                     'retour',
831 831
                     'Updating existing redirect: {redirect}',
832
-                    ['redirect' => print_r($redirectConfig, true)]
832
+                    [ 'redirect' => print_r($redirectConfig, true) ]
833 833
                 ),
834 834
                 __METHOD__
835 835
             );
@@ -839,7 +839,7 @@  discard block
 block discarded – undo
839 839
                     '{{%retour_static_redirects}}',
840 840
                     $redirectConfig,
841 841
                     [
842
-                        'id' => $redirectConfig['id'],
842
+                        'id' => $redirectConfig[ 'id' ],
843 843
                     ]
844 844
                 )->execute();
845 845
             } catch (Exception $e) {
@@ -850,11 +850,11 @@  discard block
 block discarded – undo
850 850
                 Craft::t(
851 851
                     'retour',
852 852
                     'Creating new redirect: {redirect}',
853
-                    ['redirect' => print_r($redirectConfig, true)]
853
+                    [ 'redirect' => print_r($redirectConfig, true) ]
854 854
                 ),
855 855
                 __METHOD__
856 856
             );
857
-            unset($redirectConfig['id']);
857
+            unset($redirectConfig[ 'id' ]);
858 858
             // Create a new record
859 859
             try {
860 860
                 $db->createCommand()->insert(
@@ -867,15 +867,15 @@  discard block
 block discarded – undo
867 867
         }
868 868
         // To prevent redirect loops, see if any static redirects have our redirectDestUrl as their redirectSrcUrl
869 869
         $testRedirectConfig = $this->getRedirectByRedirectSrcUrl(
870
-            $redirectConfig['redirectDestUrl'],
871
-            $redirectConfig['siteId']
870
+            $redirectConfig[ 'redirectDestUrl' ],
871
+            $redirectConfig[ 'siteId' ]
872 872
         );
873 873
         if ($testRedirectConfig !== null) {
874 874
             Craft::debug(
875 875
                 Craft::t(
876 876
                     'retour',
877 877
                     'Deleting redirect to prevent a loop: {redirect}',
878
-                    ['redirect' => print_r($testRedirectConfig, true)]
878
+                    [ 'redirect' => print_r($testRedirectConfig, true) ]
879 879
                 ),
880 880
                 __METHOD__
881 881
             );
@@ -883,7 +883,7 @@  discard block
 block discarded – undo
883 883
             try {
884 884
                 $db->createCommand()->delete(
885 885
                     '{{%retour_static_redirects}}',
886
-                    ['id' => $testRedirectConfig['id']]
886
+                    [ 'id' => $testRedirectConfig[ 'id' ] ]
887 887
                 )->execute();
888 888
             } catch (Exception $e) {
889 889
                 Craft::error($e->getMessage(), __METHOD__);
@@ -926,17 +926,17 @@  discard block
 block discarded – undo
926 926
      */
927 927
     public function excludeUri($uri): bool
928 928
     {
929
-        $uri = '/'.ltrim($uri, '/');
929
+        $uri = '/' . ltrim($uri, '/');
930 930
         if (!empty(Retour::$settings->excludePatterns)) {
931 931
             foreach (Retour::$settings->excludePatterns as $excludePattern) {
932
-                $pattern = '`'.$excludePattern['pattern'].'`i';
932
+                $pattern = '`' . $excludePattern[ 'pattern' ] . '`i';
933 933
                 try {
934 934
                     if (preg_match($pattern, $uri) === 1) {
935 935
                         return true;
936 936
                     }
937 937
                 } catch (\Exception $e) {
938 938
                     // That's fine
939
-                    Craft::error('Invalid exclude URI Regex: '.$pattern, __METHOD__);
939
+                    Craft::error('Invalid exclude URI Regex: ' . $pattern, __METHOD__);
940 940
                 }
941 941
             }
942 942
         }
Please login to merge, or discard this patch.