Completed
Pull Request — master (#246)
by Viktor
01:45
created
tests/test-ao.php 1 patch
Spacing   +414 added lines, -414 removed lines patch added patch discarded remove patch
@@ -10,17 +10,17 @@  discard block
 block discarded – undo
10 10
     protected $ao;
11 11
 
12 12
     protected static $flexible_url_parts_js = [
13
-        'default'          => 'wp-content/cache/autoptimize/js/' . AUTOPTIMIZE_CACHEFILE_PREFIX,
14
-        'custom'           => 'wp-content/c/ao/js/' . AUTOPTIMIZE_CACHEFILE_PREFIX,
15
-        'multisite'        => 'wp-content/cache/autoptimize/1/js/' . AUTOPTIMIZE_CACHEFILE_PREFIX,
16
-        'multisite_custom' => 'wp-content/c/ao/1/js/' . AUTOPTIMIZE_CACHEFILE_PREFIX,
13
+        'default'          => 'wp-content/cache/autoptimize/js/'.AUTOPTIMIZE_CACHEFILE_PREFIX,
14
+        'custom'           => 'wp-content/c/ao/js/'.AUTOPTIMIZE_CACHEFILE_PREFIX,
15
+        'multisite'        => 'wp-content/cache/autoptimize/1/js/'.AUTOPTIMIZE_CACHEFILE_PREFIX,
16
+        'multisite_custom' => 'wp-content/c/ao/1/js/'.AUTOPTIMIZE_CACHEFILE_PREFIX,
17 17
     ];
18 18
 
19 19
     protected static $flexible_url_parts_css = [
20
-        'default'          => 'wp-content/cache/autoptimize/css/' . AUTOPTIMIZE_CACHEFILE_PREFIX,
21
-        'custom'           => 'wp-content/c/ao/css/' . AUTOPTIMIZE_CACHEFILE_PREFIX,
22
-        'multisite'        => 'wp-content/cache/autoptimize/1/css/' . AUTOPTIMIZE_CACHEFILE_PREFIX,
23
-        'multisite_custom' => 'wp-content/c/ao/1/css/' . AUTOPTIMIZE_CACHEFILE_PREFIX,
20
+        'default'          => 'wp-content/cache/autoptimize/css/'.AUTOPTIMIZE_CACHEFILE_PREFIX,
21
+        'custom'           => 'wp-content/c/ao/css/'.AUTOPTIMIZE_CACHEFILE_PREFIX,
22
+        'multisite'        => 'wp-content/cache/autoptimize/1/css/'.AUTOPTIMIZE_CACHEFILE_PREFIX,
23
+        'multisite_custom' => 'wp-content/c/ao/1/css/'.AUTOPTIMIZE_CACHEFILE_PREFIX,
24 24
     ];
25 25
 
26 26
     protected function getAoStylesDefaultOptions()
@@ -28,17 +28,17 @@  discard block
 block discarded – undo
28 28
         $conf = autoptimizeConfig::instance();
29 29
 
30 30
         return [
31
-            'aggregate'       => $conf->get( 'autoptimize_css_aggregate' ),
32
-            'justhead'        => $conf->get( 'autoptimize_css_justhead' ),
33
-            'datauris'        => $conf->get( 'autoptimize_css_datauris' ),
34
-            'defer'           => $conf->get( 'autoptimize_css_defer' ),
35
-            'defer_inline'    => $conf->get( 'autoptimize_css_defer_inline' ),
36
-            'inline'          => $conf->get( 'autoptimize_css_inline' ),
37
-            'css_exclude'     => $conf->get( 'autoptimize_css_exclude' ),
38
-            'cdn_url'         => $conf->get( 'autoptimize_cdn_url' ),
39
-            'include_inline'  => $conf->get( 'autoptimize_css_include_inline' ),
40
-            'nogooglefont'    => $conf->get( 'autoptimize_css_nogooglefont' ),
41
-            'minify_excluded' => $conf->get( 'autoptimize_minify_excluded' ),
31
+            'aggregate'       => $conf->get('autoptimize_css_aggregate'),
32
+            'justhead'        => $conf->get('autoptimize_css_justhead'),
33
+            'datauris'        => $conf->get('autoptimize_css_datauris'),
34
+            'defer'           => $conf->get('autoptimize_css_defer'),
35
+            'defer_inline'    => $conf->get('autoptimize_css_defer_inline'),
36
+            'inline'          => $conf->get('autoptimize_css_inline'),
37
+            'css_exclude'     => $conf->get('autoptimize_css_exclude'),
38
+            'cdn_url'         => $conf->get('autoptimize_cdn_url'),
39
+            'include_inline'  => $conf->get('autoptimize_css_include_inline'),
40
+            'nogooglefont'    => $conf->get('autoptimize_css_nogooglefont'),
41
+            'minify_excluded' => $conf->get('autoptimize_minify_excluded'),
42 42
         ];
43 43
     }
44 44
 
@@ -47,14 +47,14 @@  discard block
 block discarded – undo
47 47
         $conf = autoptimizeConfig::instance();
48 48
 
49 49
         return [
50
-            'aggregate'       => $conf->get( 'autoptimize_js_aggregate' ),
51
-            'justhead'        => $conf->get( 'autoptimize_js_justhead' ),
52
-            'forcehead'       => $conf->get( 'autoptimize_js_forcehead' ),
53
-            'trycatch'        => $conf->get( 'autoptimize_js_trycatch' ),
54
-            'js_exclude'      => $conf->get( 'autoptimize_js_exclude' ),
55
-            'cdn_url'         => $conf->get( 'autoptimize_cdn_url' ),
56
-            'include_inline'  => $conf->get( 'autoptimize_js_include_inline' ),
57
-            'minify_excluded' => $conf->get( 'autoptimize_minify_excluded' ),
50
+            'aggregate'       => $conf->get('autoptimize_js_aggregate'),
51
+            'justhead'        => $conf->get('autoptimize_js_justhead'),
52
+            'forcehead'       => $conf->get('autoptimize_js_forcehead'),
53
+            'trycatch'        => $conf->get('autoptimize_js_trycatch'),
54
+            'js_exclude'      => $conf->get('autoptimize_js_exclude'),
55
+            'cdn_url'         => $conf->get('autoptimize_cdn_url'),
56
+            'include_inline'  => $conf->get('autoptimize_js_include_inline'),
57
+            'minify_excluded' => $conf->get('autoptimize_minify_excluded'),
58 58
         ];
59 59
     }
60 60
 
@@ -64,35 +64,35 @@  discard block
 block discarded – undo
64 64
     protected function get_urls()
65 65
     {
66 66
         static $site_url = null;
67
-        if ( null === $site_url ) {
67
+        if (null === $site_url) {
68 68
             $site_url = site_url();
69 69
         }
70 70
 
71 71
         static $cdn_url = null;
72
-        if ( null === $cdn_url ) {
73
-            $cdn_url = get_option( 'autoptimize_cdn_url' );
72
+        if (null === $cdn_url) {
73
+            $cdn_url = get_option('autoptimize_cdn_url');
74 74
         }
75 75
 
76 76
         static $imgopt_host = null;
77
-        if ( null === $imgopt_host ) {
77
+        if (null === $imgopt_host) {
78 78
             $optimizer   = new autoptimizeImages();
79
-            $imgopt_host = rtrim( $optimizer->get_imgopt_host(), '/' );
79
+            $imgopt_host = rtrim($optimizer->get_imgopt_host(), '/');
80 80
         }
81 81
 
82 82
         static $urls = [];
83 83
 
84
-        if ( empty( $urls ) ) {
84
+        if (empty($urls)) {
85 85
             $parts = autoptimizeUtils::get_ao_wp_site_url_parts();
86 86
             $urls  = [
87 87
                 'siteurl'    => $site_url,
88
-                'prsiteurl'  => '//' . str_replace( array( 'http://', 'https://' ), '', $site_url ),
89
-                'wwwsiteurl' => $parts['scheme'] . '://www.' . str_replace( 'www.', '', $parts['host'] ),
88
+                'prsiteurl'  => '//'.str_replace(array('http://', 'https://'), '', $site_url),
89
+                'wwwsiteurl' => $parts['scheme'].'://www.'.str_replace('www.', '', $parts['host']),
90 90
                 'cdnurl'     => $cdn_url,
91 91
                 'imgopthost' => $imgopt_host,
92 92
                 'subfolder'  => '',
93 93
             ];
94 94
 
95
-            if ( AO_TEST_SUBFOLDER_INSTALL ) {
95
+            if (AO_TEST_SUBFOLDER_INSTALL) {
96 96
                 $urls['subfolder'] = 'wordpress/';
97 97
             }
98 98
         }
@@ -105,7 +105,7 @@  discard block
 block discarded – undo
105 105
      */
106 106
     public function setUp()
107 107
     {
108
-        $this->ao = new autoptimizeMain( AUTOPTIMIZE_PLUGIN_VERSION, AUTOPTIMIZE_PLUGIN_FILE );
108
+        $this->ao = new autoptimizeMain(AUTOPTIMIZE_PLUGIN_VERSION, AUTOPTIMIZE_PLUGIN_FILE);
109 109
 
110 110
         parent::setUp();
111 111
     }
@@ -124,8 +124,8 @@  discard block
 block discarded – undo
124 124
             'autoptimize_filter_css_inlinesize',
125 125
             'autoptimize_filter_css_fonts_cdn',
126 126
         );
127
-        foreach ( $filter_tags as $filter_tag ) {
128
-            remove_all_filters( $filter_tag );
127
+        foreach ($filter_tags as $filter_tag) {
128
+            remove_all_filters($filter_tag);
129 129
         }
130 130
 
131 131
         parent::tearDown();
@@ -249,15 +249,15 @@  discard block
 block discarded – undo
249 249
     protected function get_test_markup_output()
250 250
     {
251 251
         $key = 'default';
252
-        if ( defined( 'CUSTOM_CONSTANTS_USED' ) && CUSTOM_CONSTANTS_USED ) {
252
+        if (defined('CUSTOM_CONSTANTS_USED') && CUSTOM_CONSTANTS_USED) {
253 253
             $key = 'custom';
254 254
         }
255 255
 
256
-        $csspart = self::$flexible_url_parts_css[ $key ];
257
-        $jspart  = self::$flexible_url_parts_js[ $key ];
256
+        $csspart = self::$flexible_url_parts_css[$key];
257
+        $jspart  = self::$flexible_url_parts_js[$key];
258 258
 
259 259
         $csshash = '863f587e89f100b0223ddccc0dabc57a';
260
-        if ( AO_TEST_SUBFOLDER_INSTALL ) {
260
+        if (AO_TEST_SUBFOLDER_INSTALL) {
261 261
             $csshash = '56398de576d59887e88e3011715250e0';
262 262
         }
263 263
 
@@ -316,15 +316,15 @@  discard block
 block discarded – undo
316 316
     protected function get_test_markup_output_ms()
317 317
     {
318 318
         $key = 'multisite';
319
-        if ( defined( 'CUSTOM_CONSTANTS_USED' ) && CUSTOM_CONSTANTS_USED ) {
319
+        if (defined('CUSTOM_CONSTANTS_USED') && CUSTOM_CONSTANTS_USED) {
320 320
             $key = 'multisite_custom';
321 321
         }
322 322
 
323
-        $csspart = self::$flexible_url_parts_css[ $key ];
324
-        $jspart  = self::$flexible_url_parts_js[ $key ];
323
+        $csspart = self::$flexible_url_parts_css[$key];
324
+        $jspart  = self::$flexible_url_parts_js[$key];
325 325
 
326 326
         $csshash = '863f587e89f100b0223ddccc0dabc57a';
327
-        if ( AO_TEST_SUBFOLDER_INSTALL ) {
327
+        if (AO_TEST_SUBFOLDER_INSTALL) {
328 328
             $csshash = '56398de576d59887e88e3011715250e0';
329 329
         }
330 330
 
@@ -383,15 +383,15 @@  discard block
 block discarded – undo
383 383
     protected function get_test_markup_output_inline_defer()
384 384
     {
385 385
         $key = 'default';
386
-        if ( defined( 'CUSTOM_CONSTANTS_USED' ) && CUSTOM_CONSTANTS_USED ) {
386
+        if (defined('CUSTOM_CONSTANTS_USED') && CUSTOM_CONSTANTS_USED) {
387 387
             $key = 'custom';
388 388
         }
389 389
 
390
-        $csspart = self::$flexible_url_parts_css[ $key ];
391
-        $jspart  = self::$flexible_url_parts_js[ $key ];
390
+        $csspart = self::$flexible_url_parts_css[$key];
391
+        $jspart  = self::$flexible_url_parts_js[$key];
392 392
 
393 393
         $csshash = '863f587e89f100b0223ddccc0dabc57a';
394
-        if ( AO_TEST_SUBFOLDER_INSTALL ) {
394
+        if (AO_TEST_SUBFOLDER_INSTALL) {
395 395
             $csshash = '56398de576d59887e88e3011715250e0';
396 396
         }
397 397
 
@@ -450,15 +450,15 @@  discard block
 block discarded – undo
450 450
     protected function get_test_markup_output_inline_defer_ms()
451 451
     {
452 452
         $key = 'multisite';
453
-        if ( defined( 'CUSTOM_CONSTANTS_USED' ) && CUSTOM_CONSTANTS_USED ) {
453
+        if (defined('CUSTOM_CONSTANTS_USED') && CUSTOM_CONSTANTS_USED) {
454 454
             $key = 'multisite_custom';
455 455
         }
456 456
 
457
-        $csspart = self::$flexible_url_parts_css[ $key ];
458
-        $jspart  = self::$flexible_url_parts_js[ $key ];
457
+        $csspart = self::$flexible_url_parts_css[$key];
458
+        $jspart  = self::$flexible_url_parts_js[$key];
459 459
 
460 460
         $csshash = '863f587e89f100b0223ddccc0dabc57a';
461
-        if ( AO_TEST_SUBFOLDER_INSTALL ) {
461
+        if (AO_TEST_SUBFOLDER_INSTALL) {
462 462
             $csshash = '56398de576d59887e88e3011715250e0';
463 463
         }
464 464
 
@@ -517,11 +517,11 @@  discard block
 block discarded – undo
517 517
     /**
518 518
      * @dataProvider provider_test_rewrite_markup_with_cdn
519 519
      */
520
-    function test_rewrite_markup_with_cdn( $input, $expected )
520
+    function test_rewrite_markup_with_cdn($input, $expected)
521 521
     {
522
-        $actual = $this->ao->end_buffering( $input );
522
+        $actual = $this->ao->end_buffering($input);
523 523
 
524
-        $this->assertEquals( $expected, $actual );
524
+        $this->assertEquals($expected, $actual);
525 525
     }
526 526
 
527 527
     public function provider_test_rewrite_markup_with_cdn()
@@ -533,7 +533,7 @@  discard block
 block discarded – undo
533 533
                 $this->get_test_markup(),
534 534
                 // Expected output.
535 535
                 // TODO/FIXME: This seemed like the fastest way to get MS crude test to pass...
536
-                ( is_multisite() ? $this->get_test_markup_output_ms() : $this->get_test_markup_output() ),
536
+                (is_multisite() ? $this->get_test_markup_output_ms() : $this->get_test_markup_output()),
537 537
             ),
538 538
 
539 539
         );
@@ -593,12 +593,12 @@  discard block
 block discarded – undo
593 593
 }
594 594
 CSS;
595 595
 
596
-        $instance = new autoptimizeStyles( $css_in );
597
-        $instance->setOption( 'cdn_url', $cdnurl );
596
+        $instance = new autoptimizeStyles($css_in);
597
+        $instance->setOption('cdn_url', $cdnurl);
598 598
 
599
-        $css_actual = $instance->rewrite_assets( $css_in );
599
+        $css_actual = $instance->rewrite_assets($css_in);
600 600
 
601
-        $this->assertEquals( $css_expected, $css_actual );
601
+        $this->assertEquals($css_expected, $css_actual);
602 602
     }
603 603
 
604 604
     public function test_default_cssmin_minifier()
@@ -632,21 +632,21 @@  discard block
 block discarded – undo
632 632
 .bg{background:url('img/something.svg')}.bg-no-quote{background:url(img/something.svg)}.bg-double-quotes{background:url("img/something.svg")}.whitespaces{background:url ("../../somewhere-else/svg.svg")}.host-relative{background:url("/img/something.svg")}.protocol-relative{background:url("//something/somewhere/example.png")}@font-face{font-family:'Roboto';font-style:normal;font-weight:100;src:url(../fonts/roboto-v15-latin-ext_latin-100.eot);src:local('Roboto Thin'),local('Roboto-Thin'),url(../fonts/roboto-v15-latin-ext_latin-100.eot?#iefix) format('embedded-opentype'),url(../fonts/roboto-v15-latin-ext_latin-100.woff2) format('woff2'),url(../fonts/roboto-v15-latin-ext_latin-100.woff) format('woff'),url(../fonts/roboto-v15-latin-ext_latin-100.ttf) format('truetype'),url(../fonts/roboto-v15-latin-ext_latin-100.svg#Roboto) format('svg')}
633 633
 CSS;
634 634
 
635
-        $instance = new autoptimizeStyles( $css );
636
-        $minified = $instance->run_minifier_on( $css );
635
+        $instance = new autoptimizeStyles($css);
636
+        $minified = $instance->run_minifier_on($css);
637 637
 
638
-        $this->assertEquals( $expected, $minified );
638
+        $this->assertEquals($expected, $minified);
639 639
     }
640 640
 
641 641
     /**
642 642
      * @dataProvider provider_test_should_aggregate_script_types
643 643
      */
644
-    public function test_should_aggregate_script_types( $input, $expected )
644
+    public function test_should_aggregate_script_types($input, $expected)
645 645
     {
646
-        $instance = new autoptimizeScripts( '' );
647
-        $actual   = $instance->should_aggregate( $input );
646
+        $instance = new autoptimizeScripts('');
647
+        $actual   = $instance->should_aggregate($input);
648 648
 
649
-        $this->assertEquals( $expected, $actual );
649
+        $this->assertEquals($expected, $actual);
650 650
     }
651 651
 
652 652
     public function provider_test_should_aggregate_script_types()
@@ -708,11 +708,11 @@  discard block
 block discarded – undo
708 708
     /**
709 709
      * @dataProvider provider_is_valid_buffer
710 710
      */
711
-    public function test_valid_buffers( $input, $expected )
711
+    public function test_valid_buffers($input, $expected)
712 712
     {
713
-        $actual = $this->ao->is_valid_buffer( $input );
713
+        $actual = $this->ao->is_valid_buffer($input);
714 714
 
715
-        $this->assertEquals( $expected, $actual );
715
+        $this->assertEquals($expected, $actual);
716 716
     }
717 717
 
718 718
     public function provider_is_valid_buffer()
@@ -774,11 +774,11 @@  discard block
 block discarded – undo
774 774
     /**
775 775
      * @dataProvider provider_is_amp_markup
776 776
      */
777
-    public function test_autoptimize_is_amp_markup( $input, $expected )
777
+    public function test_autoptimize_is_amp_markup($input, $expected)
778 778
     {
779
-        $actual = autoptimizeMain::is_amp_markup( $input );
779
+        $actual = autoptimizeMain::is_amp_markup($input);
780 780
 
781
-        $this->assertEquals( $expected, $actual );
781
+        $this->assertEquals($expected, $actual);
782 782
     }
783 783
 
784 784
     public function provider_is_amp_markup()
@@ -809,31 +809,31 @@  discard block
 block discarded – undo
809 809
     public function test_skips_buffering_when_ao_noptimize_filter_is_true()
810 810
     {
811 811
         // True => disable autoptimize.
812
-        add_filter( 'autoptimize_filter_noptimize', '__return_true' );
812
+        add_filter('autoptimize_filter_noptimize', '__return_true');
813 813
 
814 814
         // Buffering should not run due to the above filter.
815 815
         $expected = false;
816
-        $actual   = $this->ao->should_buffer( $doing_tests = true );
816
+        $actual   = $this->ao->should_buffer($doing_tests = true);
817 817
 
818
-        $this->assertEquals( $expected, $actual );
818
+        $this->assertEquals($expected, $actual);
819 819
     }
820 820
 
821 821
     public function test_does_buffering_when_ao_noptimize_filter_is_false()
822 822
     {
823 823
         // False => disable noptimize, aka, run normally (weird, yes...).
824
-        add_filter( 'autoptimize_filter_noptimize', '__return_false' );
824
+        add_filter('autoptimize_filter_noptimize', '__return_false');
825 825
 
826 826
         // Buffering should run because of above.
827 827
         $expected = true;
828
-        $actual   = $this->ao->should_buffer( $doing_tests = true );
828
+        $actual   = $this->ao->should_buffer($doing_tests = true);
829 829
 
830
-        $this->assertEquals( $expected, $actual );
830
+        $this->assertEquals($expected, $actual);
831 831
     }
832 832
 
833 833
     public function test_ignores_ao_noptimize_qs_when_instructed()
834 834
     {
835 835
         // Should skip checking for the qs completely due to filter.
836
-        add_filter( 'autoptimize_filter_honor_qs_noptimize', '__return_false' );
836
+        add_filter('autoptimize_filter_honor_qs_noptimize', '__return_false');
837 837
 
838 838
         /**
839 839
          * The above should then result in the "current" value being `false`
@@ -844,23 +844,23 @@  discard block
 block discarded – undo
844 844
          */
845 845
 
846 846
         $that = $this; // Makes it work on php 5.3!
847
-        add_filter( 'autoptimize_filter_noptimize', function ( $current_value ) use ( $that ) {
847
+        add_filter('autoptimize_filter_noptimize', function($current_value) use ($that) {
848 848
             $expected = false;
849
-            if ( defined( 'DONOTMINIFY' ) && DONOTMINIFY ) {
849
+            if (defined('DONOTMINIFY') && DONOTMINIFY) {
850 850
                 $expected = true;
851 851
             }
852 852
 
853
-            $that->assertEquals( $expected, $current_value );
853
+            $that->assertEquals($expected, $current_value);
854 854
         });
855 855
 
856
-        $this->ao->should_buffer( $doing_tests = true );
856
+        $this->ao->should_buffer($doing_tests = true);
857 857
     }
858 858
 
859 859
     public function test_wpengine_cache_flush()
860 860
     {
861 861
         // Creating a mock so that we can get past class_exists() and method_exists() checks present
862 862
         // in `autoptimizeCache::flushPageCache()`...
863
-        $stub = $this->getMockBuilder( 'WpeCommon' )->disableAutoload()
863
+        $stub = $this->getMockBuilder('WpeCommon')->disableAutoload()
864 864
                 ->disableOriginalConstructor()->setMethods(
865 865
                     array(
866 866
                         'purge_varnish_cache',
@@ -869,9 +869,9 @@  discard block
 block discarded – undo
869 869
                 ->getMock();
870 870
 
871 871
         $that = $this;
872
-        add_filter( 'autoptimize_flush_wpengine_methods', function( $methods ) use ( $that ) {
873
-            $expected_methods = array( 'purge_varnish_cache' );
874
-            $that->assertEquals( $methods, $expected_methods );
872
+        add_filter('autoptimize_flush_wpengine_methods', function($methods) use ($that) {
873
+            $expected_methods = array('purge_varnish_cache');
874
+            $that->assertEquals($methods, $expected_methods);
875 875
 
876 876
             return $methods;
877 877
         });
@@ -885,7 +885,7 @@  discard block
 block discarded – undo
885 885
     public function test_wpengine_cache_flush_agressive()
886 886
     {
887 887
         // Creating a mock so that we can get past class_exists() and method_exists() checks `autoptimize_flush_pagecache()`...
888
-        $stub = $this->getMockBuilder( 'WpeCommon' )->disableAutoload()
888
+        $stub = $this->getMockBuilder('WpeCommon')->disableAutoload()
889 889
                 ->disableOriginalConstructor()->setMethods(
890 890
                     array(
891 891
                         'purge_varnish_cache',
@@ -895,19 +895,19 @@  discard block
 block discarded – undo
895 895
                 )
896 896
                 ->getMock();
897 897
 
898
-        add_filter( 'autoptimize_flush_wpengine_aggressive', function() {
898
+        add_filter('autoptimize_flush_wpengine_aggressive', function() {
899 899
             return true;
900 900
         });
901 901
 
902 902
         $that = $this;
903
-        add_filter( 'autoptimize_flush_wpengine_methods', function( $methods ) use ( $that ) {
903
+        add_filter('autoptimize_flush_wpengine_methods', function($methods) use ($that) {
904 904
             $expected_methods = array(
905 905
                 'purge_varnish_cache',
906 906
                 'purge_memcached',
907 907
                 'clear_maxcdn_cache',
908 908
             );
909 909
 
910
-            $that->assertEquals( $methods, $expected_methods );
910
+            $that->assertEquals($methods, $expected_methods);
911 911
 
912 912
             return $methods;
913 913
         });
@@ -918,15 +918,15 @@  discard block
 block discarded – undo
918 918
     /**
919 919
      * @dataProvider provider_test_url_replace_cdn
920 920
      */
921
-    public function test_url_replace_cdn( $cdn_url, $input, $expected )
921
+    public function test_url_replace_cdn($cdn_url, $input, $expected)
922 922
     {
923
-        $mock = $this->getMockBuilder( 'autoptimizeBase' )
923
+        $mock = $this->getMockBuilder('autoptimizeBase')
924 924
                 ->disableOriginalConstructor()
925 925
                 ->getMockForAbstractClass();
926 926
 
927 927
         $mock->cdn_url = $cdn_url;
928
-        $actual        = $mock->url_replace_cdn( $input );
929
-        $this->assertEquals( $expected, $actual );
928
+        $actual        = $mock->url_replace_cdn($input);
929
+        $this->assertEquals($expected, $actual);
930 930
     }
931 931
 
932 932
     public function provider_test_url_replace_cdn()
@@ -943,13 +943,13 @@  discard block
 block discarded – undo
943 943
                 // CDN base url, url, expected result...
944 944
                 'http://cdn-test.example.org',
945 945
                 '/a.jpg',
946
-                'http://cdn-test.example.org/' . $subfolder . 'a.jpg',
946
+                'http://cdn-test.example.org/'.$subfolder.'a.jpg',
947 947
             ),
948 948
             // Full link with a matching AUTOPTIMIZE_WP_SITE_URL gets properly replaced...
949 949
             array(
950 950
                 'http://cdn-test.example.org',
951
-                $siteurl . '/wp-content/themes/something/example.svg',
952
-                'http://cdn-test.example.org/' . $subfolder . 'wp-content/themes/something/example.svg',
951
+                $siteurl.'/wp-content/themes/something/example.svg',
952
+                'http://cdn-test.example.org/'.$subfolder.'wp-content/themes/something/example.svg',
953 953
             ),
954 954
             // Protocol-relative url with a "local" hostname that doesn't match example.org (AUTOPTIMIZE_WP_SITE_URL)...
955 955
             array(
@@ -960,59 +960,59 @@  discard block
 block discarded – undo
960 960
             // www.example.org does not match example.org (AUTOPTIMIZE_WP_SITE_URL) so it's left alone...
961 961
             array(
962 962
                 'http://cdn-test.example.org',
963
-                $wwwsiteurl . '/wp-content/themes/something/example.svg',
964
-                $wwwsiteurl . '/wp-content/themes/something/example.svg',
963
+                $wwwsiteurl.'/wp-content/themes/something/example.svg',
964
+                $wwwsiteurl.'/wp-content/themes/something/example.svg',
965 965
             ),
966 966
             // SSL cdn url + host-relative link...
967 967
             array(
968 968
                 'https://cdn.example.org',
969 969
                 '/a.jpg',
970
-                'https://cdn.example.org/' . $subfolder . 'a.jpg',
970
+                'https://cdn.example.org/'.$subfolder.'a.jpg',
971 971
             ),
972 972
             // SSL cdn url + http site url that matches AUTOPTIMIZE_WP_SITE_URL is properly replaced...
973 973
             array(
974 974
                 'https://cdn.example.org',
975
-                $siteurl . '/wp-content/themes/something/example.svg',
976
-                'https://cdn.example.org/' . $subfolder . 'wp-content/themes/something/example.svg',
975
+                $siteurl.'/wp-content/themes/something/example.svg',
976
+                'https://cdn.example.org/'.$subfolder.'wp-content/themes/something/example.svg',
977 977
             ),
978 978
             // Protocol-relative cdn url given with protocol relative link that matches AUTOPTIMIZE_WP_SITE_URL host...
979 979
             array(
980 980
                 '//cdn.example.org',
981
-                $protorelativesiteurl . '/something.jpg',
982
-                '//cdn.example.org/' . $subfolder . 'something.jpg',
981
+                $protorelativesiteurl.'/something.jpg',
982
+                '//cdn.example.org/'.$subfolder.'something.jpg',
983 983
             ),
984 984
             // Protocol-relative cdn url given a http link that matches AUTOPTIMIZE_WP_SITE_URL host...
985 985
             array(
986 986
                 '//cdn.example.org',
987
-                $siteurl . '/something.png',
988
-                '//cdn.example.org/' . $subfolder . 'something.png',
987
+                $siteurl.'/something.png',
988
+                '//cdn.example.org/'.$subfolder.'something.png',
989 989
             ),
990 990
             // Protocol-relative cdn url with a host-relative link...
991 991
             array(
992 992
                 '//cdn.example.org',
993 993
                 '/a.jpg',
994
-                '//cdn.example.org/' . $subfolder . 'a.jpg',
994
+                '//cdn.example.org/'.$subfolder.'a.jpg',
995 995
             ),
996 996
             // Testing cdn urls with an explicit port number...
997 997
             array(
998 998
                 'http://cdn.com:8080',
999 999
                 '/a.jpg',
1000
-                'http://cdn.com:8080/' . $subfolder . 'a.jpg',
1000
+                'http://cdn.com:8080/'.$subfolder.'a.jpg',
1001 1001
             ),
1002 1002
             array(
1003 1003
                 '//cdn.com:4433',
1004 1004
                 '/a.jpg',
1005
-                '//cdn.com:4433/' . $subfolder . 'a.jpg',
1005
+                '//cdn.com:4433/'.$subfolder.'a.jpg',
1006 1006
             ),
1007 1007
             array(
1008 1008
                 '//cdn.com:4433',
1009
-                $siteurl . '/something.jpg',
1010
-                '//cdn.com:4433/' . $subfolder . 'something.jpg',
1009
+                $siteurl.'/something.jpg',
1010
+                '//cdn.com:4433/'.$subfolder.'something.jpg',
1011 1011
             ),
1012 1012
             array(
1013 1013
                 '//cdn.com:1234',
1014
-                $protorelativesiteurl . '/something.jpg',
1015
-                '//cdn.com:1234/' . $subfolder . 'something.jpg',
1014
+                $protorelativesiteurl.'/something.jpg',
1015
+                '//cdn.com:1234/'.$subfolder.'something.jpg',
1016 1016
             ),
1017 1017
             // Relative links should not be touched by url_replace_cdn()...
1018 1018
             array(
@@ -1037,8 +1037,8 @@  discard block
 block discarded – undo
1037 1037
             // even though they are really strange...
1038 1038
             array(
1039 1039
                 $siteurl, // example.org or http://localhost or http://localhost/wordpress
1040
-                $siteurl . '/something.jpg',
1041
-                $siteurl . '/something.jpg',
1040
+                $siteurl.'/something.jpg',
1041
+                $siteurl.'/something.jpg',
1042 1042
             ),
1043 1043
             // These shouldn't really be changed, or even if replacements do
1044 1044
             // happen, they shouldn't be destructive...
@@ -1077,31 +1077,31 @@  discard block
 block discarded – undo
1077 1077
         $test_link = '/a.jpg';
1078 1078
         $cdn_url   = '//cdn.example.org';
1079 1079
 
1080
-        $with_ssl = function( $cdn ) {
1080
+        $with_ssl = function($cdn) {
1081 1081
             return '';
1082 1082
         };
1083 1083
         $expected_with_ssl = '/a.jpg';
1084 1084
 
1085
-        $without_ssl = function( $cdn ) {
1085
+        $without_ssl = function($cdn) {
1086 1086
             return $cdn;
1087 1087
         };
1088
-        $expected_without_ssl = '//cdn.example.org/' . $sub . 'a.jpg';
1088
+        $expected_without_ssl = '//cdn.example.org/'.$sub.'a.jpg';
1089 1089
 
1090 1090
         // With a filter that returns something considered "empty", cdn replacement shouldn't occur...
1091
-        add_filter( 'autoptimize_filter_base_cdnurl', $with_ssl );
1092
-        $mock = $this->getMockBuilder( 'autoptimizeBase' )
1091
+        add_filter('autoptimize_filter_base_cdnurl', $with_ssl);
1092
+        $mock = $this->getMockBuilder('autoptimizeBase')
1093 1093
                 ->disableOriginalConstructor()
1094 1094
                 ->getMockForAbstractClass();
1095 1095
 
1096 1096
         $mock->cdn_url   = $cdn_url;
1097
-        $actual_with_ssl = $mock->url_replace_cdn( $test_link );
1098
-        $this->assertEquals( $expected_with_ssl, $actual_with_ssl );
1099
-        remove_filter( 'autoptimize_filter_base_cdnurl', $with_ssl );
1097
+        $actual_with_ssl = $mock->url_replace_cdn($test_link);
1098
+        $this->assertEquals($expected_with_ssl, $actual_with_ssl);
1099
+        remove_filter('autoptimize_filter_base_cdnurl', $with_ssl);
1100 1100
 
1101 1101
         // With a filter that returns an actual cdn url, cdn replacement should occur.
1102
-        add_filter( 'autoptimize_filter_base_cdnurl', $without_ssl );
1103
-        $actual_without_ssl = $mock->url_replace_cdn( $test_link );
1104
-        $this->assertEquals( $expected_without_ssl, $actual_without_ssl );
1102
+        add_filter('autoptimize_filter_base_cdnurl', $without_ssl);
1103
+        $actual_without_ssl = $mock->url_replace_cdn($test_link);
1104
+        $this->assertEquals($expected_without_ssl, $actual_without_ssl);
1105 1105
     }
1106 1106
 
1107 1107
     public function provider_cssmin_issues()
@@ -1140,11 +1140,11 @@  discard block
 block discarded – undo
1140 1140
     /**
1141 1141
      * @dataProvider provider_cssmin_issues
1142 1142
      */
1143
-    public function test_cssmin_issues( $input, $expected )
1143
+    public function test_cssmin_issues($input, $expected)
1144 1144
     {
1145
-        $minifier = new autoptimizeCSSmin( false ); // No need to raise limits for now.
1146
-        $actual   = $minifier->run( $input );
1147
-        $this->assertEquals( $expected, $actual );
1145
+        $minifier = new autoptimizeCSSmin(false); // No need to raise limits for now.
1146
+        $actual   = $minifier->run($input);
1147
+        $this->assertEquals($expected, $actual);
1148 1148
     }
1149 1149
 
1150 1150
     public function provider_getpath()
@@ -1169,7 +1169,7 @@  discard block
 block discarded – undo
1169 1169
             // This file comes with core, so should exist...
1170 1170
             array(
1171 1171
                 '/wp-includes/js/jquery/jquery.js',
1172
-                WP_ROOT_DIR . '/wp-includes/js/jquery/jquery.js',
1172
+                WP_ROOT_DIR.'/wp-includes/js/jquery/jquery.js',
1173 1173
             ),
1174 1174
             // Empty $url should return false.
1175 1175
             array(
@@ -1194,12 +1194,12 @@  discard block
 block discarded – undo
1194 1194
     /**
1195 1195
      * @dataProvider provider_getpath
1196 1196
      */
1197
-    public function test_getpath( $input, $expected )
1197
+    public function test_getpath($input, $expected)
1198 1198
     {
1199
-        $mock = $this->getMockBuilder( 'autoptimizeBase' )->disableOriginalConstructor()->getMockForAbstractClass();
1199
+        $mock = $this->getMockBuilder('autoptimizeBase')->disableOriginalConstructor()->getMockForAbstractClass();
1200 1200
 
1201
-        $actual = $mock->getpath( $input );
1202
-        $this->assertEquals( $expected, $actual );
1201
+        $actual = $mock->getpath($input);
1202
+        $this->assertEquals($expected, $actual);
1203 1203
     }
1204 1204
 
1205 1205
     /**
@@ -1213,7 +1213,7 @@  discard block
 block discarded – undo
1213 1213
 
1214 1214
         $protorelativesiteurl = $urls['prsiteurl'];
1215 1215
 
1216
-        $css_orig     = <<<CSS
1216
+        $css_orig = <<<CSS
1217 1217
 header{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90px' height='110px' viewBox='0 0 90 110'%3E%3Cstyle%3E.a%7Bstop-color:%23FFF;%7D.b%7Bstop-color:%23B2D235;%7D.c%7Bstop-color:%23BEE7FA;%7D.d%7Bfill:%23590C15;%7D%3C/style%3E%3ClinearGradient id='c' y2='135.4' gradientUnits='userSpaceOnUse' x2='209.1' gradientTransform='rotate(-1.467 -4082.888 7786.794)' y1='205.8' x1='262'%3E%3Cstop class='b' offset='0'/%3E%3Cstop class='b' offset='.48'/%3E%3Cstop stop-color='%23829D25' offset='1'/%3E%3C/linearGradient%3E%3Cpath stroke-width='.3' d='M77.3 45.4c-3-3.5-7.1-6.5-11.6-7.8-5.1-1.5-10-.1-14.9 1.5C52 35.4 54.3 29 60 24l-4.8-5.5c-3.4 3-5.8 6.3-7.5 9.4-1.7-4.3-4.1-8.4-7.5-12C33.4 8.6 24.3 4.7 15.1 4.2c-.2 9.3 3.1 18.6 9.9 25.9 5.2 5.6 11.8 9.2 18.7 10.8-2.5.2-4.9-.1-7.7-.9-5.2-1.4-10.5-2.8-15.8-1C10.6 42.3 4.5 51.9 4 61.7c-.5 11.6 3.8 23.8 9.9 33.5 3.9 6.3 9.6 13.7 17.7 13.4 3.8-.1 7-2.1 10.7-2.7 5.2-.8 9.1 1.2 14.1 1.8 16.4 2 24.4-23.6 26.4-35.9 1.2-9.1.8-19.1-5.5-26.4z' stroke='%233E6D1F' fill='url(%23c)'/%3E%3C/svg%3E")}
1218 1218
 section.clipped.clippedTop {clip-path:url("#clipPolygonTop")}
1219 1219
 section.clipped.clippedBottom {clip-path:url("#clipPolygonBottom")}
@@ -1226,13 +1226,13 @@  discard block
 block discarded – undo
1226 1226
 .myimg {background-image: url($protorelativesiteurl/wp-content/themes/my-theme/images/under-left-leaf.png), url($protorelativesiteurl/wp-content/themes/my-theme/images/over-blue-bird.png), url($protorelativesiteurl/wp-content/themes/my-theme/images/under-top.png), url($protorelativesiteurl/wp-content/themes/my-theme/images/bg-top-grunge.png);}
1227 1227
 CSS;
1228 1228
 
1229
-        $fixurls_result = autoptimizeStyles::fixurls( ABSPATH . 'wp-content/themes/my-theme/style.css', $css_orig );
1230
-        $this->assertEquals( $css_expected, $fixurls_result );
1229
+        $fixurls_result = autoptimizeStyles::fixurls(ABSPATH.'wp-content/themes/my-theme/style.css', $css_orig);
1230
+        $this->assertEquals($css_expected, $fixurls_result);
1231 1231
     }
1232 1232
 
1233 1233
     public function test_background_datauri_sprites_with_fixurls()
1234 1234
     {
1235
-        $css_orig     = <<<CSS
1235
+        $css_orig = <<<CSS
1236 1236
 .shadow { background:url(img/1x1.png) top center; }
1237 1237
 .shadow1 { background-image:url(img/1x1.png) 0 -767px repeat-x; }
1238 1238
 .shadow2 {background:url(img/1x1.png) top center}
@@ -1284,27 +1284,27 @@  discard block
 block discarded – undo
1284 1284
 CSS;
1285 1285
 
1286 1286
         // For test purposes, ALL images in the css are being inline with a 1x1 trans png string/datauri.
1287
-        add_filter( 'autoptimize_filter_css_is_datauri_candidate', function( $is_candidate, $path ) {
1287
+        add_filter('autoptimize_filter_css_is_datauri_candidate', function($is_candidate, $path) {
1288 1288
             return true;
1289
-        }, 10, 2 );
1289
+        }, 10, 2);
1290 1290
 
1291 1291
         // For test purposes, ALL images in the css are being inline with a 1x1 trans png string/datauri.
1292
-        add_filter( 'autoptimize_filter_css_datauri_image', function( $base64array, $path ) {
1292
+        add_filter('autoptimize_filter_css_datauri_image', function($base64array, $path) {
1293 1293
             $head = 'data:image/png;base64,';
1294 1294
             $data = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';
1295 1295
 
1296
-            $result['full']       = $head . $data;
1296
+            $result['full']       = $head.$data;
1297 1297
             $result['base64data'] = $data;
1298 1298
             return $result;
1299
-        }, 10, 2 );
1299
+        }, 10, 2);
1300 1300
 
1301
-        $instance = new autoptimizeStyles( $css_orig );
1302
-        $instance->setOption( 'datauris', true );
1301
+        $instance = new autoptimizeStyles($css_orig);
1302
+        $instance->setOption('datauris', true);
1303 1303
 
1304
-        $fixurls_result = autoptimizeStyles::fixurls( ABSPATH . 'wp-content/themes/my-theme/style.css', $css_orig );
1305
-        $css_actual     = $instance->rewrite_assets( $fixurls_result );
1304
+        $fixurls_result = autoptimizeStyles::fixurls(ABSPATH.'wp-content/themes/my-theme/style.css', $css_orig);
1305
+        $css_actual     = $instance->rewrite_assets($fixurls_result);
1306 1306
 
1307
-        $this->assertEquals( $css_expected, $css_actual );
1307
+        $this->assertEquals($css_expected, $css_actual);
1308 1308
     }
1309 1309
 
1310 1310
     /**
@@ -1324,7 +1324,7 @@  discard block
 block discarded – undo
1324 1324
      */
1325 1325
     public function test_background_datauri_sprites_without_fixurls()
1326 1326
     {
1327
-        $css_orig     = <<<CSS
1327
+        $css_orig = <<<CSS
1328 1328
 .shadow { background:url(img/1x1.png) top center; }
1329 1329
 .shadow1 { background-image:url(img/1x1.png) 0 -767px repeat-x; }
1330 1330
 .shadow2 {background:url(img/1x1.png) top center}
@@ -1368,24 +1368,24 @@  discard block
 block discarded – undo
1368 1368
 CSS;
1369 1369
 
1370 1370
         // For test purposes, ALL images in the css are being inlined with a 1x1 trans png string/datauri.
1371
-        add_filter( 'autoptimize_filter_css_is_datauri_candidate', function( $is_candidate, $path ) {
1371
+        add_filter('autoptimize_filter_css_is_datauri_candidate', function($is_candidate, $path) {
1372 1372
             return true;
1373
-        }, 10, 2 );
1373
+        }, 10, 2);
1374 1374
 
1375 1375
         // For test purposes, ALL images in the css are being inlined with a 1x1 trans png string/datauri.
1376
-        add_filter( 'autoptimize_filter_css_datauri_image', function( $base64array, $path ) {
1376
+        add_filter('autoptimize_filter_css_datauri_image', function($base64array, $path) {
1377 1377
             $head = 'data:image/png;base64,';
1378 1378
             $data = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';
1379 1379
 
1380
-            $result['full']       = $head . $data;
1380
+            $result['full']       = $head.$data;
1381 1381
             $result['base64data'] = $data;
1382 1382
             return $result;
1383
-        }, 10, 2 );
1383
+        }, 10, 2);
1384 1384
 
1385
-        $instance = new autoptimizeStyles( $css_orig );
1386
-        $instance->setOption( 'datauris', true );
1387
-        $css_actual = $instance->rewrite_assets( $css_orig );
1388
-        $this->assertEquals( $css_expected, $css_actual );
1385
+        $instance = new autoptimizeStyles($css_orig);
1386
+        $instance->setOption('datauris', true);
1387
+        $css_actual = $instance->rewrite_assets($css_orig);
1388
+        $this->assertEquals($css_expected, $css_actual);
1389 1389
     }
1390 1390
 
1391 1391
     /**
@@ -1505,12 +1505,12 @@  discard block
 block discarded – undo
1505 1505
 CSS;
1506 1506
 
1507 1507
         // Test with fonts pointed to the CDN + cdn option is set.
1508
-        add_filter( 'autoptimize_filter_css_fonts_cdn', '__return_true' );
1509
-        $instance = new autoptimizeStyles( $css_in );
1510
-        $instance->setOption( 'cdn_url', $cdnurl );
1511
-        $css_actual_fonts_cdn = $instance->rewrite_assets( $css_in );
1508
+        add_filter('autoptimize_filter_css_fonts_cdn', '__return_true');
1509
+        $instance = new autoptimizeStyles($css_in);
1510
+        $instance->setOption('cdn_url', $cdnurl);
1511
+        $css_actual_fonts_cdn = $instance->rewrite_assets($css_in);
1512 1512
 
1513
-        $this->assertEquals( $css_expected_fonts_cdn, $css_actual_fonts_cdn );
1513
+        $this->assertEquals($css_expected_fonts_cdn, $css_actual_fonts_cdn);
1514 1514
     }
1515 1515
 
1516 1516
     /**
@@ -1626,10 +1626,10 @@  discard block
 block discarded – undo
1626 1626
 }
1627 1627
 CSS;
1628 1628
         // Test without moving fonts to CDN, but cdn option is set.
1629
-        $instance = new autoptimizeStyles( $css_in );
1630
-        $instance->setOption( 'cdn_url', $urls['cdnurl'] );
1631
-        $css_actual = $instance->rewrite_assets( $css_in );
1632
-        $this->assertEquals( $css_expected, $css_actual );
1629
+        $instance = new autoptimizeStyles($css_in);
1630
+        $instance->setOption('cdn_url', $urls['cdnurl']);
1631
+        $css_actual = $instance->rewrite_assets($css_in);
1632
+        $this->assertEquals($css_expected, $css_actual);
1633 1633
     }
1634 1634
 
1635 1635
     public function test_assets_regex_replaces_multi_bg_images()
@@ -1650,16 +1650,16 @@  discard block
 block discarded – undo
1650 1650
 }
1651 1651
 CSS;
1652 1652
 
1653
-        $instance = new autoptimizeStyles( $in );
1654
-        $instance->setOption( 'cdn_url', $cdnurl );
1655
-        $actual = $instance->rewrite_assets( $in );
1653
+        $instance = new autoptimizeStyles($in);
1654
+        $instance->setOption('cdn_url', $cdnurl);
1655
+        $actual = $instance->rewrite_assets($in);
1656 1656
 
1657
-        $this->assertEquals( $expected, $actual );
1657
+        $this->assertEquals($expected, $actual);
1658 1658
     }
1659 1659
 
1660 1660
     public function test_at_supports_spacing_issue_110()
1661 1661
     {
1662
-        $in       = <<<CSS
1662
+        $in = <<<CSS
1663 1663
 @supports (-webkit-filter: blur(3px)) or (filter: blur(3px)) {
1664 1664
     .blur {
1665 1665
         filter:blur(3px);
@@ -1673,10 +1673,10 @@  discard block
 block discarded – undo
1673 1673
 @supports (-webkit-filter:blur(3px)) or (filter:blur(3px)){.blur{filter:blur(3px)}}@supports((position:-webkit-sticky) or (position:sticky)){.sticky{position:sticky}}
1674 1674
 CSS;
1675 1675
 
1676
-        $instance = new autoptimizeStyles( $in );
1677
-        $actual   = $instance->run_minifier_on( $in );
1676
+        $instance = new autoptimizeStyles($in);
1677
+        $actual   = $instance->run_minifier_on($in);
1678 1678
 
1679
-        $this->assertEquals( $expected, $actual );
1679
+        $this->assertEquals($expected, $actual);
1680 1680
     }
1681 1681
 
1682 1682
     public function test_css_import_semicolon_url_issue_122()
@@ -1692,18 +1692,18 @@  discard block
 block discarded – undo
1692 1692
 </style>
1693 1693
 HTML;
1694 1694
 
1695
-        $expected = '<style type="text/css" media="all">@import url(' . $cdnurl . '/' . $sub . 'foo.css?a&#038;b);@import url(' . $cdnurl . '/' . $sub . 'bar.css);</style><!--noptimize--><!-- Autoptimize found a problem with the HTML in your Theme, tag `title` missing --><!--/noptimize-->';
1695
+        $expected = '<style type="text/css" media="all">@import url('.$cdnurl.'/'.$sub.'foo.css?a&#038;b);@import url('.$cdnurl.'/'.$sub.'bar.css);</style><!--noptimize--><!-- Autoptimize found a problem with the HTML in your Theme, tag `title` missing --><!--/noptimize-->';
1696 1696
 
1697 1697
         $options = [
1698 1698
             'autoptimizeStyles' => $this->getAoStylesDefaultOptions(),
1699 1699
         ];
1700 1700
 
1701
-        $instance = new autoptimizeStyles( $in );
1702
-        $instance->read( $options['autoptimizeStyles'] );
1701
+        $instance = new autoptimizeStyles($in);
1702
+        $instance->read($options['autoptimizeStyles']);
1703 1703
         $instance->minify();
1704 1704
         $instance->cache();
1705 1705
         $actual = $instance->getcontent();
1706
-        $this->assertEquals( $expected, $actual );
1706
+        $this->assertEquals($expected, $actual);
1707 1707
     }
1708 1708
 
1709 1709
     public function test_fixurls_with_at_imports_and_media_queries()
@@ -1713,10 +1713,10 @@  discard block
 block discarded – undo
1713 1713
         $subfolder = $urls['subfolder'];
1714 1714
 
1715 1715
         $in  = '@import "foo.css"; @import "bar.css" (orientation:landscape);';
1716
-        $exp = '@import url(' . $prsiteurl . '/wp-content/themes/my-theme/foo.css); @import url(' . $prsiteurl . '/wp-content/themes/my-theme/bar.css) (orientation:landscape);';
1716
+        $exp = '@import url('.$prsiteurl.'/wp-content/themes/my-theme/foo.css); @import url('.$prsiteurl.'/wp-content/themes/my-theme/bar.css) (orientation:landscape);';
1717 1717
 
1718
-        $actual = autoptimizeStyles::fixurls( ABSPATH . 'wp-content/themes/my-theme/style.css', $in );
1719
-        $this->assertEquals( $exp, $actual );
1718
+        $actual = autoptimizeStyles::fixurls(ABSPATH.'wp-content/themes/my-theme/style.css', $in);
1719
+        $this->assertEquals($exp, $actual);
1720 1720
     }
1721 1721
 
1722 1722
     public function test_aostyles_at_imports_with_media_queries()
@@ -1731,43 +1731,43 @@  discard block
 block discarded – undo
1731 1731
 </style>
1732 1732
 HTML;
1733 1733
 
1734
-        $expected = '<style type="text/css" media="all">@import url(' . $cdnurl . '/' . $sub . 'foo.css);@import url(' . $cdnurl . '/' . $sub . 'bar.css) (orientation:landscape);</style><!--noptimize--><!-- Autoptimize found a problem with the HTML in your Theme, tag `title` missing --><!--/noptimize-->';
1734
+        $expected = '<style type="text/css" media="all">@import url('.$cdnurl.'/'.$sub.'foo.css);@import url('.$cdnurl.'/'.$sub.'bar.css) (orientation:landscape);</style><!--noptimize--><!-- Autoptimize found a problem with the HTML in your Theme, tag `title` missing --><!--/noptimize-->';
1735 1735
 
1736 1736
         $options = [
1737 1737
             'autoptimizeStyles' => $this->getAoStylesDefaultOptions(),
1738 1738
         ];
1739 1739
 
1740
-        $instance = new autoptimizeStyles( $in );
1741
-        $instance->read( $options['autoptimizeStyles'] );
1740
+        $instance = new autoptimizeStyles($in);
1741
+        $instance->read($options['autoptimizeStyles']);
1742 1742
         $instance->minify();
1743 1743
         $instance->cache();
1744 1744
 
1745 1745
         $actual = $instance->getcontent();
1746
-        $this->assertEquals( $expected, $actual );
1746
+        $this->assertEquals($expected, $actual);
1747 1747
     }
1748 1748
 
1749 1749
     public function test_cache_size_checker_hooked_by_default()
1750 1750
     {
1751
-        $this->assertNotEmpty( autoptimizeCacheChecker::SCHEDULE_HOOK );
1751
+        $this->assertNotEmpty(autoptimizeCacheChecker::SCHEDULE_HOOK);
1752 1752
 
1753 1753
         // No schedule, because it's only added when is_admin() is true.
1754
-        $this->assertEquals( false, wp_get_schedule( autoptimizeCacheChecker::SCHEDULE_HOOK ) );
1754
+        $this->assertEquals(false, wp_get_schedule(autoptimizeCacheChecker::SCHEDULE_HOOK));
1755 1755
 
1756 1756
         // Proving that setup() sets the schedule as needed.
1757 1757
         $checker = new autoptimizeCacheChecker();
1758 1758
         $checker->setup();
1759
-        $this->assertEquals( 'twicedaily', wp_get_schedule( autoptimizeCacheChecker::SCHEDULE_HOOK ) );
1759
+        $this->assertEquals('twicedaily', wp_get_schedule(autoptimizeCacheChecker::SCHEDULE_HOOK));
1760 1760
     }
1761 1761
 
1762 1762
     public function test_cache_size_checker_disabled_with_filter()
1763 1763
     {
1764
-        add_filter( 'autoptimize_filter_cachecheck_do', '__return_false' );
1764
+        add_filter('autoptimize_filter_cachecheck_do', '__return_false');
1765 1765
 
1766 1766
         $checker = new autoptimizeCacheChecker();
1767 1767
         $checker->setup();
1768
-        $this->assertEquals( false, wp_get_schedule( autoptimizeCacheChecker::SCHEDULE_HOOK ) );
1768
+        $this->assertEquals(false, wp_get_schedule(autoptimizeCacheChecker::SCHEDULE_HOOK));
1769 1769
 
1770
-        remove_all_filters( 'autoptimize_filter_cachecheck_do' );
1770
+        remove_all_filters('autoptimize_filter_cachecheck_do');
1771 1771
     }
1772 1772
 
1773 1773
     public function test_is_start_buffering_hooked_properly()
@@ -1780,12 +1780,12 @@  discard block
 block discarded – undo
1780 1780
          * https://www.theaveragedev.com/mocking-constants-in-tests/.
1781 1781
          */
1782 1782
 
1783
-        if ( defined( 'AUTOPTIMIZE_INIT_EARLIER' ) ) {
1783
+        if (defined('AUTOPTIMIZE_INIT_EARLIER')) {
1784 1784
             $this->assertEquals(
1785 1785
                 autoptimizeMain::INIT_EARLIER_PRIORITY,
1786
-                has_action( 'init', array( $instance, 'start_buffering' ) )
1786
+                has_action('init', array($instance, 'start_buffering'))
1787 1787
             );
1788
-            $this->assertTrue( ! defined( 'AUTOPTIMIZE_HOOK_INTO' ) );
1788
+            $this->assertTrue(!defined('AUTOPTIMIZE_HOOK_INTO'));
1789 1789
         }
1790 1790
 
1791 1791
         /*
@@ -1802,18 +1802,18 @@  discard block
 block discarded – undo
1802 1802
 
1803 1803
     public function test_inline_and_defer_markup()
1804 1804
     {
1805
-        add_filter( 'autoptimize_filter_css_defer', '__return_true' );
1806
-        add_filter( 'autoptimize_filter_css_defer_inline', '__return_true' );
1805
+        add_filter('autoptimize_filter_css_defer', '__return_true');
1806
+        add_filter('autoptimize_filter_css_defer_inline', '__return_true');
1807 1807
 
1808
-        $actual = $this->ao->end_buffering( $this->get_test_markup() );
1809
-        if ( is_multisite() ) {
1810
-            $this->assertEquals( $this->get_test_markup_output_inline_defer_ms(), $actual );
1808
+        $actual = $this->ao->end_buffering($this->get_test_markup());
1809
+        if (is_multisite()) {
1810
+            $this->assertEquals($this->get_test_markup_output_inline_defer_ms(), $actual);
1811 1811
         } else {
1812
-            $this->assertEquals( $this->get_test_markup_output_inline_defer(), $actual );
1812
+            $this->assertEquals($this->get_test_markup_output_inline_defer(), $actual);
1813 1813
         }
1814 1814
 
1815
-        remove_all_filters( 'autoptimize_filter_css_defer' );
1816
-        remove_all_filters( 'autoptimize_filter_css_defer_inline' );
1815
+        remove_all_filters('autoptimize_filter_css_defer');
1816
+        remove_all_filters('autoptimize_filter_css_defer_inline');
1817 1817
     }
1818 1818
 
1819 1819
     public function test_js_aggregation_decision_and_dontaggregate_filter()
@@ -1821,47 +1821,47 @@  discard block
 block discarded – undo
1821 1821
         $opts = $this->getAoScriptsDefaultOptions();
1822 1822
 
1823 1823
         // Aggregating: true by default.
1824
-        $scripts = new autoptimizeScripts( '' );
1825
-        $scripts->read( $opts );
1826
-        $this->assertTrue( $scripts->aggregating() );
1824
+        $scripts = new autoptimizeScripts('');
1825
+        $scripts->read($opts);
1826
+        $this->assertTrue($scripts->aggregating());
1827 1827
 
1828 1828
         // Aggregating: option=true (dontaggregate=false by default).
1829 1829
         $opts['aggregate'] = true;
1830
-        $scripts           = new autoptimizeScripts( '' );
1831
-        $scripts->read( $opts );
1832
-        $this->assertTrue( $scripts->aggregating() );
1830
+        $scripts           = new autoptimizeScripts('');
1831
+        $scripts->read($opts);
1832
+        $this->assertTrue($scripts->aggregating());
1833 1833
 
1834 1834
         // Aggregating: option=true, dontaggregate=false explicit.
1835 1835
         $opts['aggregate'] = true;
1836
-        add_filter( 'autoptimize_filter_js_dontaggregate', '__return_false' );
1837
-        $scripts = new autoptimizeScripts( '' );
1838
-        $scripts->read( $opts );
1839
-        $this->assertTrue( $scripts->aggregating() );
1840
-        remove_all_filters( 'autoptimize_filter_js_dontaggregate' );
1836
+        add_filter('autoptimize_filter_js_dontaggregate', '__return_false');
1837
+        $scripts = new autoptimizeScripts('');
1838
+        $scripts->read($opts);
1839
+        $this->assertTrue($scripts->aggregating());
1840
+        remove_all_filters('autoptimize_filter_js_dontaggregate');
1841 1841
 
1842 1842
         // Not aggregating: option=true, dontaggregate=true.
1843 1843
         $opts['aggregate'] = true;
1844
-        add_filter( 'autoptimize_filter_js_dontaggregate', '__return_true' );
1845
-        $scripts = new autoptimizeScripts( '' );
1846
-        $scripts->read( $opts );
1847
-        $this->assertFalse( $scripts->aggregating() );
1848
-        remove_all_filters( 'autoptimize_filter_js_dontaggregate' );
1844
+        add_filter('autoptimize_filter_js_dontaggregate', '__return_true');
1845
+        $scripts = new autoptimizeScripts('');
1846
+        $scripts->read($opts);
1847
+        $this->assertFalse($scripts->aggregating());
1848
+        remove_all_filters('autoptimize_filter_js_dontaggregate');
1849 1849
 
1850 1850
         // Not aggregating: option=false, dontaggregate=false.
1851 1851
         $opts['aggregate'] = false;
1852
-        add_filter( 'autoptimize_filter_js_dontaggregate', '__return_false' );
1853
-        $scripts = new autoptimizeScripts( '' );
1854
-        $scripts->read( $opts );
1855
-        $this->assertFalse( $scripts->aggregating() );
1856
-        remove_all_filters( 'autoptimize_filter_js_dontaggregate' );
1852
+        add_filter('autoptimize_filter_js_dontaggregate', '__return_false');
1853
+        $scripts = new autoptimizeScripts('');
1854
+        $scripts->read($opts);
1855
+        $this->assertFalse($scripts->aggregating());
1856
+        remove_all_filters('autoptimize_filter_js_dontaggregate');
1857 1857
 
1858 1858
         // Not aggregating: option=false, dontaggregate=true.
1859 1859
         $opts['aggregate'] = false;
1860
-        add_filter( 'autoptimize_filter_js_dontaggregate', '__return_true' );
1861
-        $scripts = new autoptimizeScripts( '' );
1862
-        $scripts->read( $opts );
1863
-        $this->assertFalse( $scripts->aggregating() );
1864
-        remove_all_filters( 'autoptimize_filter_js_dontaggregate' );
1860
+        add_filter('autoptimize_filter_js_dontaggregate', '__return_true');
1861
+        $scripts = new autoptimizeScripts('');
1862
+        $scripts->read($opts);
1863
+        $this->assertFalse($scripts->aggregating());
1864
+        remove_all_filters('autoptimize_filter_js_dontaggregate');
1865 1865
     }
1866 1866
 
1867 1867
     public function test_css_aggregation_decision_and_dontaggregate_filter()
@@ -1869,78 +1869,78 @@  discard block
 block discarded – undo
1869 1869
         $opts = $this->getAoStylesDefaultOptions();
1870 1870
 
1871 1871
         // Aggregating: true by default.
1872
-        $styles = new autoptimizeStyles( '' );
1873
-        $this->assertTrue( $styles->aggregating() );
1872
+        $styles = new autoptimizeStyles('');
1873
+        $this->assertTrue($styles->aggregating());
1874 1874
 
1875 1875
         // Aggregating: option=true (dontaggregate=false by default).
1876 1876
         $opts['aggregate'] = true;
1877
-        $styles            = new autoptimizeStyles( '' );
1878
-        $styles->read( $opts );
1879
-        $this->assertTrue( $styles->aggregating() );
1877
+        $styles            = new autoptimizeStyles('');
1878
+        $styles->read($opts);
1879
+        $this->assertTrue($styles->aggregating());
1880 1880
 
1881 1881
         // Aggregating: option=true, dontaggregate=false explicit.
1882 1882
         $opts['aggregate'] = true;
1883
-        add_filter( 'autoptimize_filter_css_dontaggregate', '__return_false' );
1884
-        $styles = new autoptimizeStyles( '' );
1885
-        $styles->read( $opts );
1886
-        $this->assertTrue( $styles->aggregating() );
1887
-        remove_all_filters( 'autoptimize_filter_css_dontaggregate' );
1883
+        add_filter('autoptimize_filter_css_dontaggregate', '__return_false');
1884
+        $styles = new autoptimizeStyles('');
1885
+        $styles->read($opts);
1886
+        $this->assertTrue($styles->aggregating());
1887
+        remove_all_filters('autoptimize_filter_css_dontaggregate');
1888 1888
 
1889 1889
         // Not aggregating: option=true, dontaggregate=true.
1890 1890
         $opts['aggregate'] = true;
1891
-        add_filter( 'autoptimize_filter_css_dontaggregate', '__return_true' );
1892
-        $styles = new autoptimizeStyles( '' );
1893
-        $styles->read( $opts );
1894
-        $this->assertFalse( $styles->aggregating() );
1895
-        remove_all_filters( 'autoptimize_filter_css_dontaggregate' );
1891
+        add_filter('autoptimize_filter_css_dontaggregate', '__return_true');
1892
+        $styles = new autoptimizeStyles('');
1893
+        $styles->read($opts);
1894
+        $this->assertFalse($styles->aggregating());
1895
+        remove_all_filters('autoptimize_filter_css_dontaggregate');
1896 1896
 
1897 1897
         // Not aggregating: option=false, dontaggregate=false.
1898 1898
         $opts['aggregate'] = false;
1899
-        add_filter( 'autoptimize_filter_css_dontaggregate', '__return_false' );
1900
-        $styles = new autoptimizeStyles( '' );
1901
-        $styles->read( $opts );
1902
-        $this->assertFalse( $styles->aggregating() );
1903
-        remove_all_filters( 'autoptimize_filter_css_dontaggregate' );
1899
+        add_filter('autoptimize_filter_css_dontaggregate', '__return_false');
1900
+        $styles = new autoptimizeStyles('');
1901
+        $styles->read($opts);
1902
+        $this->assertFalse($styles->aggregating());
1903
+        remove_all_filters('autoptimize_filter_css_dontaggregate');
1904 1904
 
1905 1905
         // Not aggregating: option=false, dontaggregate=true.
1906 1906
         $opts['aggregate'] = false;
1907
-        add_filter( 'autoptimize_filter_css_dontaggregate', '__return_true' );
1908
-        $styles = new autoptimizeStyles( '' );
1909
-        $styles->read( $opts );
1910
-        $this->assertFalse( $styles->aggregating() );
1911
-        remove_all_filters( 'autoptimize_filter_css_dontaggregate' );
1907
+        add_filter('autoptimize_filter_css_dontaggregate', '__return_true');
1908
+        $styles = new autoptimizeStyles('');
1909
+        $styles->read($opts);
1910
+        $this->assertFalse($styles->aggregating());
1911
+        remove_all_filters('autoptimize_filter_css_dontaggregate');
1912 1912
     }
1913 1913
 
1914 1914
     public function test_css_minify_single_with_cdning()
1915 1915
     {
1916
-        $pathname = dirname( __FILE__ ) . '/fixtures/minify-single.css';
1916
+        $pathname = dirname(__FILE__).'/fixtures/minify-single.css';
1917 1917
         $opts     = $this->getAoStylesDefaultOptions();
1918
-        $styles   = new autoptimizeStyles( '' );
1919
-        $styles->read( $opts );
1918
+        $styles   = new autoptimizeStyles('');
1919
+        $styles->read($opts);
1920 1920
 
1921
-        $url = $styles->minify_single( $pathname, $cache_miss = true );
1921
+        $url = $styles->minify_single($pathname, $cache_miss = true);
1922 1922
 
1923 1923
         // Minified url filename + its pointed to cdn.
1924
-        $this->assertContains( AUTOPTIMIZE_CACHE_CHILD_DIR, $url );
1925
-        $this->assertContains( '/autoptimize_single_', $url );
1926
-        $this->assertContains( $styles->cdn_url, $url );
1924
+        $this->assertContains(AUTOPTIMIZE_CACHE_CHILD_DIR, $url);
1925
+        $this->assertContains('/autoptimize_single_', $url);
1926
+        $this->assertContains($styles->cdn_url, $url);
1927 1927
 
1928 1928
         // Actual minified css contents are minified and cdn-ed.
1929
-        $path     = $styles->getpath( $url );
1930
-        $contents = file_get_contents( $path );
1931
-        $this->assertContains( $styles->cdn_url, $contents );
1932
-        $this->assertContains( '.bg{background:url(' . $styles->cdn_url, $contents );
1929
+        $path     = $styles->getpath($url);
1930
+        $contents = file_get_contents($path);
1931
+        $this->assertContains($styles->cdn_url, $contents);
1932
+        $this->assertContains('.bg{background:url('.$styles->cdn_url, $contents);
1933 1933
     }
1934 1934
 
1935 1935
     public function test_ao_partners_instantiation_without_explicit_include()
1936 1936
     {
1937 1937
         $partners = new autoptimizePartners();
1938
-        $this->assertTrue( $partners instanceof autoptimizePartners );
1938
+        $this->assertTrue($partners instanceof autoptimizePartners);
1939 1939
     }
1940 1940
 
1941 1941
     public function test_html_minify_keep_html_comments_inside_script_blocks()
1942 1942
     {
1943
-        $markup   = <<<MARKUP
1943
+        $markup = <<<MARKUP
1944 1944
 <script>
1945 1945
 <!-- End Support AJAX add to cart -->
1946 1946
 var a = "b";
@@ -1970,23 +1970,23 @@  discard block
 block discarded – undo
1970 1970
             ],
1971 1971
         ];
1972 1972
 
1973
-        $instance = new autoptimizeHTML( $markup );
1974
-        $instance->read( $options['autoptimizeHTML'] );
1973
+        $instance = new autoptimizeHTML($markup);
1974
+        $instance->read($options['autoptimizeHTML']);
1975 1975
         $instance->minify();
1976 1976
         $actual = $instance->getcontent();
1977
-        $this->assertEquals( $expected, $actual );
1977
+        $this->assertEquals($expected, $actual);
1978 1978
 
1979
-        $instance = new autoptimizeHTML( $markup2 );
1980
-        $instance->read( $options['autoptimizeHTML'] );
1979
+        $instance = new autoptimizeHTML($markup2);
1980
+        $instance->read($options['autoptimizeHTML']);
1981 1981
         $instance->minify();
1982 1982
         $actual2 = $instance->getcontent();
1983
-        $this->assertEquals( $expected2, $actual2 );
1983
+        $this->assertEquals($expected2, $actual2);
1984 1984
     }
1985 1985
 
1986 1986
     public function test_html_minify_remove_html_comments_inside_script_blocks()
1987 1987
     {
1988 1988
         // Default case, html comments removed (keepcomments = false).
1989
-        $markup1   = <<<MARKUP
1989
+        $markup1 = <<<MARKUP
1990 1990
 <script>
1991 1991
 var a = "b";
1992 1992
 <!-- End Support AJAX add to cart -->
@@ -1997,7 +1997,7 @@  discard block
 block discarded – undo
1997 1997
 <!-- End Support AJAX add to cart</script>
1998 1998
 MARKUP;
1999 1999
 
2000
-        $markup2   = <<<MARKUP
2000
+        $markup2 = <<<MARKUP
2001 2001
 <script>
2002 2002
 <!-- End Support AJAX add to cart -->
2003 2003
 var a = "b";
@@ -2014,17 +2014,17 @@  discard block
 block discarded – undo
2014 2014
             ],
2015 2015
         ];
2016 2016
 
2017
-        $instance = new autoptimizeHTML( $markup1 );
2018
-        $instance->read( $options['autoptimizeHTML'] );
2017
+        $instance = new autoptimizeHTML($markup1);
2018
+        $instance->read($options['autoptimizeHTML']);
2019 2019
         $instance->minify();
2020 2020
         $actual = $instance->getcontent();
2021
-        $this->assertEquals( $expected1, $actual );
2021
+        $this->assertEquals($expected1, $actual);
2022 2022
 
2023
-        $instance = new autoptimizeHTML( $markup2 );
2024
-        $instance->read( $options['autoptimizeHTML'] );
2023
+        $instance = new autoptimizeHTML($markup2);
2024
+        $instance->read($options['autoptimizeHTML']);
2025 2025
         $instance->minify();
2026 2026
         $actual2 = $instance->getcontent();
2027
-        $this->assertEquals( $expected2, $actual2 );
2027
+        $this->assertEquals($expected2, $actual2);
2028 2028
     }
2029 2029
 
2030 2030
     public function test_html_minify_html_comments_inside_script_blocks_old_school_pattern()
@@ -2048,11 +2048,11 @@  discard block
 block discarded – undo
2048 2048
             ],
2049 2049
         ];
2050 2050
 
2051
-        $instance = new autoptimizeHTML( $markup );
2052
-        $instance->read( $options['autoptimizeHTML'] );
2051
+        $instance = new autoptimizeHTML($markup);
2052
+        $instance->read($options['autoptimizeHTML']);
2053 2053
         $instance->minify();
2054 2054
         $actual = $instance->getcontent();
2055
-        $this->assertEquals( $expected, $actual );
2055
+        $this->assertEquals($expected, $actual);
2056 2056
     }
2057 2057
 
2058 2058
     public function test_html_minify_html_comments_inside_script_blocks_old_school_pattern_untouched()
@@ -2077,49 +2077,49 @@  discard block
 block discarded – undo
2077 2077
             ],
2078 2078
         ];
2079 2079
 
2080
-        $instance = new autoptimizeHTML( $markup );
2081
-        $instance->read( $options['autoptimizeHTML'] );
2080
+        $instance = new autoptimizeHTML($markup);
2081
+        $instance->read($options['autoptimizeHTML']);
2082 2082
         $instance->minify();
2083 2083
         $actual = $instance->getcontent();
2084
-        $this->assertEquals( $expected, $actual );
2084
+        $this->assertEquals($expected, $actual);
2085 2085
     }
2086 2086
 
2087 2087
     public function test_utils_mbstring_availabilty_overriding()
2088 2088
     {
2089 2089
         $orig     = autoptimizeUtils::mbstring_available();
2090
-        $opposite = ! $orig;
2090
+        $opposite = !$orig;
2091 2091
 
2092
-        $this->assertSame( $orig, autoptimizeUtils::mbstring_available() );
2092
+        $this->assertSame($orig, autoptimizeUtils::mbstring_available());
2093 2093
         // Override works...
2094
-        $this->assertSame( $opposite, autoptimizeUtils::mbstring_available( $opposite ) );
2094
+        $this->assertSame($opposite, autoptimizeUtils::mbstring_available($opposite));
2095 2095
         // And override remains cached as the last version.
2096
-        $this->assertSame( $opposite, autoptimizeUtils::mbstring_available() );
2096
+        $this->assertSame($opposite, autoptimizeUtils::mbstring_available());
2097 2097
     }
2098 2098
 
2099 2099
     public function test_utils_mbstring_basics()
2100 2100
     {
2101 2101
         // Turn on mbstring usage.
2102
-        autoptimizeUtils::mbstring_available( true );
2102
+        autoptimizeUtils::mbstring_available(true);
2103 2103
 
2104
-        $this->assertSame( 2, autoptimizeUtils::strlen( "\x00\xFF", 'ASCII' ) );
2105
-        $this->assertSame( 2, autoptimizeUtils::strlen( "\x00\xFF", 'CP850' ) );
2106
-        $this->assertSame( 3, autoptimizeUtils::strlen( '한국어' ) );
2104
+        $this->assertSame(2, autoptimizeUtils::strlen("\x00\xFF", 'ASCII'));
2105
+        $this->assertSame(2, autoptimizeUtils::strlen("\x00\xFF", 'CP850'));
2106
+        $this->assertSame(3, autoptimizeUtils::strlen('한국어'));
2107 2107
 
2108
-        $this->assertFalse( @autoptimizeUtils::strpos( 'abc', '' ) );
2109
-        $this->assertFalse( @autoptimizeUtils::strpos( 'abc', 'a', -1 ) );
2110
-        $this->assertFalse( autoptimizeUtils::strpos( 'abc', 'd' ) );
2111
-        $this->assertFalse( autoptimizeUtils::strpos( 'abc', 'a', 3 ) );
2112
-        $this->assertSame( 1, autoptimizeUtils::strpos( '한국어', '국' ) );
2108
+        $this->assertFalse(@autoptimizeUtils::strpos('abc', ''));
2109
+        $this->assertFalse(@autoptimizeUtils::strpos('abc', 'a', -1));
2110
+        $this->assertFalse(autoptimizeUtils::strpos('abc', 'd'));
2111
+        $this->assertFalse(autoptimizeUtils::strpos('abc', 'a', 3));
2112
+        $this->assertSame(1, autoptimizeUtils::strpos('한국어', '국'));
2113 2113
     }
2114 2114
 
2115 2115
     /**
2116 2116
      * @dataProvider provider_utils_substr_replace
2117 2117
      */
2118
-    function test_utils_substr_replace_basics_mbstring( $s, $repl, $start, $len, $expected )
2118
+    function test_utils_substr_replace_basics_mbstring($s, $repl, $start, $len, $expected)
2119 2119
     {
2120 2120
         // Force mbstring code path...
2121
-        autoptimizeUtils::mbstring_available( true );
2122
-        $this->assertEquals( $expected, autoptimizeUtils::substr_replace( $s, $repl, $start, $len ) );
2121
+        autoptimizeUtils::mbstring_available(true);
2122
+        $this->assertEquals($expected, autoptimizeUtils::substr_replace($s, $repl, $start, $len));
2123 2123
     }
2124 2124
 
2125 2125
     public function provider_utils_substr_replace()
@@ -2161,48 +2161,48 @@  discard block
 block discarded – undo
2161 2161
 
2162 2162
     function test_mb_substr_replace_with_ascii_input_string()
2163 2163
     {
2164
-        autoptimizeUtils::mbstring_available( false );
2164
+        autoptimizeUtils::mbstring_available(false);
2165 2165
 
2166 2166
         $str = 'Ascii';
2167 2167
 
2168
-        $this->assertSame( 'Añ', autoptimizeUtils::substr_replace( $str, 'ñ', 1 ) );
2169
-        $this->assertSame( 'ñcii', autoptimizeUtils::substr_replace( $str, 'ñ', 0, 2 ) );
2170
-        $this->assertSame( 'Asñx', autoptimizeUtils::substr_replace( $str, 'ñx', 2, 3 ) );
2171
-        $this->assertSame( 'Asz', autoptimizeUtils::substr_replace( $str, 'z', 2, 10 ) );
2172
-        $this->assertSame( 'Añii', autoptimizeUtils::substr_replace( $str, 'ñ', 1, 2 ) );
2168
+        $this->assertSame('Añ', autoptimizeUtils::substr_replace($str, 'ñ', 1));
2169
+        $this->assertSame('ñcii', autoptimizeUtils::substr_replace($str, 'ñ', 0, 2));
2170
+        $this->assertSame('Asñx', autoptimizeUtils::substr_replace($str, 'ñx', 2, 3));
2171
+        $this->assertSame('Asz', autoptimizeUtils::substr_replace($str, 'z', 2, 10));
2172
+        $this->assertSame('Añii', autoptimizeUtils::substr_replace($str, 'ñ', 1, 2));
2173 2173
     }
2174 2174
 
2175 2175
     function test_mb_substr_replace_with_utf8_input_string()
2176 2176
     {
2177
-        autoptimizeUtils::mbstring_available( true );
2177
+        autoptimizeUtils::mbstring_available(true);
2178 2178
 
2179 2179
         $str = 'âønæë';
2180 2180
 
2181
-        $this->assertSame( 'âñ', autoptimizeUtils::substr_replace( $str, 'ñ', 1 ) ); // No length.
2182
-        $this->assertSame( 'ñnæë', autoptimizeUtils::substr_replace( $str, 'ñ', 0, 2 ) );
2183
-        $this->assertSame( 'âøñx', autoptimizeUtils::substr_replace( $str, 'ñx', 2, 3 ) );
2184
-        $this->assertSame( 'âøz', autoptimizeUtils::substr_replace( $str, 'z', 2, 10 ) ); // Length larger than possible...
2185
-        $this->assertSame( 'âñæë', autoptimizeUtils::substr_replace( $str, 'ñ', 1, 2 ) );
2181
+        $this->assertSame('âñ', autoptimizeUtils::substr_replace($str, 'ñ', 1)); // No length.
2182
+        $this->assertSame('ñnæë', autoptimizeUtils::substr_replace($str, 'ñ', 0, 2));
2183
+        $this->assertSame('âøñx', autoptimizeUtils::substr_replace($str, 'ñx', 2, 3));
2184
+        $this->assertSame('âøz', autoptimizeUtils::substr_replace($str, 'z', 2, 10)); // Length larger than possible...
2185
+        $this->assertSame('âñæë', autoptimizeUtils::substr_replace($str, 'ñ', 1, 2));
2186 2186
     }
2187 2187
 
2188 2188
     function test_default_substr_replace_with_ascii_input_string()
2189 2189
     {
2190 2190
         // Disable mbstring which should fall ack to substr_replace...
2191
-        autoptimizeUtils::mbstring_available( false );
2191
+        autoptimizeUtils::mbstring_available(false);
2192 2192
 
2193 2193
         $str = 'Ascii';
2194 2194
 
2195
-        $this->assertSame( 'Añ', autoptimizeUtils::substr_replace( $str, 'ñ', 1 ) );
2196
-        $this->assertSame( 'ñcii', autoptimizeUtils::substr_replace( $str, 'ñ', 0, 2 ) );
2197
-        $this->assertSame( 'Asñx', autoptimizeUtils::substr_replace( $str, 'ñx', 2, 3 ) );
2198
-        $this->assertSame( 'Asz', autoptimizeUtils::substr_replace( $str, 'z', 2, 10 ) );
2199
-        $this->assertSame( 'Añii', autoptimizeUtils::substr_replace( $str, 'ñ', 1, 2 ) );
2195
+        $this->assertSame('Añ', autoptimizeUtils::substr_replace($str, 'ñ', 1));
2196
+        $this->assertSame('ñcii', autoptimizeUtils::substr_replace($str, 'ñ', 0, 2));
2197
+        $this->assertSame('Asñx', autoptimizeUtils::substr_replace($str, 'ñx', 2, 3));
2198
+        $this->assertSame('Asz', autoptimizeUtils::substr_replace($str, 'z', 2, 10));
2199
+        $this->assertSame('Añii', autoptimizeUtils::substr_replace($str, 'ñ', 1, 2));
2200 2200
     }
2201 2201
 
2202 2202
     function test_default_substr_replace_with_utf8_input_string()
2203 2203
     {
2204 2204
         // Disabling mbstring, falling back to substr_replace...
2205
-        autoptimizeUtils::mbstring_available( false );
2205
+        autoptimizeUtils::mbstring_available(false);
2206 2206
 
2207 2207
         // This is really impossible to make work properly, since
2208 2208
         // any start/len parameters we give are working with bytes instead
@@ -2211,55 +2211,55 @@  discard block
 block discarded – undo
2211 2211
 
2212 2212
         // $this->assertSame( '�ñ', autoptimizeUtils::substr_replace( $str, 'ñ', 1 ) ); // No length.
2213 2213
         // $this->assertSame( 'ñ�næë', autoptimizeUtils::substr_replace( $str, 'ñ', 1, 2 ) );
2214
-        $this->assertSame( 'ñønæë', autoptimizeUtils::substr_replace( $str, 'ñ', 0, 2 ) );
2215
-        $this->assertSame( 'âñxæë', autoptimizeUtils::substr_replace( $str, 'ñx', 2, 3 ) );
2216
-        $this->assertSame( 'âz', autoptimizeUtils::substr_replace( $str, 'z', 2, 10 ) ); // Length larger than possible...
2214
+        $this->assertSame('ñønæë', autoptimizeUtils::substr_replace($str, 'ñ', 0, 2));
2215
+        $this->assertSame('âñxæë', autoptimizeUtils::substr_replace($str, 'ñx', 2, 3));
2216
+        $this->assertSame('âz', autoptimizeUtils::substr_replace($str, 'z', 2, 10)); // Length larger than possible...
2217 2217
     }
2218 2218
 
2219 2219
     public function test_cache_fast_delete()
2220 2220
     {
2221
-        add_filter( 'autoptimize_filter_cache_clear_advanced', '__return_true' );
2221
+        add_filter('autoptimize_filter_cache_clear_advanced', '__return_true');
2222 2222
 
2223 2223
         autoptimizeCache::clearall_actionless();
2224 2224
 
2225
-        remove_all_filters( 'autoptimize_filter_cache_clear_advanced' );
2225
+        remove_all_filters('autoptimize_filter_cache_clear_advanced');
2226 2226
     }
2227 2227
 
2228 2228
     public function test_delete_advanced_cache_clear_artifacts()
2229 2229
     {
2230
-        $this->assertTrue( autoptimizeCache::delete_advanced_cache_clear_artifacts() );
2230
+        $this->assertTrue(autoptimizeCache::delete_advanced_cache_clear_artifacts());
2231 2231
     }
2232 2232
 
2233 2233
     public function provider_canonicalization()
2234 2234
     {
2235 2235
         return array(
2236
-            array( '../common', 'common' ),
2237
-            array( '../what-does-this-mean/really?/', 'what-does-this-mean/really?/' ),
2238
-            array( '../../what/where/how', 'what/where/how' ),
2239
-            array( '/../more.dots.please/', '/more.dots.please/' ),
2240
-            array( '/../../what/where/how', '/what/where/how' ),
2241
-            array( '/a/b/c/../../../d/e/file.txt', '/d/e/file.txt' ),
2242
-            array( 'a/b/../c', 'a/c' ),
2243
-            array( './../../etc/passwd', './etc/passwd' ),
2244
-            array( '/var/.////./user/./././..//.//../////../././.././test/////', '/test/' ),
2245
-            array( '/var/user/./././.././../.././././test/', '/test/' ),
2246
-            array( '/hello/0//how/../are/../you', '/hello/0/you' ),
2247
-            array( '', '' ),
2248
-            array( '.', '.' ),
2249
-            array( '..', '..' ),
2250
-            array( './..', './..' ),
2251
-            array( '../.', '.' ),
2236
+            array('../common', 'common'),
2237
+            array('../what-does-this-mean/really?/', 'what-does-this-mean/really?/'),
2238
+            array('../../what/where/how', 'what/where/how'),
2239
+            array('/../more.dots.please/', '/more.dots.please/'),
2240
+            array('/../../what/where/how', '/what/where/how'),
2241
+            array('/a/b/c/../../../d/e/file.txt', '/d/e/file.txt'),
2242
+            array('a/b/../c', 'a/c'),
2243
+            array('./../../etc/passwd', './etc/passwd'),
2244
+            array('/var/.////./user/./././..//.//../////../././.././test/////', '/test/'),
2245
+            array('/var/user/./././.././../.././././test/', '/test/'),
2246
+            array('/hello/0//how/../are/../you', '/hello/0/you'),
2247
+            array('', ''),
2248
+            array('.', '.'),
2249
+            array('..', '..'),
2250
+            array('./..', './..'),
2251
+            array('../.', '.'),
2252 2252
             // This might be debatable...
2253
-            array( '../..', '..' ),
2253
+            array('../..', '..'),
2254 2254
         );
2255 2255
     }
2256 2256
 
2257 2257
     /**
2258 2258
      * @dataProvider provider_canonicalization
2259 2259
      */
2260
-    public function test_path_canonicalize( $path, $canonicalized )
2260
+    public function test_path_canonicalize($path, $canonicalized)
2261 2261
     {
2262
-        $this->assertSame( $canonicalized, autoptimizeUtils::path_canonicalize( $path ) );
2262
+        $this->assertSame($canonicalized, autoptimizeUtils::path_canonicalize($path));
2263 2263
     }
2264 2264
 
2265 2265
     /**
@@ -2273,16 +2273,16 @@  discard block
 block discarded – undo
2273 2273
     public function test_autoptimize_filter_cdn_magic_path_check()
2274 2274
     {
2275 2275
         $cdnurl = 'http://cdn.example.org';
2276
-        add_filter( 'autoptimize_filter_cdn_magic_path_check', '__return_false', 10, 2 );
2276
+        add_filter('autoptimize_filter_cdn_magic_path_check', '__return_false', 10, 2);
2277 2277
 
2278 2278
         // Even when site is in a subfolder, the resulting cdn-rewritten url
2279 2279
         // should not magically include it, due to the above filter.
2280 2280
         // The second parameter is here to force a cache miss and re-run
2281 2281
         // the filter since we're using the same cdn url all over the place,
2282 2282
         // but want to prove different things with it.
2283
-        $this->assertSame( $cdnurl, autoptimizeUtils::tweak_cdn_url_if_needed( $cdnurl, true ) );
2283
+        $this->assertSame($cdnurl, autoptimizeUtils::tweak_cdn_url_if_needed($cdnurl, true));
2284 2284
 
2285
-        remove_all_filters( 'autoptimize_filter_cdn_magic_path_check' );
2285
+        remove_all_filters('autoptimize_filter_cdn_magic_path_check');
2286 2286
     }
2287 2287
 
2288 2288
     /**
@@ -2307,9 +2307,9 @@  discard block
 block discarded – undo
2307 2307
 <img src='$imgopthost/client/q_glossy,ret_img,w_400,h_200/$siteurl/wp-content/image.jpg' width='400' height='200' srcset="$imgopthost/client/q_glossy,ret_img,w_300/$siteurl/wp-content/image-300X150.jpg 300w, $imgopthost/client/q_glossy,ret_img,w_600/$siteurl/wp-content/image-600X300.jpg 600w" sizes="(max-width: 300px) 100vw, 300px" />
2308 2308
 MARKUP;
2309 2309
         $instance = autoptimizeImages::instance();
2310
-        $instance->set_options( $opts );
2311
-        $actual = $instance->filter_optimize_images( $markup );
2312
-        $this->assertEquals( $expected, $actual );
2310
+        $instance->set_options($opts);
2311
+        $actual = $instance->filter_optimize_images($markup);
2312
+        $this->assertEquals($expected, $actual);
2313 2313
     }
2314 2314
 
2315 2315
     /**
@@ -2335,9 +2335,9 @@  discard block
 block discarded – undo
2335 2335
 MARKUP;
2336 2336
 
2337 2337
         $instance = autoptimizeImages::instance();
2338
-        $instance->set_options( $opts );
2339
-        $actual = $instance->filter_optimize_images( $markup );
2340
-        $this->assertEquals( $expected, $actual );
2338
+        $instance->set_options($opts);
2339
+        $actual = $instance->filter_optimize_images($markup);
2340
+        $this->assertEquals($expected, $actual);
2341 2341
     }
2342 2342
 
2343 2343
     /**
@@ -2363,9 +2363,9 @@  discard block
 block discarded – undo
2363 2363
 MARKUP;
2364 2364
 
2365 2365
         $instance = autoptimizeImages::instance();
2366
-        $instance->set_options( $opts );
2367
-        $actual = $instance->filter_optimize_images( $markup );
2368
-        $this->assertEquals( $expected, $actual );
2366
+        $instance->set_options($opts);
2367
+        $actual = $instance->filter_optimize_images($markup);
2368
+        $this->assertEquals($expected, $actual);
2369 2369
     }
2370 2370
 
2371 2371
     /**
@@ -2390,9 +2390,9 @@  discard block
 block discarded – undo
2390 2390
 MARKUP;
2391 2391
 
2392 2392
         $instance = autoptimizeImages::instance();
2393
-        $instance->set_options( $opts );
2394
-        $actual = $instance->filter_lazyload_images( $markup );
2395
-        $this->assertEquals( $expected, $actual );
2393
+        $instance->set_options($opts);
2394
+        $actual = $instance->filter_lazyload_images($markup);
2395
+        $this->assertEquals($expected, $actual);
2396 2396
     }
2397 2397
 
2398 2398
     /**
@@ -2411,11 +2411,11 @@  discard block
 block discarded – undo
2411 2411
 MARKUP;
2412 2412
 
2413 2413
         $instance = autoptimizeImages::instance();
2414
-        $instance->set_options( $opts );
2415
-        $actual = $instance->filter_optimize_images( $markup );
2414
+        $instance->set_options($opts);
2415
+        $actual = $instance->filter_optimize_images($markup);
2416 2416
 
2417 2417
         // Expecting $markup since replacement should not happen.
2418
-        $this->assertEquals( $markup, $actual );
2418
+        $this->assertEquals($markup, $actual);
2419 2419
     }
2420 2420
 
2421 2421
     /**
@@ -2441,10 +2441,10 @@  discard block
 block discarded – undo
2441 2441
 MARKUP;
2442 2442
 
2443 2443
         $instance = autoptimizeImages::instance();
2444
-        $instance->set_options( $opts );
2445
-        $actual = $instance->filter_optimize_images( $markup );
2444
+        $instance->set_options($opts);
2445
+        $actual = $instance->filter_optimize_images($markup);
2446 2446
 
2447
-        $this->assertEquals( $expected, $actual );
2447
+        $this->assertEquals($expected, $actual);
2448 2448
     }
2449 2449
 
2450 2450
     /**
@@ -2468,10 +2468,10 @@  discard block
 block discarded – undo
2468 2468
 MARKUP;
2469 2469
 
2470 2470
         $instance = autoptimizeImages::instance();
2471
-        $instance->set_options( $opts );
2472
-        $actual = $instance->filter_optimize_images( $markup );
2471
+        $instance->set_options($opts);
2472
+        $actual = $instance->filter_optimize_images($markup);
2473 2473
 
2474
-        $this->assertEquals( $expected, $actual );
2474
+        $this->assertEquals($expected, $actual);
2475 2475
     }
2476 2476
 
2477 2477
     /**
@@ -2496,53 +2496,53 @@  discard block
 block discarded – undo
2496 2496
 MARKUP;
2497 2497
 
2498 2498
         $instance = autoptimizeImages::instance();
2499
-        $instance->set_options( $opts );
2500
-        $actual = $instance->filter_optimize_images( $markup );
2499
+        $instance->set_options($opts);
2500
+        $actual = $instance->filter_optimize_images($markup);
2501 2501
 
2502
-        $this->assertEquals( $expected, $actual );
2502
+        $this->assertEquals($expected, $actual);
2503 2503
     }
2504 2504
 
2505 2505
     /**
2506 2506
      * @dataProvider provider_str_is_valid_regex
2507 2507
      */
2508
-    public function test_str_is_valid_regex( $str, $expected )
2508
+    public function test_str_is_valid_regex($str, $expected)
2509 2509
     {
2510
-        $actual = autoptimizeUtils::str_is_valid_regex( $str );
2510
+        $actual = autoptimizeUtils::str_is_valid_regex($str);
2511 2511
 
2512
-        $this->assertEquals( $expected, $actual );
2512
+        $this->assertEquals($expected, $actual);
2513 2513
     }
2514 2514
 
2515 2515
     public function provider_str_is_valid_regex()
2516 2516
     {
2517 2517
         return [
2518
-            [ '<!--[if', false ],
2519
-            [ '&lt;--[if', false ],
2520
-            [ '/booya/i', true ],
2521
-            [ '~Valid(Regular)Expression~', true ],
2518
+            ['<!--[if', false],
2519
+            ['&lt;--[if', false],
2520
+            ['/booya/i', true],
2521
+            ['~Valid(Regular)Expression~', true],
2522 2522
         ];
2523 2523
     }
2524 2524
 
2525 2525
     /**
2526 2526
      * @dataProvider provider_protocol_relative_tests
2527 2527
      */
2528
-    public function test_is_protocol_relative( $str, $expected )
2528
+    public function test_is_protocol_relative($str, $expected)
2529 2529
     {
2530
-        $actual = autoptimizeUtils::is_protocol_relative( $str );
2530
+        $actual = autoptimizeUtils::is_protocol_relative($str);
2531 2531
 
2532
-        $this->assertEquals( $expected, $actual );
2532
+        $this->assertEquals($expected, $actual);
2533 2533
     }
2534 2534
 
2535 2535
     public function provider_protocol_relative_tests()
2536 2536
     {
2537 2537
         return [
2538
-            [ '//something-that-might-be-an-url-but-isnt-really', true ],
2539
-            [ '', false ],
2540
-            [ null, false ],
2541
-            [ 'booya/i', false ],
2542
-            [ '/root-relative', false ],
2543
-            [ 'http://what.ever/', false ],
2544
-            [ 'https://booya.kasha', false ],
2545
-            [ '1/', false ],
2538
+            ['//something-that-might-be-an-url-but-isnt-really', true],
2539
+            ['', false],
2540
+            [null, false],
2541
+            ['booya/i', false],
2542
+            ['/root-relative', false],
2543
+            ['http://what.ever/', false],
2544
+            ['https://booya.kasha', false],
2545
+            ['1/', false],
2546 2546
         ];
2547 2547
     }
2548 2548
 
@@ -2557,38 +2557,38 @@  discard block
 block discarded – undo
2557 2557
 
2558 2558
         $expected = 'img.centered,.aligncenter{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}';
2559 2559
 
2560
-        $instance = new autoptimizeStyles( $css );
2561
-        $minified = $instance->run_minifier_on( $css );
2560
+        $instance = new autoptimizeStyles($css);
2561
+        $minified = $instance->run_minifier_on($css);
2562 2562
 
2563
-        $this->assertEquals( $expected, $minified );
2563
+        $this->assertEquals($expected, $minified);
2564 2564
     }
2565 2565
 
2566 2566
     public function test_css_font_names_mangling()
2567 2567
     {
2568 2568
         // Properly quoted font names dont get mangled.
2569 2569
         $css      = 'h2{font-family:"Archivo Black"}';
2570
-        $instance = new autoptimizeStyles( $css );
2571
-        $actual   = $instance->run_minifier_on( $css );
2572
-        $this->assertEquals( $css, $actual );
2570
+        $instance = new autoptimizeStyles($css);
2571
+        $actual   = $instance->run_minifier_on($css);
2572
+        $this->assertEquals($css, $actual);
2573 2573
 
2574 2574
         // When not quoted, 'Black' used to become '#000', but not anymore... :)
2575 2575
         $css_unquoted = 'h2{font-family:Archivo Black;}';
2576 2576
         $expected     = 'h2{font-family:Archivo Black}';
2577
-        $instance     = new autoptimizeStyles( $css_unquoted );
2578
-        $actual       = $instance->run_minifier_on( $css_unquoted );
2579
-        $this->assertEquals( $expected, $actual );
2577
+        $instance     = new autoptimizeStyles($css_unquoted);
2578
+        $actual       = $instance->run_minifier_on($css_unquoted);
2579
+        $this->assertEquals($expected, $actual);
2580 2580
 
2581 2581
         $css_unquoted = 'h1{font:italic 1.2em Fira White,serif}';
2582
-        $instance     = new autoptimizeStyles( $css_unquoted );
2583
-        $actual       = $instance->run_minifier_on( $css_unquoted );
2584
-        $this->assertEquals( $css_unquoted, $actual );
2582
+        $instance     = new autoptimizeStyles($css_unquoted);
2583
+        $actual       = $instance->run_minifier_on($css_unquoted);
2584
+        $this->assertEquals($css_unquoted, $actual);
2585 2585
     }
2586 2586
 
2587 2587
     public function test_is_plugin_active_utils_wrapper()
2588 2588
     {
2589 2589
         // Our plugin is loaded via "muplugins_loaded" filter in tests/bootstrap.php
2590
-        $this->assertFalse( autoptimizeUtils::is_plugin_active( 'autoptimize/autoptimize.php' ) );
2591
-        $this->assertFalse( autoptimizeUtils::is_plugin_active( 'async-javascript/async-javascript.php' ) );
2590
+        $this->assertFalse(autoptimizeUtils::is_plugin_active('autoptimize/autoptimize.php'));
2591
+        $this->assertFalse(autoptimizeUtils::is_plugin_active('async-javascript/async-javascript.php'));
2592 2592
     }
2593 2593
 
2594 2594
     public function test_jsminphp_string_literal_minification()
@@ -2602,7 +2602,7 @@  discard block
 block discarded – undo
2602 2602
         $expected = '`line
2603 2603
 break`+`he  llo`;foo`hel( \'\');lo`;`he\nl\`lo`;(`he${one + two}`)';
2604 2604
 
2605
-        $actual = JSMin::minify( $js );
2606
-        $this->assertEquals( $expected, $actual );
2605
+        $actual = JSMin::minify($js);
2606
+        $this->assertEquals($expected, $actual);
2607 2607
     }
2608 2608
 }
Please login to merge, or discard this patch.
classes/autoptimizeUtils.php 1 patch
Spacing   +82 added lines, -82 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * General helpers.
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
     exit;
8 8
 }
9 9
 
@@ -16,15 +16,15 @@  discard block
 block discarded – undo
16 16
      *
17 17
      * @return bool
18 18
      */
19
-    public static function mbstring_available( $override = null )
19
+    public static function mbstring_available($override = null)
20 20
     {
21 21
         static $available = null;
22 22
 
23
-        if ( null === $available ) {
24
-            $available = \extension_loaded( 'mbstring' );
23
+        if (null === $available) {
24
+            $available = \extension_loaded('mbstring');
25 25
         }
26 26
 
27
-        if ( null !== $override ) {
27
+        if (null !== $override) {
28 28
             $available = $override;
29 29
         }
30 30
 
@@ -42,12 +42,12 @@  discard block
 block discarded – undo
42 42
      *
43 43
      * @return int|false
44 44
      */
45
-    public static function strpos( $haystack, $needle, $offset = 0, $encoding = null )
45
+    public static function strpos($haystack, $needle, $offset = 0, $encoding = null)
46 46
     {
47
-        if ( self::mbstring_available() ) {
48
-            return ( null === $encoding ) ? \mb_strpos( $haystack, $needle, $offset ) : \mb_strpos( $haystack, $needle, $offset, $encoding );
47
+        if (self::mbstring_available()) {
48
+            return (null === $encoding) ? \mb_strpos($haystack, $needle, $offset) : \mb_strpos($haystack, $needle, $offset, $encoding);
49 49
         } else {
50
-            return \strpos( $haystack, $needle, $offset );
50
+            return \strpos($haystack, $needle, $offset);
51 51
         }
52 52
     }
53 53
 
@@ -62,12 +62,12 @@  discard block
 block discarded – undo
62 62
      * @return int Number of charcters or bytes in given $string
63 63
      *             (characters if/when supported, bytes otherwise).
64 64
      */
65
-    public static function strlen( $string, $encoding = null )
65
+    public static function strlen($string, $encoding = null)
66 66
     {
67
-        if ( self::mbstring_available() ) {
68
-            return ( null === $encoding ) ? \mb_strlen( $string ) : \mb_strlen( $string, $encoding );
67
+        if (self::mbstring_available()) {
68
+            return (null === $encoding) ? \mb_strlen($string) : \mb_strlen($string, $encoding);
69 69
         } else {
70
-            return \strlen( $string );
70
+            return \strlen($string);
71 71
         }
72 72
     }
73 73
 
@@ -85,44 +85,44 @@  discard block
 block discarded – undo
85 85
      *
86 86
      * @return string
87 87
      */
88
-    public static function substr_replace( $string, $replacement, $start, $length = null, $encoding = null )
88
+    public static function substr_replace($string, $replacement, $start, $length = null, $encoding = null)
89 89
     {
90
-        if ( self::mbstring_available() ) {
91
-            $strlen = self::strlen( $string, $encoding );
90
+        if (self::mbstring_available()) {
91
+            $strlen = self::strlen($string, $encoding);
92 92
 
93
-            if ( $start < 0 ) {
93
+            if ($start < 0) {
94 94
                 if ( -$start < $strlen ) {
95 95
                     $start = $strlen + $start;
96 96
                 } else {
97 97
                     $start = 0;
98 98
                 }
99
-            } elseif ( $start > $strlen ) {
99
+            } elseif ($start > $strlen) {
100 100
                 $start = $strlen;
101 101
             }
102 102
 
103
-            if ( null === $length || '' === $length ) {
103
+            if (null === $length || '' === $length) {
104 104
                 $start2 = $strlen;
105
-            } elseif ( $length < 0 ) {
105
+            } elseif ($length < 0) {
106 106
                 $start2 = $strlen + $length;
107
-                if ( $start2 < $start ) {
107
+                if ($start2 < $start) {
108 108
                     $start2 = $start;
109 109
                 }
110 110
             } else {
111 111
                 $start2 = $start + $length;
112 112
             }
113 113
 
114
-            if ( null === $encoding ) {
115
-                $leader  = $start ? \mb_substr( $string, 0, $start ) : '';
116
-                $trailer = ( $start2 < $strlen ) ? \mb_substr( $string, $start2, null ) : '';
114
+            if (null === $encoding) {
115
+                $leader  = $start ? \mb_substr($string, 0, $start) : '';
116
+                $trailer = ($start2 < $strlen) ? \mb_substr($string, $start2, null) : '';
117 117
             } else {
118
-                $leader  = $start ? \mb_substr( $string, 0, $start, $encoding ) : '';
119
-                $trailer = ( $start2 < $strlen ) ? \mb_substr( $string, $start2, null, $encoding ) : '';
118
+                $leader  = $start ? \mb_substr($string, 0, $start, $encoding) : '';
119
+                $trailer = ($start2 < $strlen) ? \mb_substr($string, $start2, null, $encoding) : '';
120 120
             }
121 121
 
122 122
             return "{$leader}{$replacement}{$trailer}";
123 123
         }
124 124
 
125
-        return ( null === $length ) ? \substr_replace( $string, $replacement, $start ) : \substr_replace( $string, $replacement, $start, $length );
125
+        return (null === $length) ? \substr_replace($string, $replacement, $start) : \substr_replace($string, $replacement, $start, $length);
126 126
     }
127 127
 
128 128
     /**
@@ -132,16 +132,16 @@  discard block
 block discarded – undo
132 132
      *
133 133
      * @return bool
134 134
      */
135
-    public static function siteurl_not_root( $override = null )
135
+    public static function siteurl_not_root($override = null)
136 136
     {
137 137
         static $subdir = null;
138 138
 
139
-        if ( null === $subdir ) {
139
+        if (null === $subdir) {
140 140
             $parts  = self::get_ao_wp_site_url_parts();
141
-            $subdir = ( isset( $parts['path'] ) && ( '/' !== $parts['path'] ) );
141
+            $subdir = (isset($parts['path']) && ('/' !== $parts['path']));
142 142
         }
143 143
 
144
-        if ( null !== $override ) {
144
+        if (null !== $override) {
145 145
             $subdir = $override;
146 146
         }
147 147
 
@@ -158,8 +158,8 @@  discard block
 block discarded – undo
158 158
     {
159 159
         static $parts = array();
160 160
 
161
-        if ( empty( $parts ) ) {
162
-            $parts = \parse_url( AUTOPTIMIZE_WP_SITE_URL );
161
+        if (empty($parts)) {
162
+            $parts = \parse_url(AUTOPTIMIZE_WP_SITE_URL);
163 163
         }
164 164
 
165 165
         return $parts;
@@ -174,33 +174,33 @@  discard block
 block discarded – undo
174 174
      *
175 175
      * @return string
176 176
      */
177
-    public static function tweak_cdn_url_if_needed( $cdn_url, $force_cache_miss = false )
177
+    public static function tweak_cdn_url_if_needed($cdn_url, $force_cache_miss = false)
178 178
     {
179 179
         static $results = array();
180 180
 
181
-        if ( ! isset( $results[ $cdn_url ] ) || $force_cache_miss ) {
181
+        if (!isset($results[$cdn_url]) || $force_cache_miss) {
182 182
 
183 183
             // In order to return unmodified input when there's no need to tweak.
184
-            $results[ $cdn_url ] = $cdn_url;
184
+            $results[$cdn_url] = $cdn_url;
185 185
 
186 186
             // Behind a default true filter for backcompat, and only for sites
187 187
             // in a subfolder/subdirectory, but still easily turned off if
188 188
             // not wanted/needed...
189
-            if ( autoptimizeUtils::siteurl_not_root() ) {
190
-                $check = apply_filters( 'autoptimize_filter_cdn_magic_path_check', true, $cdn_url );
191
-                if ( $check ) {
189
+            if (autoptimizeUtils::siteurl_not_root()) {
190
+                $check = apply_filters('autoptimize_filter_cdn_magic_path_check', true, $cdn_url);
191
+                if ($check) {
192 192
                     $site_url_parts = autoptimizeUtils::get_ao_wp_site_url_parts();
193
-                    $cdn_url_parts  = \parse_url( $cdn_url );
194
-                    $schemeless     = self::is_protocol_relative( $cdn_url );
195
-                    $cdn_url_parts  = self::maybe_replace_cdn_path( $site_url_parts, $cdn_url_parts );
196
-                    if ( false !== $cdn_url_parts ) {
197
-                        $results[ $cdn_url ] = self::assemble_parsed_url( $cdn_url_parts, $schemeless );
193
+                    $cdn_url_parts  = \parse_url($cdn_url);
194
+                    $schemeless     = self::is_protocol_relative($cdn_url);
195
+                    $cdn_url_parts  = self::maybe_replace_cdn_path($site_url_parts, $cdn_url_parts);
196
+                    if (false !== $cdn_url_parts) {
197
+                        $results[$cdn_url] = self::assemble_parsed_url($cdn_url_parts, $schemeless);
198 198
                     }
199 199
                 }
200 200
             }
201 201
         }
202 202
 
203
-        return $results[ $cdn_url ];
203
+        return $results[$cdn_url];
204 204
     }
205 205
 
206 206
     /**
@@ -214,10 +214,10 @@  discard block
 block discarded – undo
214 214
      *
215 215
      * @return array|false
216 216
      */
217
-    public static function maybe_replace_cdn_path( array $site_url_parts, array $cdn_url_parts )
217
+    public static function maybe_replace_cdn_path(array $site_url_parts, array $cdn_url_parts)
218 218
     {
219
-        if ( isset( $site_url_parts['path'] ) && '/' !== $site_url_parts['path'] ) {
220
-            if ( ! isset( $cdn_url_parts['path'] ) || '/' === $cdn_url_parts['path'] ) {
219
+        if (isset($site_url_parts['path']) && '/' !== $site_url_parts['path']) {
220
+            if (!isset($cdn_url_parts['path']) || '/' === $cdn_url_parts['path']) {
221 221
                 $cdn_url_parts['path'] = $site_url_parts['path'];
222 222
                 return $cdn_url_parts;
223 223
             }
@@ -237,20 +237,20 @@  discard block
 block discarded – undo
237 237
      *
238 238
      * @return string
239 239
      */
240
-    public static function assemble_parsed_url( array $parsed_url, $schemeless = false )
240
+    public static function assemble_parsed_url(array $parsed_url, $schemeless = false)
241 241
     {
242
-        $scheme = isset( $parsed_url['scheme'] ) ? $parsed_url['scheme'] . '://' : '';
243
-        if ( $schemeless ) {
242
+        $scheme = isset($parsed_url['scheme']) ? $parsed_url['scheme'].'://' : '';
243
+        if ($schemeless) {
244 244
             $scheme = '//';
245 245
         }
246
-        $host     = isset( $parsed_url['host'] ) ? $parsed_url['host'] : '';
247
-        $port     = isset( $parsed_url['port'] ) ? ':' . $parsed_url['port'] : '';
248
-        $user     = isset( $parsed_url['user'] ) ? $parsed_url['user'] : '';
249
-        $pass     = isset( $parsed_url['pass'] ) ? ':' . $parsed_url['pass'] : '';
250
-        $pass     = ( $user || $pass ) ? "$pass@" : '';
251
-        $path     = isset( $parsed_url['path'] ) ? $parsed_url['path'] : '';
252
-        $query    = isset( $parsed_url['query'] ) ? '?' . $parsed_url['query'] : '';
253
-        $fragment = isset( $parsed_url['fragment'] ) ? '#' . $parsed_url['fragment'] : '';
246
+        $host     = isset($parsed_url['host']) ? $parsed_url['host'] : '';
247
+        $port     = isset($parsed_url['port']) ? ':'.$parsed_url['port'] : '';
248
+        $user     = isset($parsed_url['user']) ? $parsed_url['user'] : '';
249
+        $pass     = isset($parsed_url['pass']) ? ':'.$parsed_url['pass'] : '';
250
+        $pass     = ($user || $pass) ? "$pass@" : '';
251
+        $path     = isset($parsed_url['path']) ? $parsed_url['path'] : '';
252
+        $query    = isset($parsed_url['query']) ? '?'.$parsed_url['query'] : '';
253
+        $fragment = isset($parsed_url['fragment']) ? '#'.$parsed_url['fragment'] : '';
254 254
 
255 255
         return "$scheme$user$pass$host$port$path$query$fragment";
256 256
     }
@@ -262,12 +262,12 @@  discard block
 block discarded – undo
262 262
      *
263 263
      * @return bool
264 264
      */
265
-    public static function is_protocol_relative( $url )
265
+    public static function is_protocol_relative($url)
266 266
     {
267 267
         $result = false;
268 268
 
269
-        if ( ! empty( $url ) ) {
270
-            $result = ( 0 === strpos( $url, '//' ) );
269
+        if (!empty($url)) {
270
+            $result = (0 === strpos($url, '//'));
271 271
         }
272 272
 
273 273
         return $result;
@@ -280,9 +280,9 @@  discard block
 block discarded – undo
280 280
      *
281 281
      * @return string
282 282
      */
283
-    public static function path_canonicalize( $path )
283
+    public static function path_canonicalize($path)
284 284
     {
285
-        $patterns     = array(
285
+        $patterns = array(
286 286
             '~/{2,}~',
287 287
             '~/(\./)+~',
288 288
             '~([^/\.]+/(?R)*\.{2,}/)~',
@@ -295,7 +295,7 @@  discard block
 block discarded – undo
295 295
             '',
296 296
         );
297 297
 
298
-        return preg_replace( $patterns, $replacements, $path );
298
+        return preg_replace($patterns, $replacements, $path);
299 299
     }
300 300
 
301 301
     /**
@@ -307,15 +307,15 @@  discard block
 block discarded – undo
307 307
      *
308 308
      * @return null|array Service status or null.
309 309
      */
310
-    public static function check_service_availability( $return_result = false )
310
+    public static function check_service_availability($return_result = false)
311 311
     {
312
-        $service_availability_resp = wp_remote_get( 'https://misc.optimizingmatters.com/api/autoptimize_service_availablity.json?from=aomain&ver=' . AUTOPTIMIZE_PLUGIN_VERSION );
313
-        if ( ! is_wp_error( $service_availability_resp ) ) {
314
-            if ( '200' == wp_remote_retrieve_response_code( $service_availability_resp ) ) {
315
-                $availabilities = json_decode( wp_remote_retrieve_body( $service_availability_resp ), true );
316
-                if ( is_array( $availabilities ) ) {
317
-                    update_option( 'autoptimize_service_availablity', $availabilities );
318
-                    if ( $return_result ) {
312
+        $service_availability_resp = wp_remote_get('https://misc.optimizingmatters.com/api/autoptimize_service_availablity.json?from=aomain&ver='.AUTOPTIMIZE_PLUGIN_VERSION);
313
+        if (!is_wp_error($service_availability_resp)) {
314
+            if ('200' == wp_remote_retrieve_response_code($service_availability_resp)) {
315
+                $availabilities = json_decode(wp_remote_retrieve_body($service_availability_resp), true);
316
+                if (is_array($availabilities)) {
317
+                    update_option('autoptimize_service_availablity', $availabilities);
318
+                    if ($return_result) {
319 319
                         return $availabilities;
320 320
                     }
321 321
                 }
@@ -331,10 +331,10 @@  discard block
 block discarded – undo
331 331
      *
332 332
      * @return bool
333 333
      */
334
-    public static function str_is_valid_regex( $string )
334
+    public static function str_is_valid_regex($string)
335 335
     {
336
-        set_error_handler( function() {}, E_WARNING );
337
-        $is_regex = ( false !== preg_match( $string, '' ) );
336
+        set_error_handler(function() {}, E_WARNING);
337
+        $is_regex = (false !== preg_match($string, ''));
338 338
         restore_error_handler();
339 339
 
340 340
         return $is_regex;
@@ -347,16 +347,16 @@  discard block
 block discarded – undo
347 347
      *
348 348
      * @return bool
349 349
      */
350
-    public static function is_plugin_active( $plugin_file )
350
+    public static function is_plugin_active($plugin_file)
351 351
     {
352 352
         static $ipa_exists = null;
353
-        if ( null === $ipa_exists ) {
354
-            if ( ! function_exists( '\is_plugin_active' ) ) {
355
-                require_once ABSPATH . 'wp-admin/includes/plugin.php';
353
+        if (null === $ipa_exists) {
354
+            if (!function_exists('\is_plugin_active')) {
355
+                require_once ABSPATH.'wp-admin/includes/plugin.php';
356 356
             }
357
-            $ipa_exists = function_exists( '\is_plugin_active' );
357
+            $ipa_exists = function_exists('\is_plugin_active');
358 358
         }
359 359
 
360
-        return $ipa_exists && \is_plugin_active( $plugin_file );
360
+        return $ipa_exists && \is_plugin_active($plugin_file);
361 361
     }
362 362
 }
Please login to merge, or discard this patch.
classes/autoptimizeBase.php 1 patch
Spacing   +151 added lines, -151 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * Base class other (more-specific) classes inherit from.
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
     exit;
8 8
 }
9 9
 
@@ -26,7 +26,7 @@  discard block
 block discarded – undo
26 26
     /** @var string */
27 27
     public $cdn_url = '';
28 28
 
29
-    public function __construct( $content )
29
+    public function __construct($content)
30 30
     {
31 31
         $this->content = $content;
32 32
     }
@@ -38,7 +38,7 @@  discard block
 block discarded – undo
38 38
      *
39 39
      * @return bool
40 40
      */
41
-    abstract public function read( $options );
41
+    abstract public function read($options);
42 42
 
43 43
     /**
44 44
      * Joins and optimizes collected things.
@@ -69,40 +69,40 @@  discard block
 block discarded – undo
69 69
      *
70 70
      * @return bool|string
71 71
      */
72
-    public function getpath( $url )
72
+    public function getpath($url)
73 73
     {
74
-        $url = apply_filters( 'autoptimize_filter_cssjs_alter_url', $url );
74
+        $url = apply_filters('autoptimize_filter_cssjs_alter_url', $url);
75 75
 
76
-        if ( false !== strpos( $url, '%' ) ) {
77
-            $url = urldecode( $url );
76
+        if (false !== strpos($url, '%')) {
77
+            $url = urldecode($url);
78 78
         }
79 79
 
80
-        $site_host    = parse_url( AUTOPTIMIZE_WP_SITE_URL, PHP_URL_HOST );
81
-        $content_host = parse_url( AUTOPTIMIZE_WP_ROOT_URL, PHP_URL_HOST );
80
+        $site_host    = parse_url(AUTOPTIMIZE_WP_SITE_URL, PHP_URL_HOST);
81
+        $content_host = parse_url(AUTOPTIMIZE_WP_ROOT_URL, PHP_URL_HOST);
82 82
 
83 83
         // Normalizing attempts...
84
-        $double_slash_position = strpos( $url, '//' );
85
-        if ( 0 === $double_slash_position ) {
86
-            if ( is_ssl() ) {
87
-                $url = 'https:' . $url;
84
+        $double_slash_position = strpos($url, '//');
85
+        if (0 === $double_slash_position) {
86
+            if (is_ssl()) {
87
+                $url = 'https:'.$url;
88 88
             } else {
89
-                $url = 'http:' . $url;
89
+                $url = 'http:'.$url;
90 90
             }
91
-        } elseif ( ( false === $double_slash_position ) && ( false === strpos( $url, $site_host ) ) ) {
92
-            if ( AUTOPTIMIZE_WP_SITE_URL === $site_host ) {
93
-                $url = AUTOPTIMIZE_WP_SITE_URL . $url;
91
+        } elseif ((false === $double_slash_position) && (false === strpos($url, $site_host))) {
92
+            if (AUTOPTIMIZE_WP_SITE_URL === $site_host) {
93
+                $url = AUTOPTIMIZE_WP_SITE_URL.$url;
94 94
             } else {
95
-                $url = AUTOPTIMIZE_WP_SITE_URL . autoptimizeUtils::path_canonicalize( $url );
95
+                $url = AUTOPTIMIZE_WP_SITE_URL.autoptimizeUtils::path_canonicalize($url);
96 96
             }
97 97
         }
98 98
 
99
-        if ( $site_host !== $content_host ) {
100
-            $url = str_replace( AUTOPTIMIZE_WP_CONTENT_URL, AUTOPTIMIZE_WP_SITE_URL . AUTOPTIMIZE_WP_CONTENT_NAME, $url );
99
+        if ($site_host !== $content_host) {
100
+            $url = str_replace(AUTOPTIMIZE_WP_CONTENT_URL, AUTOPTIMIZE_WP_SITE_URL.AUTOPTIMIZE_WP_CONTENT_NAME, $url);
101 101
         }
102 102
 
103 103
         // First check; hostname wp site should be hostname of url!
104
-        $url_host = @parse_url( $url, PHP_URL_HOST ); // @codingStandardsIgnoreLine
105
-        if ( $url_host !== $site_host ) {
104
+        $url_host = @parse_url($url, PHP_URL_HOST); // @codingStandardsIgnoreLine
105
+        if ($url_host !== $site_host) {
106 106
             /**
107 107
              * First try to get all domains from WPML (if available)
108 108
              * then explicitely declare $this->cdn_url as OK as well
@@ -111,20 +111,20 @@  discard block
 block discarded – undo
111 111
              */
112 112
             $multidomains = array();
113 113
 
114
-            $multidomains_wpml = apply_filters( 'wpml_setting', array(), 'language_domains' );
115
-            if ( ! empty( $multidomains_wpml ) ) {
116
-                $multidomains = array_map( array( $this, 'get_url_hostname' ), $multidomains_wpml );
114
+            $multidomains_wpml = apply_filters('wpml_setting', array(), 'language_domains');
115
+            if (!empty($multidomains_wpml)) {
116
+                $multidomains = array_map(array($this, 'get_url_hostname'), $multidomains_wpml);
117 117
             }
118 118
 
119
-            if ( ! empty( $this->cdn_url ) ) {
120
-                $multidomains[] = parse_url( $this->cdn_url, PHP_URL_HOST );
119
+            if (!empty($this->cdn_url)) {
120
+                $multidomains[] = parse_url($this->cdn_url, PHP_URL_HOST);
121 121
             }
122 122
 
123
-            $multidomains = apply_filters( 'autoptimize_filter_cssjs_multidomain', $multidomains );
123
+            $multidomains = apply_filters('autoptimize_filter_cssjs_multidomain', $multidomains);
124 124
 
125
-            if ( ! empty( $multidomains ) ) {
126
-                if ( in_array( $url_host, $multidomains ) ) {
127
-                    $url = str_replace( $url_host, $site_host, $url );
125
+            if (!empty($multidomains)) {
126
+                if (in_array($url_host, $multidomains)) {
127
+                    $url = str_replace($url_host, $site_host, $url);
128 128
                 } else {
129 129
                     return false;
130 130
                 }
@@ -134,28 +134,28 @@  discard block
 block discarded – undo
134 134
         }
135 135
 
136 136
         // Try to remove "wp root url" from url while not minding http<>https.
137
-        $tmp_ao_root = preg_replace( '/https?:/', '', AUTOPTIMIZE_WP_ROOT_URL );
137
+        $tmp_ao_root = preg_replace('/https?:/', '', AUTOPTIMIZE_WP_ROOT_URL);
138 138
 
139
-        if ( $site_host !== $content_host ) {
139
+        if ($site_host !== $content_host) {
140 140
             // As we replaced the content-domain with the site-domain, we should match against that.
141
-            $tmp_ao_root = preg_replace( '/https?:/', '', AUTOPTIMIZE_WP_SITE_URL );
141
+            $tmp_ao_root = preg_replace('/https?:/', '', AUTOPTIMIZE_WP_SITE_URL);
142 142
         }
143 143
 
144
-        $tmp_url = preg_replace( '/https?:/', '', $url );
145
-        $path    = str_replace( $tmp_ao_root, '', $tmp_url );
144
+        $tmp_url = preg_replace('/https?:/', '', $url);
145
+        $path    = str_replace($tmp_ao_root, '', $tmp_url);
146 146
 
147 147
         // If path starts with :// or //, this is not a URL in the WP context and
148 148
         // we have to assume we can't aggregate.
149
-        if ( preg_match( '#^:?//#', $path ) ) {
149
+        if (preg_match('#^:?//#', $path)) {
150 150
             // External script/css (adsense, etc).
151 151
             return false;
152 152
         }
153 153
 
154 154
         // Prepend with WP_ROOT_DIR to have full path to file.
155
-        $path = str_replace( '//', '/', WP_ROOT_DIR . $path );
155
+        $path = str_replace('//', '/', WP_ROOT_DIR.$path);
156 156
 
157 157
         // Final check: does file exist and is it readable?
158
-        if ( file_exists( $path ) && is_file( $path ) && is_readable( $path ) ) {
158
+        if (file_exists($path) && is_file($path) && is_readable($path)) {
159 159
             return $path;
160 160
         } else {
161 161
             return false;
@@ -172,18 +172,18 @@  discard block
 block discarded – undo
172 172
      *
173 173
      * @return string
174 174
      */
175
-    protected function get_url_hostname( $url )
175
+    protected function get_url_hostname($url)
176 176
     {
177 177
         // Checking that the url starts with something vaguely resembling a protocol.
178
-        if ( ( 0 !== strpos( $url, 'http' ) ) && ( 0 !== strpos( $url, '//' ) ) ) {
179
-            $url = 'http://' . $url;
178
+        if ((0 !== strpos($url, 'http')) && (0 !== strpos($url, '//'))) {
179
+            $url = 'http://'.$url;
180 180
         }
181 181
 
182 182
         // Grab the hostname.
183
-        $hostname = parse_url( $url, PHP_URL_HOST );
183
+        $hostname = parse_url($url, PHP_URL_HOST);
184 184
 
185 185
         // Fallback when parse_url() fails.
186
-        if ( empty( $hostname ) ) {
186
+        if (empty($hostname)) {
187 187
             $hostname = $url;
188 188
         }
189 189
 
@@ -197,7 +197,7 @@  discard block
 block discarded – undo
197 197
      *
198 198
      * @return string
199 199
      */
200
-    protected function hide_noptimize( $markup )
200
+    protected function hide_noptimize($markup)
201 201
     {
202 202
         return $this->replace_contents_with_marker_if_exists(
203 203
             'NOPTIMIZE',
@@ -214,9 +214,9 @@  discard block
 block discarded – undo
214 214
      *
215 215
      * @return string
216 216
      */
217
-    protected function restore_noptimize( $markup )
217
+    protected function restore_noptimize($markup)
218 218
     {
219
-        return $this->restore_marked_content( 'NOPTIMIZE', $markup );
219
+        return $this->restore_marked_content('NOPTIMIZE', $markup);
220 220
     }
221 221
 
222 222
     /**
@@ -226,7 +226,7 @@  discard block
 block discarded – undo
226 226
      *
227 227
      * @return string
228 228
      */
229
-    protected function hide_iehacks( $markup )
229
+    protected function hide_iehacks($markup)
230 230
     {
231 231
         return $this->replace_contents_with_marker_if_exists(
232 232
             'IEHACK', // Marker name...
@@ -243,9 +243,9 @@  discard block
 block discarded – undo
243 243
      *
244 244
      * @return string
245 245
      */
246
-    protected function restore_iehacks( $markup )
246
+    protected function restore_iehacks($markup)
247 247
     {
248
-        return $this->restore_marked_content( 'IEHACK', $markup );
248
+        return $this->restore_marked_content('IEHACK', $markup);
249 249
     }
250 250
 
251 251
     /**
@@ -257,7 +257,7 @@  discard block
 block discarded – undo
257 257
      *
258 258
      * @return string
259 259
      */
260
-    protected function hide_comments( $markup )
260
+    protected function hide_comments($markup)
261 261
     {
262 262
         return $this->replace_contents_with_marker_if_exists(
263 263
             'COMMENTS',
@@ -275,9 +275,9 @@  discard block
 block discarded – undo
275 275
      *
276 276
      * @return string
277 277
      */
278
-    protected function restore_comments( $markup )
278
+    protected function restore_comments($markup)
279 279
     {
280
-        return $this->restore_marked_content( 'COMMENTS', $markup );
280
+        return $this->restore_marked_content('COMMENTS', $markup);
281 281
     }
282 282
 
283 283
     /**
@@ -288,44 +288,44 @@  discard block
 block discarded – undo
288 288
      *
289 289
      * @return string
290 290
      */
291
-    public function url_replace_cdn( $url )
291
+    public function url_replace_cdn($url)
292 292
     {
293 293
         // For 2.3 back-compat in which cdn-ing appeared to be automatically
294 294
         // including WP subfolder/subdirectory into account as part of cdn-ing,
295 295
         // even though it might've caused serious troubles in certain edge-cases.
296
-        $cdn_url = autoptimizeUtils::tweak_cdn_url_if_needed( $this->cdn_url );
296
+        $cdn_url = autoptimizeUtils::tweak_cdn_url_if_needed($this->cdn_url);
297 297
 
298 298
         // Allows API/filter to further tweak the cdn url...
299
-        $cdn_url = apply_filters( 'autoptimize_filter_base_cdnurl', $cdn_url );
300
-        if ( ! empty( $cdn_url ) ) {
301
-            $this->debug_log( 'before=' . $url );
299
+        $cdn_url = apply_filters('autoptimize_filter_base_cdnurl', $cdn_url);
300
+        if (!empty($cdn_url)) {
301
+            $this->debug_log('before='.$url);
302 302
 
303 303
             // Simple str_replace-based approach fails when $url is protocol-or-host-relative.
304
-            $is_protocol_relative = autoptimizeUtils::is_protocol_relative( $url );
305
-            $is_host_relative     = ( ! $is_protocol_relative && ( '/' === $url{0} ) );
306
-            $cdn_url              = rtrim( $cdn_url, '/' );
304
+            $is_protocol_relative = autoptimizeUtils::is_protocol_relative($url);
305
+            $is_host_relative     = (!$is_protocol_relative && ('/' === $url{0} ));
306
+            $cdn_url              = rtrim($cdn_url, '/');
307 307
 
308
-            if ( $is_host_relative ) {
308
+            if ($is_host_relative) {
309 309
                 // Prepending host-relative urls with the cdn url.
310
-                $url = $cdn_url . $url;
310
+                $url = $cdn_url.$url;
311 311
             } else {
312 312
                 // Either a protocol-relative or "regular" url, replacing it either way.
313
-                if ( $is_protocol_relative ) {
313
+                if ($is_protocol_relative) {
314 314
                     // Massage $site_url so that simple str_replace() still "works" by
315 315
                     // searching for the protocol-relative version of AUTOPTIMIZE_WP_SITE_URL.
316
-                    $site_url = str_replace( array( 'http:', 'https:' ), '', AUTOPTIMIZE_WP_SITE_URL );
316
+                    $site_url = str_replace(array('http:', 'https:'), '', AUTOPTIMIZE_WP_SITE_URL);
317 317
                 } else {
318 318
                     $site_url = AUTOPTIMIZE_WP_SITE_URL;
319 319
                 }
320
-                $this->debug_log( '`' . $site_url . '` -> `' . $cdn_url . '` in `' . $url . '`' );
321
-                $url = str_replace( $site_url, $cdn_url, $url );
320
+                $this->debug_log('`'.$site_url.'` -> `'.$cdn_url.'` in `'.$url.'`');
321
+                $url = str_replace($site_url, $cdn_url, $url);
322 322
             }
323 323
 
324
-            $this->debug_log( 'after=' . $url );
324
+            $this->debug_log('after='.$url);
325 325
         }
326 326
 
327 327
         // Allow API filter to take further care of CDN replacement.
328
-        $url = apply_filters( 'autoptimize_filter_base_replace_cdn', $url );
328
+        $url = apply_filters('autoptimize_filter_base_replace_cdn', $url);
329 329
 
330 330
         return $url;
331 331
     }
@@ -343,18 +343,18 @@  discard block
 block discarded – undo
343 343
      *
344 344
      * @return void
345 345
      */
346
-    protected function inject_in_html( $payload, $where )
346
+    protected function inject_in_html($payload, $where)
347 347
     {
348 348
         $warned   = false;
349
-        $position = autoptimizeUtils::strpos( $this->content, $where[0] );
350
-        if ( false !== $position ) {
349
+        $position = autoptimizeUtils::strpos($this->content, $where[0]);
350
+        if (false !== $position) {
351 351
             // Found the tag, setup content/injection as specified.
352
-            if ( 'after' === $where[1] ) {
353
-                $content = $where[0] . $payload;
354
-            } elseif ( 'replace' === $where[1] ) {
352
+            if ('after' === $where[1]) {
353
+                $content = $where[0].$payload;
354
+            } elseif ('replace' === $where[1]) {
355 355
                 $content = $payload;
356 356
             } else {
357
-                $content = $payload . $where[0];
357
+                $content = $payload.$where[0];
358 358
             }
359 359
             // Place where specified.
360 360
             $this->content = autoptimizeUtils::substr_replace(
@@ -363,14 +363,14 @@  discard block
 block discarded – undo
363 363
                 $position,
364 364
                 // Using plain strlen() should be safe here for now, since
365 365
                 // we're not searching for multibyte chars here still...
366
-                strlen( $where[0] )
366
+                strlen($where[0])
367 367
             );
368 368
         } else {
369 369
             // Couldn't find what was specified, just append and add a warning.
370 370
             $this->content .= $payload;
371
-            if ( ! $warned ) {
372
-                $tag_display    = str_replace( array( '<', '>' ), '', $where[0] );
373
-                $this->content .= '<!--noptimize--><!-- Autoptimize found a problem with the HTML in your Theme, tag `' . $tag_display . '` missing --><!--/noptimize-->';
371
+            if (!$warned) {
372
+                $tag_display    = str_replace(array('<', '>'), '', $where[0]);
373
+                $this->content .= '<!--noptimize--><!-- Autoptimize found a problem with the HTML in your Theme, tag `'.$tag_display.'` missing --><!--/noptimize-->';
374 374
                 $warned         = true;
375 375
             }
376 376
         }
@@ -384,10 +384,10 @@  discard block
 block discarded – undo
384 384
      *
385 385
      * @return bool
386 386
      */
387
-    protected function isremovable( $tag, $removables )
387
+    protected function isremovable($tag, $removables)
388 388
     {
389
-        foreach ( $removables as $match ) {
390
-            if ( false !== strpos( $tag, $match ) ) {
389
+        foreach ($removables as $match) {
390
+            if (false !== strpos($tag, $match)) {
391 391
                 return true;
392 392
             }
393 393
         }
@@ -402,10 +402,10 @@  discard block
 block discarded – undo
402 402
      *
403 403
      * @return string
404 404
      */
405
-    public function inject_minified_callback( $matches )
405
+    public function inject_minified_callback($matches)
406 406
     {
407 407
         static $conf = null;
408
-        if ( null === $conf ) {
408
+        if (null === $conf) {
409 409
             $conf = autoptimizeConfig::instance();
410 410
         }
411 411
 
@@ -420,62 +420,62 @@  discard block
 block discarded – undo
420 420
         $filehash = null;
421 421
 
422 422
         // Grab the parts we need.
423
-        $parts = explode( '|', $matches[1] );
424
-        if ( ! empty( $parts ) ) {
425
-            $filepath = isset( $parts[0] ) ? base64_decode( $parts[0] ) : null;
426
-            $filehash = isset( $parts[1] ) ? $parts[1] : null;
423
+        $parts = explode('|', $matches[1]);
424
+        if (!empty($parts)) {
425
+            $filepath = isset($parts[0]) ? base64_decode($parts[0]) : null;
426
+            $filehash = isset($parts[1]) ? $parts[1] : null;
427 427
         }
428 428
 
429 429
         // Bail early if something's not right...
430
-        if ( ! $filepath || ! $filehash ) {
430
+        if (!$filepath || !$filehash) {
431 431
             return "\n";
432 432
         }
433 433
 
434
-        $filecontent = file_get_contents( $filepath );
434
+        $filecontent = file_get_contents($filepath);
435 435
 
436 436
         // Some things are differently handled for css/js...
437
-        $is_js_file = ( '.js' === substr( $filepath, -3, 3 ) );
437
+        $is_js_file = ('.js' === substr($filepath, -3, 3));
438 438
 
439 439
         $is_css_file = false;
440
-        if ( ! $is_js_file ) {
441
-            $is_css_file = ( '.css' === substr( $filepath, -4, 4 ) );
440
+        if (!$is_js_file) {
441
+            $is_css_file = ('.css' === substr($filepath, -4, 4));
442 442
         }
443 443
 
444 444
         // BOMs being nuked here unconditionally (regardless of where they are)!
445
-        $filecontent = preg_replace( "#\x{EF}\x{BB}\x{BF}#", '', $filecontent );
445
+        $filecontent = preg_replace("#\x{EF}\x{BB}\x{BF}#", '', $filecontent);
446 446
 
447 447
         // Remove comments and blank lines.
448
-        if ( $is_js_file ) {
449
-            $filecontent = preg_replace( '#^\s*\/\/.*$#Um', '', $filecontent );
448
+        if ($is_js_file) {
449
+            $filecontent = preg_replace('#^\s*\/\/.*$#Um', '', $filecontent);
450 450
         }
451 451
 
452 452
         // Nuke un-important comments.
453
-        $filecontent = preg_replace( '#^\s*\/\*[^!].*\*\/\s?#Um', '', $filecontent );
453
+        $filecontent = preg_replace('#^\s*\/\*[^!].*\*\/\s?#Um', '', $filecontent);
454 454
 
455 455
         // Normalize newlines.
456
-        $filecontent = preg_replace( '#(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+#', "\n", $filecontent );
456
+        $filecontent = preg_replace('#(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+#', "\n", $filecontent);
457 457
 
458 458
         // JS specifics.
459
-        if ( $is_js_file ) {
459
+        if ($is_js_file) {
460 460
             // Append a semicolon at the end of js files if it's missing.
461
-            $last_char = substr( $filecontent, -1, 1 );
462
-            if ( ';' !== $last_char && '}' !== $last_char ) {
461
+            $last_char = substr($filecontent, -1, 1);
462
+            if (';' !== $last_char && '}' !== $last_char) {
463 463
                 $filecontent .= ';';
464 464
             }
465 465
             // Check if try/catch should be used.
466
-            $opt_js_try_catch = $conf->get( 'autoptimize_js_trycatch' );
467
-            if ( 'on' === $opt_js_try_catch ) {
466
+            $opt_js_try_catch = $conf->get('autoptimize_js_trycatch');
467
+            if ('on' === $opt_js_try_catch) {
468 468
                 // It should, wrap in try/catch.
469
-                $filecontent = 'try{' . $filecontent . '}catch(e){}';
469
+                $filecontent = 'try{'.$filecontent.'}catch(e){}';
470 470
             }
471
-        } elseif ( $is_css_file ) {
472
-            $filecontent = autoptimizeStyles::fixurls( $filepath, $filecontent );
471
+        } elseif ($is_css_file) {
472
+            $filecontent = autoptimizeStyles::fixurls($filepath, $filecontent);
473 473
         } else {
474 474
             $filecontent = '';
475 475
         }
476 476
 
477 477
         // Return modified (or empty!) code/content.
478
-        return "\n" . $filecontent;
478
+        return "\n".$filecontent;
479 479
     }
480 480
 
481 481
     /**
@@ -485,13 +485,13 @@  discard block
 block discarded – undo
485 485
      *
486 486
      * @return string
487 487
      */
488
-    protected function inject_minified( $in )
488
+    protected function inject_minified($in)
489 489
     {
490 490
         $out = $in;
491
-        if ( false !== strpos( $in, '%%INJECTLATER%%' ) ) {
491
+        if (false !== strpos($in, '%%INJECTLATER%%')) {
492 492
             $out = preg_replace_callback(
493
-                '#\/\*\!%%INJECTLATER' . AUTOPTIMIZE_HASH . '%%(.*?)%%INJECTLATER%%\*\/#is',
494
-                array( $this, 'inject_minified_callback' ),
493
+                '#\/\*\!%%INJECTLATER'.AUTOPTIMIZE_HASH.'%%(.*?)%%INJECTLATER%%\*\/#is',
494
+                array($this, 'inject_minified_callback'),
495 495
                 $in
496 496
             );
497 497
         }
@@ -511,9 +511,9 @@  discard block
 block discarded – undo
511 511
      *
512 512
      * @return string
513 513
      */
514
-    public static function build_injectlater_marker( $filepath, $hash )
514
+    public static function build_injectlater_marker($filepath, $hash)
515 515
     {
516
-        $contents = '/*!' . self::build_marker( 'INJECTLATER', $filepath, $hash ) . '*/';
516
+        $contents = '/*!'.self::build_marker('INJECTLATER', $filepath, $hash).'*/';
517 517
 
518 518
         return $contents;
519 519
     }
@@ -531,18 +531,18 @@  discard block
 block discarded – undo
531 531
      *
532 532
      * @return string
533 533
      */
534
-    public static function build_marker( $name, $data, $hash = null )
534
+    public static function build_marker($name, $data, $hash = null)
535 535
     {
536 536
         // Start the marker, add the data.
537
-        $marker = '%%' . $name . AUTOPTIMIZE_HASH . '%%' . base64_encode( $data );
537
+        $marker = '%%'.$name.AUTOPTIMIZE_HASH.'%%'.base64_encode($data);
538 538
 
539 539
         // Add the hash if provided.
540
-        if ( null !== $hash ) {
541
-            $marker .= '|' . $hash;
540
+        if (null !== $hash) {
541
+            $marker .= '|'.$hash;
542 542
         }
543 543
 
544 544
         // Close the marker.
545
-        $marker .= '%%' . $name . '%%';
545
+        $marker .= '%%'.$name.'%%';
546 546
 
547 547
         return $marker;
548 548
     }
@@ -562,22 +562,22 @@  discard block
 block discarded – undo
562 562
      *
563 563
      * @return string
564 564
      */
565
-    public static function replace_contents_with_marker_if_exists( $marker, $search, $re_replace_pattern, $content )
565
+    public static function replace_contents_with_marker_if_exists($marker, $search, $re_replace_pattern, $content)
566 566
     {
567 567
         $found = false;
568 568
 
569
-        $is_regex = autoptimizeUtils::str_is_valid_regex( $search );
570
-        if ( $is_regex ) {
571
-            $found = preg_match( $search, $content );
569
+        $is_regex = autoptimizeUtils::str_is_valid_regex($search);
570
+        if ($is_regex) {
571
+            $found = preg_match($search, $content);
572 572
         } else {
573
-            $found = ( false !== strpos( $content, $search ) );
573
+            $found = (false !== strpos($content, $search));
574 574
         }
575 575
 
576
-        if ( $found ) {
576
+        if ($found) {
577 577
             $content = preg_replace_callback(
578 578
                 $re_replace_pattern,
579
-                function( $matches ) use ( $marker ) {
580
-                    return autoptimizeBase::build_marker( $marker, $matches[0] );
579
+                function($matches) use ($marker) {
580
+                    return autoptimizeBase::build_marker($marker, $matches[0]);
581 581
                 },
582 582
                 $content
583 583
             );
@@ -594,13 +594,13 @@  discard block
 block discarded – undo
594 594
      *
595 595
      * @return string
596 596
      */
597
-    public static function restore_marked_content( $marker, $content )
597
+    public static function restore_marked_content($marker, $content)
598 598
     {
599
-        if ( false !== strpos( $content, $marker ) ) {
599
+        if (false !== strpos($content, $marker)) {
600 600
             $content = preg_replace_callback(
601
-                '#%%' . $marker . AUTOPTIMIZE_HASH . '%%(.*?)%%' . $marker . '%%#is',
602
-                function ( $matches ) {
603
-                    return base64_decode( $matches[1] );
601
+                '#%%'.$marker.AUTOPTIMIZE_HASH.'%%(.*?)%%'.$marker.'%%#is',
602
+                function($matches) {
603
+                    return base64_decode($matches[1]);
604 604
                 },
605 605
                 $content
606 606
             );
@@ -616,17 +616,17 @@  discard block
 block discarded – undo
616 616
      *
617 617
      * @return void
618 618
      */
619
-    protected function debug_log( $data )
619
+    protected function debug_log($data)
620 620
     {
621
-        if ( ! isset( $this->debug_log ) || ! $this->debug_log ) {
621
+        if (!isset($this->debug_log) || !$this->debug_log) {
622 622
             return;
623 623
         }
624 624
 
625
-        if ( ! is_string( $data ) && ! is_resource( $data ) ) {
626
-            $data = var_export( $data, true );
625
+        if (!is_string($data) && !is_resource($data)) {
626
+            $data = var_export($data, true);
627 627
         }
628 628
 
629
-        error_log( $data );
629
+        error_log($data);
630 630
     }
631 631
 
632 632
     /**
@@ -636,12 +636,12 @@  discard block
 block discarded – undo
636 636
      *
637 637
      * @return bool|string to be minified code or false.
638 638
      */
639
-    protected function prepare_minify_single( $filepath )
639
+    protected function prepare_minify_single($filepath)
640 640
     {
641 641
         // Decide what we're dealing with, return false if we don't know.
642
-        if ( $this->str_ends_in( $filepath, '.js' ) ) {
642
+        if ($this->str_ends_in($filepath, '.js')) {
643 643
             $type = 'js';
644
-        } elseif ( $this->str_ends_in( $filepath, '.css' ) ) {
644
+        } elseif ($this->str_ends_in($filepath, '.css')) {
645 645
             $type = 'css';
646 646
         } else {
647 647
             return false;
@@ -650,18 +650,18 @@  discard block
 block discarded – undo
650 650
         // Bail if it looks like its already minifed (by having -min or .min
651 651
         // in filename) or if it looks like WP jquery.js (which is minified).
652 652
         $minified_variants = array(
653
-            '-min.' . $type,
654
-            '.min.' . $type,
653
+            '-min.'.$type,
654
+            '.min.'.$type,
655 655
             'js/jquery/jquery.js',
656 656
         );
657
-        foreach ( $minified_variants as $ending ) {
658
-            if ( $this->str_ends_in( $filepath, $ending ) ) {
657
+        foreach ($minified_variants as $ending) {
658
+            if ($this->str_ends_in($filepath, $ending)) {
659 659
                 return false;
660 660
             }
661 661
         }
662 662
 
663 663
         // Get file contents, bail if empty.
664
-        $contents = file_get_contents( $filepath );
664
+        $contents = file_get_contents($filepath);
665 665
 
666 666
         return $contents;
667 667
     }
@@ -674,12 +674,12 @@  discard block
 block discarded – undo
674 674
      *
675 675
      * @return string
676 676
      */
677
-    protected function build_minify_single_url( autoptimizeCache $cache )
677
+    protected function build_minify_single_url(autoptimizeCache $cache)
678 678
     {
679
-        $url = AUTOPTIMIZE_CACHE_URL . $cache->getname();
679
+        $url = AUTOPTIMIZE_CACHE_URL.$cache->getname();
680 680
 
681 681
         // CDN-replace the resulting URL if needed...
682
-        $url = $this->url_replace_cdn( $url );
682
+        $url = $this->url_replace_cdn($url);
683 683
 
684 684
         return $url;
685 685
     }
@@ -692,15 +692,15 @@  discard block
 block discarded – undo
692 692
      *
693 693
      * @return bool
694 694
      */
695
-    protected function str_ends_in( $str, $test )
695
+    protected function str_ends_in($str, $test)
696 696
     {
697 697
         // @codingStandardsIgnoreStart
698 698
         // substr_compare() is bugged on 5.5.11: https://3v4l.org/qGYBH
699 699
         // return ( 0 === substr_compare( $str, $test, -strlen( $test ) ) );
700 700
         // @codingStandardsIgnoreEnd
701 701
 
702
-        $length = strlen( $test );
702
+        $length = strlen($test);
703 703
 
704
-        return ( substr( $str, -$length, $length ) === $test );
704
+        return (substr($str, -$length, $length) === $test);
705 705
     }
706 706
 }
Please login to merge, or discard this patch.
classes/autoptimizeMain.php 1 patch
Spacing   +152 added lines, -152 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * Wraps base plugin logic/hooks and handles activation/deactivation/uninstall.
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
     exit;
8 8
 }
9 9
 
@@ -33,7 +33,7 @@  discard block
 block discarded – undo
33 33
      * @param string $version Version.
34 34
      * @param string $filepath Filepath. Needed for activation/deactivation/uninstall hooks.
35 35
      */
36
-    public function __construct( $version, $filepath )
36
+    public function __construct($version, $filepath)
37 37
     {
38 38
         $this->version  = $version;
39 39
         $this->filepath = $filepath;
@@ -50,98 +50,98 @@  discard block
 block discarded – undo
50 50
 
51 51
     protected function add_hooks()
52 52
     {
53
-        if ( ! defined( 'AUTOPTIMIZE_SETUP_INITHOOK' ) ) {
54
-            define( 'AUTOPTIMIZE_SETUP_INITHOOK', 'plugins_loaded' );
53
+        if (!defined('AUTOPTIMIZE_SETUP_INITHOOK')) {
54
+            define('AUTOPTIMIZE_SETUP_INITHOOK', 'plugins_loaded');
55 55
         }
56 56
 
57
-        add_action( AUTOPTIMIZE_SETUP_INITHOOK, array( $this, 'setup' ) );
58
-        add_action( AUTOPTIMIZE_SETUP_INITHOOK, array( $this, 'hook_page_cache_purge' ) );
57
+        add_action(AUTOPTIMIZE_SETUP_INITHOOK, array($this, 'setup'));
58
+        add_action(AUTOPTIMIZE_SETUP_INITHOOK, array($this, 'hook_page_cache_purge'));
59 59
 
60
-        add_action( 'autoptimize_setup_done', array( $this, 'version_upgrades_check' ) );
61
-        add_action( 'autoptimize_setup_done', array( $this, 'check_cache_and_run' ) );
62
-        add_action( 'autoptimize_setup_done', array( $this, 'maybe_run_ao_extra' ) );
63
-        add_action( 'autoptimize_setup_done', array( $this, 'maybe_run_partners_tab' ) );
60
+        add_action('autoptimize_setup_done', array($this, 'version_upgrades_check'));
61
+        add_action('autoptimize_setup_done', array($this, 'check_cache_and_run'));
62
+        add_action('autoptimize_setup_done', array($this, 'maybe_run_ao_extra'));
63
+        add_action('autoptimize_setup_done', array($this, 'maybe_run_partners_tab'));
64 64
 
65
-        add_action( 'init', array( $this, 'load_textdomain' ) );
66
-        add_action( 'admin_init', array( 'PAnD', 'init' ) );
65
+        add_action('init', array($this, 'load_textdomain'));
66
+        add_action('admin_init', array('PAnD', 'init'));
67 67
 
68
-        register_activation_hook( $this->filepath, array( $this, 'on_activate' ) );
68
+        register_activation_hook($this->filepath, array($this, 'on_activate'));
69 69
     }
70 70
 
71 71
     public function on_activate()
72 72
     {
73
-        register_uninstall_hook( $this->filepath, 'autoptimizeMain::on_uninstall' );
73
+        register_uninstall_hook($this->filepath, 'autoptimizeMain::on_uninstall');
74 74
     }
75 75
 
76 76
     public function load_textdomain()
77 77
     {
78
-        load_plugin_textdomain( 'autoptimize' );
78
+        load_plugin_textdomain('autoptimize');
79 79
     }
80 80
 
81 81
     public function setup()
82 82
     {
83 83
         // Do we gzip in php when caching or is the webserver doing it?
84
-        define( 'AUTOPTIMIZE_CACHE_NOGZIP', (bool) get_option( 'autoptimize_cache_nogzip' ) );
84
+        define('AUTOPTIMIZE_CACHE_NOGZIP', (bool) get_option('autoptimize_cache_nogzip'));
85 85
 
86 86
         // These can be overridden by specifying them in wp-config.php or such.
87
-        if ( ! defined( 'AUTOPTIMIZE_WP_CONTENT_NAME' ) ) {
88
-            define( 'AUTOPTIMIZE_WP_CONTENT_NAME', '/' . wp_basename( WP_CONTENT_DIR ) );
87
+        if (!defined('AUTOPTIMIZE_WP_CONTENT_NAME')) {
88
+            define('AUTOPTIMIZE_WP_CONTENT_NAME', '/'.wp_basename(WP_CONTENT_DIR));
89 89
         }
90
-        if ( ! defined( 'AUTOPTIMIZE_CACHE_CHILD_DIR' ) ) {
91
-            define( 'AUTOPTIMIZE_CACHE_CHILD_DIR', '/cache/autoptimize/' );
90
+        if (!defined('AUTOPTIMIZE_CACHE_CHILD_DIR')) {
91
+            define('AUTOPTIMIZE_CACHE_CHILD_DIR', '/cache/autoptimize/');
92 92
         }
93
-        if ( ! defined( 'AUTOPTIMIZE_CACHEFILE_PREFIX' ) ) {
94
-            define( 'AUTOPTIMIZE_CACHEFILE_PREFIX', 'autoptimize_' );
93
+        if (!defined('AUTOPTIMIZE_CACHEFILE_PREFIX')) {
94
+            define('AUTOPTIMIZE_CACHEFILE_PREFIX', 'autoptimize_');
95 95
         }
96 96
         // Note: trailing slash is not optional!
97
-        if ( ! defined( 'AUTOPTIMIZE_CACHE_DIR' ) ) {
98
-            define( 'AUTOPTIMIZE_CACHE_DIR', autoptimizeCache::get_pathname() );
97
+        if (!defined('AUTOPTIMIZE_CACHE_DIR')) {
98
+            define('AUTOPTIMIZE_CACHE_DIR', autoptimizeCache::get_pathname());
99 99
         }
100 100
 
101
-        define( 'WP_ROOT_DIR', substr( WP_CONTENT_DIR, 0, strlen( WP_CONTENT_DIR ) - strlen( AUTOPTIMIZE_WP_CONTENT_NAME ) ) );
101
+        define('WP_ROOT_DIR', substr(WP_CONTENT_DIR, 0, strlen(WP_CONTENT_DIR) - strlen(AUTOPTIMIZE_WP_CONTENT_NAME)));
102 102
 
103
-        if ( ! defined( 'AUTOPTIMIZE_WP_SITE_URL' ) ) {
104
-            if ( function_exists( 'domain_mapping_siteurl' ) ) {
105
-                define( 'AUTOPTIMIZE_WP_SITE_URL', domain_mapping_siteurl( get_current_blog_id() ) );
103
+        if (!defined('AUTOPTIMIZE_WP_SITE_URL')) {
104
+            if (function_exists('domain_mapping_siteurl')) {
105
+                define('AUTOPTIMIZE_WP_SITE_URL', domain_mapping_siteurl(get_current_blog_id()));
106 106
             } else {
107
-                define( 'AUTOPTIMIZE_WP_SITE_URL', site_url() );
107
+                define('AUTOPTIMIZE_WP_SITE_URL', site_url());
108 108
             }
109 109
         }
110
-        if ( ! defined( 'AUTOPTIMIZE_WP_CONTENT_URL' ) ) {
111
-            if ( function_exists( 'get_original_url' ) ) {
112
-                define( 'AUTOPTIMIZE_WP_CONTENT_URL', str_replace( get_original_url( AUTOPTIMIZE_WP_SITE_URL ), AUTOPTIMIZE_WP_SITE_URL, content_url() ) );
110
+        if (!defined('AUTOPTIMIZE_WP_CONTENT_URL')) {
111
+            if (function_exists('get_original_url')) {
112
+                define('AUTOPTIMIZE_WP_CONTENT_URL', str_replace(get_original_url(AUTOPTIMIZE_WP_SITE_URL), AUTOPTIMIZE_WP_SITE_URL, content_url()));
113 113
             } else {
114
-                define( 'AUTOPTIMIZE_WP_CONTENT_URL', content_url() );
114
+                define('AUTOPTIMIZE_WP_CONTENT_URL', content_url());
115 115
             }
116 116
         }
117
-        if ( ! defined( 'AUTOPTIMIZE_CACHE_URL' ) ) {
118
-            if ( is_multisite() && apply_filters( 'autoptimize_separate_blog_caches', true ) ) {
117
+        if (!defined('AUTOPTIMIZE_CACHE_URL')) {
118
+            if (is_multisite() && apply_filters('autoptimize_separate_blog_caches', true)) {
119 119
                 $blog_id = get_current_blog_id();
120
-                define( 'AUTOPTIMIZE_CACHE_URL', AUTOPTIMIZE_WP_CONTENT_URL . AUTOPTIMIZE_CACHE_CHILD_DIR . $blog_id . '/' );
120
+                define('AUTOPTIMIZE_CACHE_URL', AUTOPTIMIZE_WP_CONTENT_URL.AUTOPTIMIZE_CACHE_CHILD_DIR.$blog_id.'/');
121 121
             } else {
122
-                define( 'AUTOPTIMIZE_CACHE_URL', AUTOPTIMIZE_WP_CONTENT_URL . AUTOPTIMIZE_CACHE_CHILD_DIR );
122
+                define('AUTOPTIMIZE_CACHE_URL', AUTOPTIMIZE_WP_CONTENT_URL.AUTOPTIMIZE_CACHE_CHILD_DIR);
123 123
             }
124 124
         }
125
-        if ( ! defined( 'AUTOPTIMIZE_WP_ROOT_URL' ) ) {
126
-            define( 'AUTOPTIMIZE_WP_ROOT_URL', str_replace( AUTOPTIMIZE_WP_CONTENT_NAME, '', AUTOPTIMIZE_WP_CONTENT_URL ) );
125
+        if (!defined('AUTOPTIMIZE_WP_ROOT_URL')) {
126
+            define('AUTOPTIMIZE_WP_ROOT_URL', str_replace(AUTOPTIMIZE_WP_CONTENT_NAME, '', AUTOPTIMIZE_WP_CONTENT_URL));
127 127
         }
128
-        if ( ! defined( 'AUTOPTIMIZE_HASH' ) ) {
129
-            define( 'AUTOPTIMIZE_HASH', wp_hash( AUTOPTIMIZE_CACHE_URL ) );
128
+        if (!defined('AUTOPTIMIZE_HASH')) {
129
+            define('AUTOPTIMIZE_HASH', wp_hash(AUTOPTIMIZE_CACHE_URL));
130 130
         }
131
-        if ( ! defined( 'AUTOPTIMIZE_SITE_DOMAIN' ) ) {
132
-            define( 'AUTOPTIMIZE_SITE_DOMAIN', parse_url( AUTOPTIMIZE_WP_SITE_URL, PHP_URL_HOST ) );
131
+        if (!defined('AUTOPTIMIZE_SITE_DOMAIN')) {
132
+            define('AUTOPTIMIZE_SITE_DOMAIN', parse_url(AUTOPTIMIZE_WP_SITE_URL, PHP_URL_HOST));
133 133
         }
134 134
 
135 135
         // Multibyte-capable string replacements are available with a filter.
136 136
         // Also requires 'mbstring' extension.
137
-        $with_mbstring = apply_filters( 'autoptimize_filter_main_use_mbstring', false );
138
-        if ( $with_mbstring ) {
139
-            autoptimizeUtils::mbstring_available( \extension_loaded( 'mbstring' ) );
137
+        $with_mbstring = apply_filters('autoptimize_filter_main_use_mbstring', false);
138
+        if ($with_mbstring) {
139
+            autoptimizeUtils::mbstring_available(\extension_loaded('mbstring'));
140 140
         } else {
141
-            autoptimizeUtils::mbstring_available( false );
141
+            autoptimizeUtils::mbstring_available(false);
142 142
         }
143 143
 
144
-        do_action( 'autoptimize_setup_done' );
144
+        do_action('autoptimize_setup_done');
145 145
     }
146 146
 
147 147
     /**
@@ -151,59 +151,59 @@  discard block
 block discarded – undo
151 151
      */
152 152
     public function version_upgrades_check()
153 153
     {
154
-        autoptimizeVersionUpdatesHandler::check_installed_and_update( $this->version );
154
+        autoptimizeVersionUpdatesHandler::check_installed_and_update($this->version);
155 155
     }
156 156
 
157 157
     public function check_cache_and_run()
158 158
     {
159
-        if ( autoptimizeCache::cacheavail() ) {
159
+        if (autoptimizeCache::cacheavail()) {
160 160
             $conf = autoptimizeConfig::instance();
161
-            if ( $conf->get( 'autoptimize_html' ) || $conf->get( 'autoptimize_js' ) || $conf->get( 'autoptimize_css' ) || autoptimizeImages::imgopt_active() || autoptimizeImages::should_lazyload_wrapper() ) {
161
+            if ($conf->get('autoptimize_html') || $conf->get('autoptimize_js') || $conf->get('autoptimize_css') || autoptimizeImages::imgopt_active() || autoptimizeImages::should_lazyload_wrapper()) {
162 162
                 // Hook into WordPress frontend.
163
-                if ( defined( 'AUTOPTIMIZE_INIT_EARLIER' ) ) {
163
+                if (defined('AUTOPTIMIZE_INIT_EARLIER')) {
164 164
                     add_action(
165 165
                         'init',
166
-                        array( $this, 'start_buffering' ),
166
+                        array($this, 'start_buffering'),
167 167
                         self::INIT_EARLIER_PRIORITY
168 168
                     );
169 169
                 } else {
170
-                    if ( ! defined( 'AUTOPTIMIZE_HOOK_INTO' ) ) {
171
-                        define( 'AUTOPTIMIZE_HOOK_INTO', 'template_redirect' );
170
+                    if (!defined('AUTOPTIMIZE_HOOK_INTO')) {
171
+                        define('AUTOPTIMIZE_HOOK_INTO', 'template_redirect');
172 172
                     }
173 173
                     add_action(
174
-                        constant( 'AUTOPTIMIZE_HOOK_INTO' ),
175
-                        array( $this, 'start_buffering' ),
174
+                        constant('AUTOPTIMIZE_HOOK_INTO'),
175
+                        array($this, 'start_buffering'),
176 176
                         self::DEFAULT_HOOK_PRIORITY
177 177
                     );
178 178
                 }
179 179
 
180 180
                 // And disable Jetpack's site accelerator if JS or CSS opt. are active.
181
-                if ( class_exists( 'Jetpack' ) && apply_filters( 'autoptimize_filter_main_disable_jetpack_cdn', true ) && ( $conf->get( 'autoptimize_js' ) || $conf->get( 'autoptimize_css' ) ) ) {
182
-                    add_filter( 'jetpack_force_disable_site_accelerator', '__return_true' );
181
+                if (class_exists('Jetpack') && apply_filters('autoptimize_filter_main_disable_jetpack_cdn', true) && ($conf->get('autoptimize_js') || $conf->get('autoptimize_css'))) {
182
+                    add_filter('jetpack_force_disable_site_accelerator', '__return_true');
183 183
                 }
184 184
             }
185 185
         } else {
186
-            add_action( 'admin_notices', 'autoptimizeMain::notice_cache_unavailable' );
186
+            add_action('admin_notices', 'autoptimizeMain::notice_cache_unavailable');
187 187
         }
188 188
     }
189 189
 
190 190
     public function maybe_run_ao_extra()
191 191
     {
192
-        if ( apply_filters( 'autoptimize_filter_extra_activate', true ) ) {
192
+        if (apply_filters('autoptimize_filter_extra_activate', true)) {
193 193
             $ao_imgopt = new autoptimizeImages();
194 194
             $ao_imgopt->run();
195 195
             $ao_extra = new autoptimizeExtra();
196 196
             $ao_extra->run();
197 197
 
198 198
             // And show the imgopt notice.
199
-            add_action( 'admin_notices', 'autoptimizeMain::notice_plug_imgopt' );
199
+            add_action('admin_notices', 'autoptimizeMain::notice_plug_imgopt');
200 200
         }
201 201
     }
202 202
 
203 203
     public function maybe_run_partners_tab()
204 204
     {
205 205
         // Loads partners tab code if in admin (and not in admin-ajax.php)!
206
-        if ( autoptimizeConfig::is_admin_and_not_ajax() ) {
206
+        if (autoptimizeConfig::is_admin_and_not_ajax()) {
207 207
             new autoptimizePartners();
208 208
         }
209 209
     }
@@ -211,7 +211,7 @@  discard block
 block discarded – undo
211 211
     public function hook_page_cache_purge()
212 212
     {
213 213
         // hook into a collection of page cache purge actions if filter allows.
214
-        if ( apply_filters( 'autoptimize_filter_main_hookpagecachepurge', true ) ) {
214
+        if (apply_filters('autoptimize_filter_main_hookpagecachepurge', true)) {
215 215
             $page_cache_purge_actions = array(
216 216
                 'after_rocket_clean_domain', // exists.
217 217
                 'hyper_cache_purged', // Stefano confirmed this will be added.
@@ -223,9 +223,9 @@  discard block
 block discarded – undo
223 223
                 'wpfc_delete_cache', // Emre confirmed this will be added this.
224 224
                 'swift_performance_after_clear_all_cache', // swift perf. yeah!
225 225
             );
226
-            $page_cache_purge_actions = apply_filters( 'autoptimize_filter_main_pagecachepurgeactions', $page_cache_purge_actions );
227
-            foreach ( $page_cache_purge_actions as $purge_action ) {
228
-                add_action( $purge_action, 'autoptimizeCache::clearall_actionless' );
226
+            $page_cache_purge_actions = apply_filters('autoptimize_filter_main_pagecachepurgeactions', $page_cache_purge_actions);
227
+            foreach ($page_cache_purge_actions as $purge_action) {
228
+                add_action($purge_action, 'autoptimizeCache::clearall_actionless');
229 229
             }
230 230
         }
231 231
     }
@@ -237,38 +237,38 @@  discard block
 block discarded – undo
237 237
      */
238 238
     public function start_buffering()
239 239
     {
240
-        if ( $this->should_buffer() ) {
240
+        if ($this->should_buffer()) {
241 241
 
242 242
             // Load speedupper conditionally (true by default).
243
-            if ( apply_filters( 'autoptimize_filter_speedupper', true ) ) {
243
+            if (apply_filters('autoptimize_filter_speedupper', true)) {
244 244
                 $ao_speedupper = new autoptimizeSpeedupper();
245 245
             }
246 246
 
247 247
             $conf = autoptimizeConfig::instance();
248 248
 
249
-            if ( $conf->get( 'autoptimize_js' ) ) {
250
-                if ( ! defined( 'CONCATENATE_SCRIPTS' ) ) {
251
-                    define( 'CONCATENATE_SCRIPTS', false );
249
+            if ($conf->get('autoptimize_js')) {
250
+                if (!defined('CONCATENATE_SCRIPTS')) {
251
+                    define('CONCATENATE_SCRIPTS', false);
252 252
                 }
253
-                if ( ! defined( 'COMPRESS_SCRIPTS' ) ) {
254
-                    define( 'COMPRESS_SCRIPTS', false );
253
+                if (!defined('COMPRESS_SCRIPTS')) {
254
+                    define('COMPRESS_SCRIPTS', false);
255 255
                 }
256 256
             }
257 257
 
258
-            if ( $conf->get( 'autoptimize_css' ) ) {
259
-                if ( ! defined( 'COMPRESS_CSS' ) ) {
260
-                    define( 'COMPRESS_CSS', false );
258
+            if ($conf->get('autoptimize_css')) {
259
+                if (!defined('COMPRESS_CSS')) {
260
+                    define('COMPRESS_CSS', false);
261 261
                 }
262 262
             }
263 263
 
264
-            if ( apply_filters( 'autoptimize_filter_obkiller', false ) ) {
265
-                while ( ob_get_level() > 0 ) {
264
+            if (apply_filters('autoptimize_filter_obkiller', false)) {
265
+                while (ob_get_level() > 0) {
266 266
                     ob_end_clean();
267 267
                 }
268 268
             }
269 269
 
270 270
             // Now, start the real thing!
271
-            ob_start( array( $this, 'end_buffering' ) );
271
+            ob_start(array($this, 'end_buffering'));
272 272
         }
273 273
     }
274 274
 
@@ -279,31 +279,31 @@  discard block
 block discarded – undo
279 279
      *                          deciding once per request (for use in tests).
280 280
      * @return bool
281 281
      */
282
-    public function should_buffer( $doing_tests = false )
282
+    public function should_buffer($doing_tests = false)
283 283
     {
284 284
         static $do_buffering = null;
285 285
 
286 286
         // Only check once in case we're called multiple times by others but
287 287
         // still allows multiple calls when doing tests.
288
-        if ( null === $do_buffering || $doing_tests ) {
288
+        if (null === $do_buffering || $doing_tests) {
289 289
 
290 290
             $ao_noptimize = false;
291 291
 
292 292
             // Checking for DONOTMINIFY constant as used by e.g. WooCommerce POS.
293
-            if ( defined( 'DONOTMINIFY' ) && ( constant( 'DONOTMINIFY' ) === true || constant( 'DONOTMINIFY' ) === 'true' ) ) {
293
+            if (defined('DONOTMINIFY') && (constant('DONOTMINIFY') === true || constant('DONOTMINIFY') === 'true')) {
294 294
                 $ao_noptimize = true;
295 295
             }
296 296
 
297 297
             // Skip checking query strings if they're disabled.
298
-            if ( apply_filters( 'autoptimize_filter_honor_qs_noptimize', true ) ) {
298
+            if (apply_filters('autoptimize_filter_honor_qs_noptimize', true)) {
299 299
                 // Check for `ao_noptimize` (and other) keys in the query string
300 300
                 // to get non-optimized page for debugging.
301 301
                 $keys = array(
302 302
                     'ao_noptimize',
303 303
                     'ao_noptirocket',
304 304
                 );
305
-                foreach ( $keys as $key ) {
306
-                    if ( array_key_exists( $key, $_GET ) && '1' === $_GET[ $key ] ) {
305
+                foreach ($keys as $key) {
306
+                    if (array_key_exists($key, $_GET) && '1' === $_GET[$key]) {
307 307
                         $ao_noptimize = true;
308 308
                         break;
309 309
                     }
@@ -311,15 +311,15 @@  discard block
 block discarded – undo
311 311
             }
312 312
 
313 313
             // If setting says not to optimize logged in user and user is logged in...
314
-            if ( 'on' !== get_option( 'autoptimize_optimize_logged', 'on' ) && is_user_logged_in() && current_user_can( 'edit_posts' ) ) {
314
+            if ('on' !== get_option('autoptimize_optimize_logged', 'on') && is_user_logged_in() && current_user_can('edit_posts')) {
315 315
                 $ao_noptimize = true;
316 316
             }
317 317
 
318 318
             // If setting says not to optimize cart/checkout.
319
-            if ( 'on' !== get_option( 'autoptimize_optimize_checkout', 'on' ) ) {
319
+            if ('on' !== get_option('autoptimize_optimize_checkout', 'on')) {
320 320
                 // Checking for woocommerce, easy digital downloads and wp ecommerce...
321
-                foreach ( array( 'is_checkout', 'is_cart', 'edd_is_checkout', 'wpsc_is_cart', 'wpsc_is_checkout' ) as $func ) {
322
-                    if ( function_exists( $func ) && $func() ) {
321
+                foreach (array('is_checkout', 'is_cart', 'edd_is_checkout', 'wpsc_is_cart', 'wpsc_is_checkout') as $func) {
322
+                    if (function_exists($func) && $func()) {
323 323
                         $ao_noptimize = true;
324 324
                         break;
325 325
                     }
@@ -327,11 +327,11 @@  discard block
 block discarded – undo
327 327
             }
328 328
 
329 329
             // Allows blocking of autoptimization on your own terms regardless of above decisions.
330
-            $ao_noptimize = (bool) apply_filters( 'autoptimize_filter_noptimize', $ao_noptimize );
330
+            $ao_noptimize = (bool) apply_filters('autoptimize_filter_noptimize', $ao_noptimize);
331 331
 
332 332
             // Check for site being previewed in the Customizer (available since WP 4.0).
333 333
             $is_customize_preview = false;
334
-            if ( function_exists( 'is_customize_preview' ) && is_customize_preview() ) {
334
+            if (function_exists('is_customize_preview') && is_customize_preview()) {
335 335
                 $is_customize_preview = is_customize_preview();
336 336
             }
337 337
 
@@ -342,7 +342,7 @@  discard block
 block discarded – undo
342 342
              * while the main query hasn't been ran yet. Thats why we use
343 343
              * AUTOPTIMIZE_INIT_EARLIER in tests.
344 344
              */
345
-            $do_buffering = ( ! is_admin() && ! is_feed() && ! $ao_noptimize && ! $is_customize_preview );
345
+            $do_buffering = (!is_admin() && !is_feed() && !$ao_noptimize && !$is_customize_preview);
346 346
         }
347 347
 
348 348
         return $do_buffering;
@@ -355,24 +355,24 @@  discard block
 block discarded – undo
355 355
      *
356 356
      * @return bool
357 357
      */
358
-    public function is_valid_buffer( $content )
358
+    public function is_valid_buffer($content)
359 359
     {
360 360
         // Defaults to true.
361 361
         $valid = true;
362 362
 
363
-        $has_no_html_tag    = ( false === stripos( $content, '<html' ) );
364
-        $has_xsl_stylesheet = ( false !== stripos( $content, '<xsl:stylesheet' ) );
365
-        $has_html5_doctype  = ( preg_match( '/^<!DOCTYPE.+html>/i', ltrim( $content ) ) > 0 );
363
+        $has_no_html_tag    = (false === stripos($content, '<html'));
364
+        $has_xsl_stylesheet = (false !== stripos($content, '<xsl:stylesheet'));
365
+        $has_html5_doctype  = (preg_match('/^<!DOCTYPE.+html>/i', ltrim($content)) > 0);
366 366
 
367
-        if ( $has_no_html_tag ) {
367
+        if ($has_no_html_tag) {
368 368
             // Can't be valid amp markup without an html tag preceding it.
369 369
             $is_amp_markup = false;
370 370
         } else {
371
-            $is_amp_markup = self::is_amp_markup( $content );
371
+            $is_amp_markup = self::is_amp_markup($content);
372 372
         }
373 373
 
374 374
         // If it's not html, or if it's amp or contains xsl stylesheets we don't touch it.
375
-        if ( $has_no_html_tag && ! $has_html5_doctype || $is_amp_markup || $has_xsl_stylesheet ) {
375
+        if ($has_no_html_tag && !$has_html5_doctype || $is_amp_markup || $has_xsl_stylesheet) {
376 376
             $valid = false;
377 377
         }
378 378
 
@@ -387,14 +387,14 @@  discard block
 block discarded – undo
387 387
      *
388 388
      * @return bool
389 389
      */
390
-    public static function is_amp_markup( $content )
390
+    public static function is_amp_markup($content)
391 391
     {
392 392
         // Short-circuit when a function is available to determine whether the response is (or will be) an AMP page.
393
-        if ( function_exists( 'is_amp_endpoint' ) ) {
393
+        if (function_exists('is_amp_endpoint')) {
394 394
             return is_amp_endpoint();
395 395
         }
396 396
 
397
-        $is_amp_markup = preg_match( '/<html[^>]*(?:amp|⚡)/i', $content );
397
+        $is_amp_markup = preg_match('/<html[^>]*(?:amp|⚡)/i', $content);
398 398
 
399 399
         return (bool) $is_amp_markup;
400 400
     }
@@ -407,10 +407,10 @@  discard block
 block discarded – undo
407 407
      *
408 408
      * @return string
409 409
      */
410
-    public function end_buffering( $content )
410
+    public function end_buffering($content)
411 411
     {
412 412
         // Bail early without modifying anything if we can't handle the content.
413
-        if ( ! $this->is_valid_buffer( $content ) ) {
413
+        if (!$this->is_valid_buffer($content)) {
414 414
             return $content;
415 415
         }
416 416
 
@@ -418,59 +418,59 @@  discard block
 block discarded – undo
418 418
 
419 419
         // Determine what needs to be ran.
420 420
         $classes = array();
421
-        if ( $conf->get( 'autoptimize_js' ) ) {
421
+        if ($conf->get('autoptimize_js')) {
422 422
             $classes[] = 'autoptimizeScripts';
423 423
         }
424
-        if ( $conf->get( 'autoptimize_css' ) ) {
424
+        if ($conf->get('autoptimize_css')) {
425 425
             $classes[] = 'autoptimizeStyles';
426 426
         }
427
-        if ( $conf->get( 'autoptimize_html' ) ) {
427
+        if ($conf->get('autoptimize_html')) {
428 428
             $classes[] = 'autoptimizeHTML';
429 429
         }
430 430
 
431 431
         $classoptions = array(
432 432
             'autoptimizeScripts' => array(
433
-                'aggregate'       => $conf->get( 'autoptimize_js_aggregate' ),
434
-                'justhead'        => $conf->get( 'autoptimize_js_justhead' ),
435
-                'forcehead'       => $conf->get( 'autoptimize_js_forcehead' ),
436
-                'trycatch'        => $conf->get( 'autoptimize_js_trycatch' ),
437
-                'js_exclude'      => $conf->get( 'autoptimize_js_exclude' ),
438
-                'cdn_url'         => $conf->get( 'autoptimize_cdn_url' ),
439
-                'include_inline'  => $conf->get( 'autoptimize_js_include_inline' ),
440
-                'minify_excluded' => $conf->get( 'autoptimize_minify_excluded' ),
433
+                'aggregate'       => $conf->get('autoptimize_js_aggregate'),
434
+                'justhead'        => $conf->get('autoptimize_js_justhead'),
435
+                'forcehead'       => $conf->get('autoptimize_js_forcehead'),
436
+                'trycatch'        => $conf->get('autoptimize_js_trycatch'),
437
+                'js_exclude'      => $conf->get('autoptimize_js_exclude'),
438
+                'cdn_url'         => $conf->get('autoptimize_cdn_url'),
439
+                'include_inline'  => $conf->get('autoptimize_js_include_inline'),
440
+                'minify_excluded' => $conf->get('autoptimize_minify_excluded'),
441 441
             ),
442 442
             'autoptimizeStyles'  => array(
443
-                'aggregate'       => $conf->get( 'autoptimize_css_aggregate' ),
444
-                'justhead'        => $conf->get( 'autoptimize_css_justhead' ),
445
-                'datauris'        => $conf->get( 'autoptimize_css_datauris' ),
446
-                'defer'           => $conf->get( 'autoptimize_css_defer' ),
447
-                'defer_inline'    => $conf->get( 'autoptimize_css_defer_inline' ),
448
-                'inline'          => $conf->get( 'autoptimize_css_inline' ),
449
-                'css_exclude'     => $conf->get( 'autoptimize_css_exclude' ),
450
-                'cdn_url'         => $conf->get( 'autoptimize_cdn_url' ),
451
-                'include_inline'  => $conf->get( 'autoptimize_css_include_inline' ),
452
-                'nogooglefont'    => $conf->get( 'autoptimize_css_nogooglefont' ),
453
-                'minify_excluded' => $conf->get( 'autoptimize_minify_excluded' ),
443
+                'aggregate'       => $conf->get('autoptimize_css_aggregate'),
444
+                'justhead'        => $conf->get('autoptimize_css_justhead'),
445
+                'datauris'        => $conf->get('autoptimize_css_datauris'),
446
+                'defer'           => $conf->get('autoptimize_css_defer'),
447
+                'defer_inline'    => $conf->get('autoptimize_css_defer_inline'),
448
+                'inline'          => $conf->get('autoptimize_css_inline'),
449
+                'css_exclude'     => $conf->get('autoptimize_css_exclude'),
450
+                'cdn_url'         => $conf->get('autoptimize_cdn_url'),
451
+                'include_inline'  => $conf->get('autoptimize_css_include_inline'),
452
+                'nogooglefont'    => $conf->get('autoptimize_css_nogooglefont'),
453
+                'minify_excluded' => $conf->get('autoptimize_minify_excluded'),
454 454
             ),
455 455
             'autoptimizeHTML'    => array(
456
-                'keepcomments' => $conf->get( 'autoptimize_html_keepcomments' ),
456
+                'keepcomments' => $conf->get('autoptimize_html_keepcomments'),
457 457
             ),
458 458
         );
459 459
 
460
-        $content = apply_filters( 'autoptimize_filter_html_before_minify', $content );
460
+        $content = apply_filters('autoptimize_filter_html_before_minify', $content);
461 461
 
462 462
         // Run the classes!
463
-        foreach ( $classes as $name ) {
464
-            $instance = new $name( $content );
465
-            if ( $instance->read( $classoptions[ $name ] ) ) {
463
+        foreach ($classes as $name) {
464
+            $instance = new $name($content);
465
+            if ($instance->read($classoptions[$name])) {
466 466
                 $instance->minify();
467 467
                 $instance->cache();
468 468
                 $content = $instance->getcontent();
469 469
             }
470
-            unset( $instance );
470
+            unset($instance);
471 471
         }
472 472
 
473
-        $content = apply_filters( 'autoptimize_html_after_minify', $content );
473
+        $content = apply_filters('autoptimize_html_after_minify', $content);
474 474
 
475 475
         return $content;
476 476
     }
@@ -514,25 +514,25 @@  discard block
 block discarded – undo
514 514
             'autoptimize_minify_excluded',
515 515
         );
516 516
 
517
-        if ( ! is_multisite() ) {
518
-            foreach ( $delete_options as $del_opt ) {
519
-                delete_option( $del_opt );
517
+        if (!is_multisite()) {
518
+            foreach ($delete_options as $del_opt) {
519
+                delete_option($del_opt);
520 520
             }
521 521
         } else {
522 522
             global $wpdb;
523
-            $blog_ids         = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );
523
+            $blog_ids         = $wpdb->get_col("SELECT blog_id FROM $wpdb->blogs");
524 524
             $original_blog_id = get_current_blog_id();
525
-            foreach ( $blog_ids as $blog_id ) {
526
-                switch_to_blog( $blog_id );
527
-                foreach ( $delete_options as $del_opt ) {
528
-                    delete_option( $del_opt );
525
+            foreach ($blog_ids as $blog_id) {
526
+                switch_to_blog($blog_id);
527
+                foreach ($delete_options as $del_opt) {
528
+                    delete_option($del_opt);
529 529
                 }
530 530
             }
531
-            switch_to_blog( $original_blog_id );
531
+            switch_to_blog($original_blog_id);
532 532
         }
533 533
 
534
-        if ( wp_get_schedule( 'ao_cachechecker' ) ) {
535
-            wp_clear_scheduled_hook( 'ao_cachechecker' );
534
+        if (wp_get_schedule('ao_cachechecker')) {
535
+            wp_clear_scheduled_hook('ao_cachechecker');
536 536
         }
537 537
     }
538 538
 
@@ -540,35 +540,35 @@  discard block
 block discarded – undo
540 540
     {
541 541
         echo '<div class="error"><p>';
542 542
         // Translators: %s is the cache directory location.
543
-        printf( __( 'Autoptimize cannot write to the cache directory (%s), please fix to enable CSS/ JS optimization!', 'autoptimize' ), AUTOPTIMIZE_CACHE_DIR );
543
+        printf(__('Autoptimize cannot write to the cache directory (%s), please fix to enable CSS/ JS optimization!', 'autoptimize'), AUTOPTIMIZE_CACHE_DIR);
544 544
         echo '</p></div>';
545 545
     }
546 546
 
547 547
     public static function notice_installed()
548 548
     {
549 549
         echo '<div class="updated"><p>';
550
-        _e( 'Thank you for installing and activating Autoptimize. Please configure it under "Settings" -> "Autoptimize" to start improving your site\'s performance.', 'autoptimize' );
550
+        _e('Thank you for installing and activating Autoptimize. Please configure it under "Settings" -> "Autoptimize" to start improving your site\'s performance.', 'autoptimize');
551 551
         echo '</p></div>';
552 552
     }
553 553
 
554 554
     public static function notice_updated()
555 555
     {
556 556
         echo '<div class="updated"><p>';
557
-        _e( 'Autoptimize has just been updated. Please <strong>test your site now</strong> and adapt Autoptimize config if needed.', 'autoptimize' );
557
+        _e('Autoptimize has just been updated. Please <strong>test your site now</strong> and adapt Autoptimize config if needed.', 'autoptimize');
558 558
         echo '</p></div>';
559 559
     }
560 560
 
561 561
     public static function notice_plug_imgopt()
562 562
     {
563 563
         // Translators: the URL added points to the Autopmize Extra settings.
564
-        $_ao_imgopt_plug_notice      = sprintf( __( 'Did you know Autoptimize includes on-the-fly image optimization (with support for WebP) and CDN via ShortPixel? Check out the %1$sAutoptimize Image settings%2$s to activate this option.', 'autoptimize' ), '<a href="options-general.php?page=autoptimize_imgopt">', '</a>' );
565
-        $_ao_imgopt_plug_notice      = apply_filters( 'autoptimize_filter_main_imgopt_plug_notice', $_ao_imgopt_plug_notice );
564
+        $_ao_imgopt_plug_notice      = sprintf(__('Did you know Autoptimize includes on-the-fly image optimization (with support for WebP) and CDN via ShortPixel? Check out the %1$sAutoptimize Image settings%2$s to activate this option.', 'autoptimize'), '<a href="options-general.php?page=autoptimize_imgopt">', '</a>');
565
+        $_ao_imgopt_plug_notice      = apply_filters('autoptimize_filter_main_imgopt_plug_notice', $_ao_imgopt_plug_notice);
566 566
         $_ao_imgopt_launch_ok        = autoptimizeImages::launch_ok_wrapper();
567 567
         $_ao_imgopt_plug_dismissible = 'ao-img-opt-plug-123';
568 568
         $_ao_imgopt_active           = autoptimizeImages::imgopt_active();
569 569
 
570
-        if ( current_user_can( 'manage_options' ) && '' !== $_ao_imgopt_plug_notice && ! $_ao_imgopt_active && $_ao_imgopt_launch_ok && PAnD::is_admin_notice_active( $_ao_imgopt_plug_dismissible ) ) {
571
-            echo '<div class="notice notice-info is-dismissible" data-dismissible="' . $_ao_imgopt_plug_dismissible . '"><p>';
570
+        if (current_user_can('manage_options') && '' !== $_ao_imgopt_plug_notice && !$_ao_imgopt_active && $_ao_imgopt_launch_ok && PAnD::is_admin_notice_active($_ao_imgopt_plug_dismissible)) {
571
+            echo '<div class="notice notice-info is-dismissible" data-dismissible="'.$_ao_imgopt_plug_dismissible.'"><p>';
572 572
             echo $_ao_imgopt_plug_notice;
573 573
             echo '</p></div>';
574 574
         }
Please login to merge, or discard this patch.
classes/autoptimizeConfig.php 1 patch
Spacing   +219 added lines, -219 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly.
2
+if (!defined('ABSPATH')) exit; // Exit if accessed directly.
3 3
 
4 4
 class autoptimizeConfig
5 5
 {
@@ -13,28 +13,28 @@  discard block
 block discarded – undo
13 13
      */
14 14
     private function __construct()
15 15
     {
16
-        if ( is_admin() ) {
16
+        if (is_admin()) {
17 17
             // Add the admin page and settings.
18
-            add_action( 'admin_menu', array( $this, 'addmenu' ) );
19
-            add_action( 'admin_init', array( $this, 'registersettings' ) );
18
+            add_action('admin_menu', array($this, 'addmenu'));
19
+            add_action('admin_init', array($this, 'registersettings'));
20 20
 
21 21
             // Set meta info.
22
-            if ( function_exists( 'plugin_row_meta' ) ) {
22
+            if (function_exists('plugin_row_meta')) {
23 23
                 // 2.8 and higher.
24
-                add_filter( 'plugin_row_meta', array( $this, 'setmeta' ), 10, 2 );
25
-            } elseif ( function_exists( 'post_class' ) ) {
24
+                add_filter('plugin_row_meta', array($this, 'setmeta'), 10, 2);
25
+            } elseif (function_exists('post_class')) {
26 26
                 // 2.7 and lower.
27
-                $plugin = plugin_basename( AUTOPTIMIZE_PLUGIN_DIR . 'autoptimize.php' );
28
-                add_filter( 'plugin_action_links_' . $plugin, array( $this, 'setmeta' ) );
27
+                $plugin = plugin_basename(AUTOPTIMIZE_PLUGIN_DIR.'autoptimize.php');
28
+                add_filter('plugin_action_links_'.$plugin, array($this, 'setmeta'));
29 29
             }
30 30
 
31 31
             // Clean cache?
32
-            if ( get_option( 'autoptimize_cache_clean' ) ) {
32
+            if (get_option('autoptimize_cache_clean')) {
33 33
                 autoptimizeCache::clearall();
34
-                update_option( 'autoptimize_cache_clean', 0 );
34
+                update_option('autoptimize_cache_clean', 0);
35 35
             }
36 36
 
37
-            $this->settings_screen_do_remote_http = apply_filters( 'autoptimize_settingsscreen_remotehttp', $this->settings_screen_do_remote_http );
37
+            $this->settings_screen_do_remote_http = apply_filters('autoptimize_settingsscreen_remotehttp', $this->settings_screen_do_remote_http);
38 38
         }
39 39
 
40 40
         // Adds the Autoptimize Toolbar to the Admin bar.
@@ -48,7 +48,7 @@  discard block
 block discarded – undo
48 48
     static public function instance()
49 49
     {
50 50
         // Only one instance.
51
-        if ( null === self::$instance ) {
51
+        if (null === self::$instance) {
52 52
             self::$instance = new autoptimizeConfig();
53 53
         }
54 54
 
@@ -174,28 +174,28 @@  discard block
 block discarded – undo
174 174
 
175 175
 <div class="wrap">
176 176
 
177
-<?php if ( version_compare( PHP_VERSION, '5.3.0' ) < 0 ) { ?>
178
-<div class="notice-error notice"><?php echo '<p>' . sprintf( __( '<strong>You are using a very old version of PHP</strong> (5.2.x or older) which has <a href=%s>serious security and performance issues</a>. Support for PHP 5.5 and below will be removed in one of the next AO released, please ask your hoster to provide you with an upgrade path to 7.x.', 'autoptimize' ), '"http://blog.futtta.be/2016/03/15/why-would-you-still-be-on-php-5-2/" target="_blank"' ) . '</p>'; ?></div>
177
+<?php if (version_compare(PHP_VERSION, '5.3.0') < 0) { ?>
178
+<div class="notice-error notice"><?php echo '<p>'.sprintf(__('<strong>You are using a very old version of PHP</strong> (5.2.x or older) which has <a href=%s>serious security and performance issues</a>. Support for PHP 5.5 and below will be removed in one of the next AO released, please ask your hoster to provide you with an upgrade path to 7.x.', 'autoptimize'), '"http://blog.futtta.be/2016/03/15/why-would-you-still-be-on-php-5-2/" target="_blank"').'</p>'; ?></div>
179 179
 <?php } ?>
180 180
 
181
-<?php if ( defined( 'AUTOPTIMIZE_LEGACY_MINIFIERS' ) ) { ?>
181
+<?php if (defined('AUTOPTIMIZE_LEGACY_MINIFIERS')) { ?>
182 182
     <div class="notice-error notice"><p>
183
-        <?php _e( "You are using the (no longer supported) AUTOPTIMIZE_LEGACY_MINIFIERS constant. Ensure your site is working properly and remove the constant, it doesn't do anything any more.", 'autoptimize' ); ?>
183
+        <?php _e("You are using the (no longer supported) AUTOPTIMIZE_LEGACY_MINIFIERS constant. Ensure your site is working properly and remove the constant, it doesn't do anything any more.", 'autoptimize'); ?>
184 184
     </p></div>
185 185
 <?php } ?>
186 186
 
187 187
 <div id="autoptimize_main">
188 188
     <div id="ao_title_and_button">
189
-        <h1 id="ao_title"><?php _e( 'Autoptimize Settings', 'autoptimize' ); ?>
189
+        <h1 id="ao_title"><?php _e('Autoptimize Settings', 'autoptimize'); ?>
190 190
         <span id="ao_adv_button">
191
-        <?php if ( get_option( 'autoptimize_show_adv', '0' ) == '1' ) { ?>
192
-            <a href="javascript:void(0);" id="ao_show_adv" class="button" style="display:none;"><span><?php _e("Show advanced settings","autoptimize") ?></span></a>
193
-            <a href="javascript:void(0);" id="ao_hide_adv" class="button"><span><?php _e("Hide advanced settings","autoptimize") ?></span></a>
191
+        <?php if (get_option('autoptimize_show_adv', '0') == '1') { ?>
192
+            <a href="javascript:void(0);" id="ao_show_adv" class="button" style="display:none;"><span><?php _e("Show advanced settings", "autoptimize") ?></span></a>
193
+            <a href="javascript:void(0);" id="ao_hide_adv" class="button"><span><?php _e("Hide advanced settings", "autoptimize") ?></span></a>
194 194
             <style>tr.ao_adv{display:table-row;} li.ao_adv{display:list-item;}</style>
195 195
             <?php $hiddenClass = ''; ?>
196 196
         <?php } else { ?>
197
-            <a href="javascript:void(0);" id="ao_show_adv" class="button"><span><?php _e("Show advanced settings","autoptimize") ?></span></a>
198
-            <a href="javascript:void(0);" id="ao_hide_adv" class="button" style="display:none;"><span><?php _e("Hide advanced settings","autoptimize") ?></span></a>
197
+            <a href="javascript:void(0);" id="ao_show_adv" class="button"><span><?php _e("Show advanced settings", "autoptimize") ?></span></a>
198
+            <a href="javascript:void(0);" id="ao_hide_adv" class="button" style="display:none;"><span><?php _e("Hide advanced settings", "autoptimize") ?></span></a>
199 199
             <?php $hiddenClass = 'hidden '; ?>
200 200
         <?php } ?>
201 201
         </span>
@@ -205,196 +205,196 @@  discard block
 block discarded – undo
205 205
     <?php echo $this->ao_admin_tabs(); ?>
206 206
 
207 207
 <form method="post" action="options.php">
208
-<?php settings_fields( 'autoptimize' ); ?>
208
+<?php settings_fields('autoptimize'); ?>
209 209
 
210 210
 <ul>
211 211
 
212 212
 <li class="itemDetail">
213
-<h2 class="itemTitle"><?php _e('JavaScript Options','autoptimize'); ?></h2>
213
+<h2 class="itemTitle"><?php _e('JavaScript Options', 'autoptimize'); ?></h2>
214 214
 <table class="form-table">
215 215
 <tr valign="top">
216
-<th scope="row"><?php _e('Optimize JavaScript Code?','autoptimize'); ?></th>
217
-<td><input type="checkbox" id="autoptimize_js" name="autoptimize_js" <?php echo get_option('autoptimize_js')?'checked="checked" ':''; ?>/></td>
216
+<th scope="row"><?php _e('Optimize JavaScript Code?', 'autoptimize'); ?></th>
217
+<td><input type="checkbox" id="autoptimize_js" name="autoptimize_js" <?php echo get_option('autoptimize_js') ? 'checked="checked" ' : ''; ?>/></td>
218 218
 </tr>
219
-<tr valign="top" class="<?php echo $hiddenClass;?>js_sub ao_adv">
220
-<th scope="row"><?php _e( 'Aggregate JS-files?', 'autoptimize' ); ?></th>
221
-<td><label class="cb_label"><input type="checkbox" id="autoptimize_js_aggregate" name="autoptimize_js_aggregate" <?php echo $conf->get( 'autoptimize_js_aggregate' ) ? 'checked="checked" ':''; ?>/>
222
-<?php _e( 'Aggregate all linked JS-files to have them loaded non-render blocking? If this option is off, the individual JS-files will remain in place but will be minified.', 'autoptimize' ); ?></label></td>
219
+<tr valign="top" class="<?php echo $hiddenClass; ?>js_sub ao_adv">
220
+<th scope="row"><?php _e('Aggregate JS-files?', 'autoptimize'); ?></th>
221
+<td><label class="cb_label"><input type="checkbox" id="autoptimize_js_aggregate" name="autoptimize_js_aggregate" <?php echo $conf->get('autoptimize_js_aggregate') ? 'checked="checked" ' : ''; ?>/>
222
+<?php _e('Aggregate all linked JS-files to have them loaded non-render blocking? If this option is off, the individual JS-files will remain in place but will be minified.', 'autoptimize'); ?></label></td>
223 223
 </tr>
224
-<tr valign="top" class="<?php echo $hiddenClass;?>js_sub ao_adv js_aggregate">
225
-<th scope="row"><?php _e('Also aggregate inline JS?','autoptimize'); ?></th>
226
-<td><label class="cb_label"><input type="checkbox" name="autoptimize_js_include_inline" <?php echo get_option('autoptimize_js_include_inline')?'checked="checked" ':''; ?>/>
227
-<?php _e('Let Autoptimize also extract JS from the HTML. <strong>Warning</strong>: this can make Autoptimize\'s cache size grow quickly, so only enable this if you know what you\'re doing.','autoptimize'); ?></label></td>
224
+<tr valign="top" class="<?php echo $hiddenClass; ?>js_sub ao_adv js_aggregate">
225
+<th scope="row"><?php _e('Also aggregate inline JS?', 'autoptimize'); ?></th>
226
+<td><label class="cb_label"><input type="checkbox" name="autoptimize_js_include_inline" <?php echo get_option('autoptimize_js_include_inline') ? 'checked="checked" ' : ''; ?>/>
227
+<?php _e('Let Autoptimize also extract JS from the HTML. <strong>Warning</strong>: this can make Autoptimize\'s cache size grow quickly, so only enable this if you know what you\'re doing.', 'autoptimize'); ?></label></td>
228 228
 </tr>
229
-<tr valign="top" class="<?php echo $hiddenClass;?>js_sub ao_adv js_aggregate">
230
-<th scope="row"><?php _e('Force JavaScript in &lt;head&gt;?','autoptimize'); ?></th>
231
-<td><label class="cb_label"><input type="checkbox" name="autoptimize_js_forcehead" <?php echo get_option('autoptimize_js_forcehead')?'checked="checked" ':''; ?>/>
232
-<?php _e('Load JavaScript early, this can potentially fix some JS-errors, but makes the JS render blocking.','autoptimize'); ?></label></td>
229
+<tr valign="top" class="<?php echo $hiddenClass; ?>js_sub ao_adv js_aggregate">
230
+<th scope="row"><?php _e('Force JavaScript in &lt;head&gt;?', 'autoptimize'); ?></th>
231
+<td><label class="cb_label"><input type="checkbox" name="autoptimize_js_forcehead" <?php echo get_option('autoptimize_js_forcehead') ? 'checked="checked" ' : ''; ?>/>
232
+<?php _e('Load JavaScript early, this can potentially fix some JS-errors, but makes the JS render blocking.', 'autoptimize'); ?></label></td>
233 233
 </tr>
234 234
 <?php if (get_option('autoptimize_js_justhead')) { ?>
235
-<tr valign="top" class="<?php echo $hiddenClass;?>js_sub ao_adv js_aggregate">
236
-<th scope="row"><?php _e('Look for scripts only in &lt;head&gt;?','autoptimize'); echo ' <i>'. __('(deprecated)','autoptimize') . '</i>'; ?></th>
237
-<td><label class="cb_label"><input type="checkbox" name="autoptimize_js_justhead" <?php echo get_option('autoptimize_js_justhead')?'checked="checked" ':''; ?>/>
238
-<?php _e('Mostly useful in combination with previous option when using jQuery-based templates, but might help keeping cache size under control.','autoptimize'); ?></label></td>
235
+<tr valign="top" class="<?php echo $hiddenClass; ?>js_sub ao_adv js_aggregate">
236
+<th scope="row"><?php _e('Look for scripts only in &lt;head&gt;?', 'autoptimize'); echo ' <i>'.__('(deprecated)', 'autoptimize').'</i>'; ?></th>
237
+<td><label class="cb_label"><input type="checkbox" name="autoptimize_js_justhead" <?php echo get_option('autoptimize_js_justhead') ? 'checked="checked" ' : ''; ?>/>
238
+<?php _e('Mostly useful in combination with previous option when using jQuery-based templates, but might help keeping cache size under control.', 'autoptimize'); ?></label></td>
239 239
 </tr>
240 240
 <?php } ?>
241
-<tr valign="top" class="<?php echo $hiddenClass;?>js_sub ao_adv">
242
-<th scope="row"><?php _e('Exclude scripts from Autoptimize:','autoptimize'); ?></th>
243
-<td><label><input type="text" style="width:100%;" name="autoptimize_js_exclude" value="<?php echo get_option('autoptimize_js_exclude',"wp-includes/js/dist/, wp-includes/js/tinymce/, js/jquery/jquery.js"); ?>"/><br />
244
-<?php _e('A comma-separated list of scripts you want to exclude from being optimized, for example \'whatever.js, another.js\' (without the quotes) to exclude those scripts from being aggregated by Autoptimize.','autoptimize'); ?></label></td>
241
+<tr valign="top" class="<?php echo $hiddenClass; ?>js_sub ao_adv">
242
+<th scope="row"><?php _e('Exclude scripts from Autoptimize:', 'autoptimize'); ?></th>
243
+<td><label><input type="text" style="width:100%;" name="autoptimize_js_exclude" value="<?php echo get_option('autoptimize_js_exclude', "wp-includes/js/dist/, wp-includes/js/tinymce/, js/jquery/jquery.js"); ?>"/><br />
244
+<?php _e('A comma-separated list of scripts you want to exclude from being optimized, for example \'whatever.js, another.js\' (without the quotes) to exclude those scripts from being aggregated by Autoptimize.', 'autoptimize'); ?></label></td>
245 245
 </tr>
246
-<tr valign="top" class="<?php echo $hiddenClass;?>js_sub ao_adv js_aggregate">
247
-<th scope="row"><?php _e('Add try-catch wrapping?','autoptimize'); ?></th>
248
-<td><label class="cb_label"><input type="checkbox" name="autoptimize_js_trycatch" <?php echo get_option('autoptimize_js_trycatch')?'checked="checked" ':''; ?>/>
249
-<?php _e('If your scripts break because of a JS-error, you might want to try this.','autoptimize'); ?></label></td>
246
+<tr valign="top" class="<?php echo $hiddenClass; ?>js_sub ao_adv js_aggregate">
247
+<th scope="row"><?php _e('Add try-catch wrapping?', 'autoptimize'); ?></th>
248
+<td><label class="cb_label"><input type="checkbox" name="autoptimize_js_trycatch" <?php echo get_option('autoptimize_js_trycatch') ? 'checked="checked" ' : ''; ?>/>
249
+<?php _e('If your scripts break because of a JS-error, you might want to try this.', 'autoptimize'); ?></label></td>
250 250
 </tr>
251 251
 </table>
252 252
 </li>
253 253
 
254 254
 <li class="itemDetail">
255
-<h2 class="itemTitle"><?php _e('CSS Options','autoptimize'); ?></h2>
255
+<h2 class="itemTitle"><?php _e('CSS Options', 'autoptimize'); ?></h2>
256 256
 <table class="form-table">
257 257
 <tr valign="top">
258
-<th scope="row"><?php _e('Optimize CSS Code?','autoptimize'); ?></th>
259
-<td><input type="checkbox" id="autoptimize_css" name="autoptimize_css" <?php echo get_option('autoptimize_css')?'checked="checked" ':''; ?>/></td>
258
+<th scope="row"><?php _e('Optimize CSS Code?', 'autoptimize'); ?></th>
259
+<td><input type="checkbox" id="autoptimize_css" name="autoptimize_css" <?php echo get_option('autoptimize_css') ? 'checked="checked" ' : ''; ?>/></td>
260 260
 </tr>
261
-<tr class="<?php echo $hiddenClass;?>css_sub ao_adv" valign="top">
262
-<th scope="row"><?php _e( 'Aggregate CSS-files?', 'autoptimize' ); ?></th>
263
-<td><label class="cb_label"><input type="checkbox" id="autoptimize_css_aggregate" name="autoptimize_css_aggregate" <?php echo $conf->get( 'autoptimize_css_aggregate' ) ? 'checked="checked" ' : ''; ?>/>
264
-<?php _e('Aggregate all linked CSS-files? If this option is off, the individual CSS-files will remain in place but will be minified.', 'autoptimize' ); ?></label></td>
261
+<tr class="<?php echo $hiddenClass; ?>css_sub ao_adv" valign="top">
262
+<th scope="row"><?php _e('Aggregate CSS-files?', 'autoptimize'); ?></th>
263
+<td><label class="cb_label"><input type="checkbox" id="autoptimize_css_aggregate" name="autoptimize_css_aggregate" <?php echo $conf->get('autoptimize_css_aggregate') ? 'checked="checked" ' : ''; ?>/>
264
+<?php _e('Aggregate all linked CSS-files? If this option is off, the individual CSS-files will remain in place but will be minified.', 'autoptimize'); ?></label></td>
265 265
 </tr>
266
-<tr valign="top" class="<?php echo $hiddenClass;?>css_sub ao_adv css_aggregate">
267
-<th scope="row"><?php _e('Also aggregate inline CSS?','autoptimize'); ?></th>
268
-<td><label class="cb_label"><input type="checkbox" name="autoptimize_css_include_inline" <?php echo get_option('autoptimize_css_include_inline','1')?'checked="checked" ':''; ?>/>
269
-<?php _e('Check this option for Autoptimize to also aggregate CSS in the HTML.','autoptimize'); ?></label></td>
266
+<tr valign="top" class="<?php echo $hiddenClass; ?>css_sub ao_adv css_aggregate">
267
+<th scope="row"><?php _e('Also aggregate inline CSS?', 'autoptimize'); ?></th>
268
+<td><label class="cb_label"><input type="checkbox" name="autoptimize_css_include_inline" <?php echo get_option('autoptimize_css_include_inline', '1') ? 'checked="checked" ' : ''; ?>/>
269
+<?php _e('Check this option for Autoptimize to also aggregate CSS in the HTML.', 'autoptimize'); ?></label></td>
270 270
 </tr>
271
-<tr class="<?php echo $hiddenClass;?>css_sub ao_adv css_aggregate" valign="top">
272
-<th scope="row"><?php _e('Generate data: URIs for images?','autoptimize'); ?></th>
273
-<td><label class="cb_label"><input type="checkbox" name="autoptimize_css_datauris" <?php echo get_option('autoptimize_css_datauris')?'checked="checked" ':''; ?>/>
274
-<?php _e('Enable this to include small background-images in the CSS itself instead of as separate downloads.','autoptimize'); ?></label></td>
271
+<tr class="<?php echo $hiddenClass; ?>css_sub ao_adv css_aggregate" valign="top">
272
+<th scope="row"><?php _e('Generate data: URIs for images?', 'autoptimize'); ?></th>
273
+<td><label class="cb_label"><input type="checkbox" name="autoptimize_css_datauris" <?php echo get_option('autoptimize_css_datauris') ? 'checked="checked" ' : ''; ?>/>
274
+<?php _e('Enable this to include small background-images in the CSS itself instead of as separate downloads.', 'autoptimize'); ?></label></td>
275 275
 </tr>
276 276
 <?php if (get_option('autoptimize_css_justhead')) { ?>
277
-<tr valign="top" class="<?php echo $hiddenClass;?>css_sub ao_adv css_aggregate">
278
-<th scope="row"><?php _e('Look for styles only in &lt;head&gt;?','autoptimize'); echo ' <i>'. __('(deprecated)','autoptimize') . '</i>'; ?></th>
279
-<td><label class="cb_label"><input type="checkbox" name="autoptimize_css_justhead" <?php echo get_option('autoptimize_css_justhead')?'checked="checked" ':''; ?>/>
280
-<?php _e('Don\'t autoptimize CSS outside the head-section. If the cache gets big, you might want to enable this.','autoptimize'); ?></label></td>
277
+<tr valign="top" class="<?php echo $hiddenClass; ?>css_sub ao_adv css_aggregate">
278
+<th scope="row"><?php _e('Look for styles only in &lt;head&gt;?', 'autoptimize'); echo ' <i>'.__('(deprecated)', 'autoptimize').'</i>'; ?></th>
279
+<td><label class="cb_label"><input type="checkbox" name="autoptimize_css_justhead" <?php echo get_option('autoptimize_css_justhead') ? 'checked="checked" ' : ''; ?>/>
280
+<?php _e('Don\'t autoptimize CSS outside the head-section. If the cache gets big, you might want to enable this.', 'autoptimize'); ?></label></td>
281 281
 </tr>
282 282
 <?php } ?>
283
-<tr valign="top" class="<?php echo $hiddenClass;?>css_sub ao_adv">
284
-<th scope="row"><?php _e('Inline and Defer CSS?','autoptimize'); ?></th>
285
-<td><label class="cb_label"><input type="checkbox" name="autoptimize_css_defer" id="autoptimize_css_defer" <?php echo get_option('autoptimize_css_defer')?'checked="checked" ':''; ?>/>
283
+<tr valign="top" class="<?php echo $hiddenClass; ?>css_sub ao_adv">
284
+<th scope="row"><?php _e('Inline and Defer CSS?', 'autoptimize'); ?></th>
285
+<td><label class="cb_label"><input type="checkbox" name="autoptimize_css_defer" id="autoptimize_css_defer" <?php echo get_option('autoptimize_css_defer') ? 'checked="checked" ' : ''; ?>/>
286 286
 <?php
287
-_e( 'Inline "above the fold CSS" while loading the main autoptimized CSS only after page load. <a href="http://wordpress.org/plugins/autoptimize/faq/" target="_blank">Check the FAQ</a> for more info.', 'autoptimize' );
288
-if ( function_exists( 'is_plugin_active' ) && ! is_plugin_active( 'autoptimize-criticalcss/ao_criticss_aas.php' ) ) {
287
+_e('Inline "above the fold CSS" while loading the main autoptimized CSS only after page load. <a href="http://wordpress.org/plugins/autoptimize/faq/" target="_blank">Check the FAQ</a> for more info.', 'autoptimize');
288
+if (function_exists('is_plugin_active') && !is_plugin_active('autoptimize-criticalcss/ao_criticss_aas.php')) {
289 289
     echo ' ';
290
-    $critcss_install_url = network_admin_url() . 'plugin-install.php?s=autoptimize+criticalcss&tab=search&type=term';
291
-    echo sprintf( __( 'This can be fully automated for different types of pages with the %s.', 'autoptimize' ), '<a href="'.$critcss_install_url.'">Autoptimize CriticalCSS Power-Up</a>' );
290
+    $critcss_install_url = network_admin_url().'plugin-install.php?s=autoptimize+criticalcss&tab=search&type=term';
291
+    echo sprintf(__('This can be fully automated for different types of pages with the %s.', 'autoptimize'), '<a href="'.$critcss_install_url.'">Autoptimize CriticalCSS Power-Up</a>');
292 292
 }
293 293
 ?>
294 294
 </label></td>
295 295
 </tr>
296
-<tr valign="top" class="<?php echo $hiddenClass;?>css_sub ao_adv" id="autoptimize_css_defer_inline">
296
+<tr valign="top" class="<?php echo $hiddenClass; ?>css_sub ao_adv" id="autoptimize_css_defer_inline">
297 297
 <th scope="row"></th>
298
-<td><label><textarea rows="10" cols="10" style="width:100%;" placeholder="<?php _e('Paste the above the fold CSS here.','autoptimize'); ?>" name="autoptimize_css_defer_inline"><?php echo get_option('autoptimize_css_defer_inline'); ?></textarea></label></td>
298
+<td><label><textarea rows="10" cols="10" style="width:100%;" placeholder="<?php _e('Paste the above the fold CSS here.', 'autoptimize'); ?>" name="autoptimize_css_defer_inline"><?php echo get_option('autoptimize_css_defer_inline'); ?></textarea></label></td>
299 299
 </tr>
300
-<tr valign="top" class="<?php echo $hiddenClass;?>ao_adv css_sub css_aggregate">
301
-<th scope="row"><?php _e('Inline all CSS?','autoptimize'); ?></th>
302
-<td><label class="cb_label"><input type="checkbox" id="autoptimize_css_inline" name="autoptimize_css_inline" <?php echo get_option('autoptimize_css_inline')?'checked="checked" ':''; ?>/>
303
-<?php _e('Inlining all CSS can improve performance for sites with a low pageviews/ visitor-rate, but may slow down performance otherwise.','autoptimize'); ?></label></td>
300
+<tr valign="top" class="<?php echo $hiddenClass; ?>ao_adv css_sub css_aggregate">
301
+<th scope="row"><?php _e('Inline all CSS?', 'autoptimize'); ?></th>
302
+<td><label class="cb_label"><input type="checkbox" id="autoptimize_css_inline" name="autoptimize_css_inline" <?php echo get_option('autoptimize_css_inline') ? 'checked="checked" ' : ''; ?>/>
303
+<?php _e('Inlining all CSS can improve performance for sites with a low pageviews/ visitor-rate, but may slow down performance otherwise.', 'autoptimize'); ?></label></td>
304 304
 </tr>
305
-<tr valign="top" class="<?php echo $hiddenClass;?>ao_adv css_sub">
306
-<th scope="row"><?php _e('Exclude CSS from Autoptimize:','autoptimize'); ?></th>
307
-<td><label><input type="text" style="width:100%;" name="autoptimize_css_exclude" value="<?php echo get_option('autoptimize_css_exclude','wp-content/cache/, wp-content/uploads/, admin-bar.min.css, dashicons.min.css'); ?>"/><br />
308
-<?php _e('A comma-separated list of CSS you want to exclude from being optimized.','autoptimize'); ?></label></td>
305
+<tr valign="top" class="<?php echo $hiddenClass; ?>ao_adv css_sub">
306
+<th scope="row"><?php _e('Exclude CSS from Autoptimize:', 'autoptimize'); ?></th>
307
+<td><label><input type="text" style="width:100%;" name="autoptimize_css_exclude" value="<?php echo get_option('autoptimize_css_exclude', 'wp-content/cache/, wp-content/uploads/, admin-bar.min.css, dashicons.min.css'); ?>"/><br />
308
+<?php _e('A comma-separated list of CSS you want to exclude from being optimized.', 'autoptimize'); ?></label></td>
309 309
 </tr>
310 310
 </table>
311 311
 </li>
312 312
 
313 313
 <li class="itemDetail">
314
-<h2 class="itemTitle"><?php _e('HTML Options','autoptimize'); ?></h2>
314
+<h2 class="itemTitle"><?php _e('HTML Options', 'autoptimize'); ?></h2>
315 315
 <table class="form-table">
316 316
 <tr valign="top">
317
-<th scope="row"><?php _e('Optimize HTML Code?','autoptimize'); ?></th>
318
-<td><input type="checkbox" id="autoptimize_html" name="autoptimize_html" <?php echo get_option('autoptimize_html')?'checked="checked" ':''; ?>/></td>
317
+<th scope="row"><?php _e('Optimize HTML Code?', 'autoptimize'); ?></th>
318
+<td><input type="checkbox" id="autoptimize_html" name="autoptimize_html" <?php echo get_option('autoptimize_html') ? 'checked="checked" ' : ''; ?>/></td>
319 319
 </tr>
320
-<tr class="<?php echo $hiddenClass;?>html_sub ao_adv" valign="top">
321
-<th scope="row"><?php _e('Keep HTML comments?','autoptimize'); ?></th>
322
-<td><label class="cb_label"><input type="checkbox" name="autoptimize_html_keepcomments" <?php echo get_option('autoptimize_html_keepcomments')?'checked="checked" ':''; ?>/>
323
-<?php _e('Enable this if you want HTML comments to remain in the page.','autoptimize'); ?></label></td>
320
+<tr class="<?php echo $hiddenClass; ?>html_sub ao_adv" valign="top">
321
+<th scope="row"><?php _e('Keep HTML comments?', 'autoptimize'); ?></th>
322
+<td><label class="cb_label"><input type="checkbox" name="autoptimize_html_keepcomments" <?php echo get_option('autoptimize_html_keepcomments') ? 'checked="checked" ' : ''; ?>/>
323
+<?php _e('Enable this if you want HTML comments to remain in the page.', 'autoptimize'); ?></label></td>
324 324
 </tr>
325 325
 </table>
326 326
 </li>
327 327
 
328 328
 <li class="itemDetail">
329
-<h2 class="itemTitle"><?php _e('CDN Options','autoptimize'); ?></h2>
329
+<h2 class="itemTitle"><?php _e('CDN Options', 'autoptimize'); ?></h2>
330 330
 <table class="form-table">
331 331
 <tr valign="top">
332
-<th scope="row"><?php _e('CDN Base URL','autoptimize'); ?></th>
333
-<td><label><input id="cdn_url" type="text" name="autoptimize_cdn_url" pattern="^(https?:)?\/\/([\da-z\.-]+)\.([\da-z\.]{2,6})([\/\w \.-]*)*(:\d{2,5})?\/?$" style="width:100%" value="<?php echo esc_url(get_option('autoptimize_cdn_url',''),array("http","https")); ?>" /><br />
334
-<?php _e('Enter your CDN root URL to enable CDN for Autoptimized files. The URL can be http, https or protocol-relative (e.g. <code>//cdn.example.com/</code>). This is not needed for Cloudflare.','autoptimize'); ?></label></td>
332
+<th scope="row"><?php _e('CDN Base URL', 'autoptimize'); ?></th>
333
+<td><label><input id="cdn_url" type="text" name="autoptimize_cdn_url" pattern="^(https?:)?\/\/([\da-z\.-]+)\.([\da-z\.]{2,6})([\/\w \.-]*)*(:\d{2,5})?\/?$" style="width:100%" value="<?php echo esc_url(get_option('autoptimize_cdn_url', ''), array("http", "https")); ?>" /><br />
334
+<?php _e('Enter your CDN root URL to enable CDN for Autoptimized files. The URL can be http, https or protocol-relative (e.g. <code>//cdn.example.com/</code>). This is not needed for Cloudflare.', 'autoptimize'); ?></label></td>
335 335
 </tr>
336 336
 </table>
337 337
 </li>
338 338
 
339
-<li class="<?php echo $hiddenClass;?>itemDetail ao_adv">
340
-<h2 class="itemTitle"><?php _e('Cache Info','autoptimize'); ?></h2>
339
+<li class="<?php echo $hiddenClass; ?>itemDetail ao_adv">
340
+<h2 class="itemTitle"><?php _e('Cache Info', 'autoptimize'); ?></h2>
341 341
 <table class="form-table" >
342
-<tr valign="top" class="<?php echo $hiddenClass;?>ao_adv">
343
-<th scope="row"><?php _e('Cache folder','autoptimize'); ?></th>
342
+<tr valign="top" class="<?php echo $hiddenClass; ?>ao_adv">
343
+<th scope="row"><?php _e('Cache folder', 'autoptimize'); ?></th>
344 344
 <td><?php echo htmlentities(AUTOPTIMIZE_CACHE_DIR); ?></td>
345 345
 </tr>
346
-<tr valign="top" class="<?php echo $hiddenClass;?>ao_adv">
347
-<th scope="row"><?php _e('Can we write?','autoptimize'); ?></th>
348
-<td><?php echo (autoptimizeCache::cacheavail() ? __('Yes','autoptimize') : __('No','autoptimize')); ?></td>
346
+<tr valign="top" class="<?php echo $hiddenClass; ?>ao_adv">
347
+<th scope="row"><?php _e('Can we write?', 'autoptimize'); ?></th>
348
+<td><?php echo (autoptimizeCache::cacheavail() ? __('Yes', 'autoptimize') : __('No', 'autoptimize')); ?></td>
349 349
 </tr>
350
-<tr valign="top" class="<?php echo $hiddenClass;?>ao_adv">
351
-<th scope="row"><?php _e('Cached styles and scripts','autoptimize'); ?></th>
350
+<tr valign="top" class="<?php echo $hiddenClass; ?>ao_adv">
351
+<th scope="row"><?php _e('Cached styles and scripts', 'autoptimize'); ?></th>
352 352
 <td><?php
353 353
     $AOstatArr = autoptimizeCache::stats();
354
-    if ( ! empty( $AOstatArr ) && is_array( $AOstatArr ) ) {
355
-        $AOcacheSize = size_format( $AOstatArr[1], 2 );
354
+    if (!empty($AOstatArr) && is_array($AOstatArr)) {
355
+        $AOcacheSize = size_format($AOstatArr[1], 2);
356 356
         $details = '';
357
-        if ( $AOcacheSize > 0 ) {
358
-            $details = ', ~' . $AOcacheSize . ' total';
357
+        if ($AOcacheSize > 0) {
358
+            $details = ', ~'.$AOcacheSize.' total';
359 359
         }
360
-        printf( __( '%1$s files, totalling %2$s Kbytes (calculated at %3$s)', 'autoptimize' ), $AOstatArr[0], $AOcacheSize, date( 'H:i e', $AOstatArr[2] ) );
360
+        printf(__('%1$s files, totalling %2$s Kbytes (calculated at %3$s)', 'autoptimize'), $AOstatArr[0], $AOcacheSize, date('H:i e', $AOstatArr[2]));
361 361
     }
362 362
 ?></td>
363 363
 </tr>
364 364
 </table>
365 365
 </li>
366 366
 
367
-<li class="<?php echo $hiddenClass;?>itemDetail ao_adv">
368
-<h2 class="itemTitle"><?php _e('Misc Options','autoptimize'); ?></h2>
367
+<li class="<?php echo $hiddenClass; ?>itemDetail ao_adv">
368
+<h2 class="itemTitle"><?php _e('Misc Options', 'autoptimize'); ?></h2>
369 369
 <table class="form-table">
370
-    <tr valign="top" class="<?php echo $hiddenClass;?>ao_adv">
371
-    <th scope="row"><?php _e('Save aggregated script/css as static files?','autoptimize'); ?></th>
372
-    <td><label class="cb_label"><input type="checkbox" name="autoptimize_cache_nogzip" <?php echo get_option('autoptimize_cache_nogzip','1')?'checked="checked" ':''; ?>/>
373
-    <?php _e('By default files saved are static css/js, uncheck this option if your webserver doesn\'t properly handle the compression and expiry.','autoptimize'); ?></label></td>
370
+    <tr valign="top" class="<?php echo $hiddenClass; ?>ao_adv">
371
+    <th scope="row"><?php _e('Save aggregated script/css as static files?', 'autoptimize'); ?></th>
372
+    <td><label class="cb_label"><input type="checkbox" name="autoptimize_cache_nogzip" <?php echo get_option('autoptimize_cache_nogzip', '1') ? 'checked="checked" ' : ''; ?>/>
373
+    <?php _e('By default files saved are static css/js, uncheck this option if your webserver doesn\'t properly handle the compression and expiry.', 'autoptimize'); ?></label></td>
374 374
     </tr>
375 375
     <?php
376 376
     $_min_excl_class = 'ao_adv';
377
-    if ( !$conf->get( 'autoptimize_css_aggregate' ) && !$conf->get( 'autoptimize_js_aggregate' ) ) {
377
+    if (!$conf->get('autoptimize_css_aggregate') && !$conf->get('autoptimize_js_aggregate')) {
378 378
         $_min_excl_class = ' hidden';
379 379
     }
380 380
     ?>
381 381
     <tr valign="top" id="min_excl_row" class="<?php echo $hiddenClass.$_min_excl_class; ?>">
382
-        <th scope="row"><?php _e('Minify excluded CSS and JS files?','autoptimize'); ?></th>
383
-        <td><label class="cb_label"><input type="checkbox" name="autoptimize_minify_excluded" <?php echo get_option('autoptimize_minify_excluded','1')?'checked="checked" ':''; ?>/>
384
-        <?php _e('When aggregating JS or CSS, excluded files that are not minified (based on filename) are by default minified by Autoptimize despite being excluded. Uncheck this option if anything breaks despite excluding.','autoptimize'); ?></label></td>
382
+        <th scope="row"><?php _e('Minify excluded CSS and JS files?', 'autoptimize'); ?></th>
383
+        <td><label class="cb_label"><input type="checkbox" name="autoptimize_minify_excluded" <?php echo get_option('autoptimize_minify_excluded', '1') ? 'checked="checked" ' : ''; ?>/>
384
+        <?php _e('When aggregating JS or CSS, excluded files that are not minified (based on filename) are by default minified by Autoptimize despite being excluded. Uncheck this option if anything breaks despite excluding.', 'autoptimize'); ?></label></td>
385 385
     </tr>
386
-    <tr valign="top" class="<?php echo $hiddenClass;?>ao_adv">
387
-    <th scope="row"><?php _e('Also optimize for logged in users?','autoptimize'); ?></th>
388
-    <td><label class="cb_label"><input type="checkbox" name="autoptimize_optimize_logged" <?php echo get_option('autoptimize_optimize_logged','1')?'checked="checked" ':''; ?>/>
389
-    <?php _e('By default Autoptimize is also active for logged on users, uncheck not to optimize when logged in e.g. to use a pagebuilder.','autoptimize'); ?></label></td>
386
+    <tr valign="top" class="<?php echo $hiddenClass; ?>ao_adv">
387
+    <th scope="row"><?php _e('Also optimize for logged in users?', 'autoptimize'); ?></th>
388
+    <td><label class="cb_label"><input type="checkbox" name="autoptimize_optimize_logged" <?php echo get_option('autoptimize_optimize_logged', '1') ? 'checked="checked" ' : ''; ?>/>
389
+    <?php _e('By default Autoptimize is also active for logged on users, uncheck not to optimize when logged in e.g. to use a pagebuilder.', 'autoptimize'); ?></label></td>
390 390
     </tr>
391 391
     <?php
392
-    if ( function_exists("is_checkout") || function_exists("is_cart") || function_exists("edd_is_checkout") || function_exists("wpsc_is_cart") || function_exists("wpsc_is_checkout") ) {
392
+    if (function_exists("is_checkout") || function_exists("is_cart") || function_exists("edd_is_checkout") || function_exists("wpsc_is_cart") || function_exists("wpsc_is_checkout")) {
393 393
     ?>
394
-    <tr valign="top" class="<?php echo $hiddenClass;?>ao_adv">
395
-        <th scope="row"><?php _e('Also optimize shop cart/ checkout?','autoptimize'); ?></th>
396
-        <td><label class="cb_label"><input type="checkbox" name="autoptimize_optimize_checkout" <?php echo get_option('autoptimize_optimize_checkout','1')?'checked="checked" ':''; ?>/>
397
-            <?php _e('By default Autoptimize is also active on your shop\'s cart/ checkout, uncheck not to optimize those.','autoptimize'); ?></label>
394
+    <tr valign="top" class="<?php echo $hiddenClass; ?>ao_adv">
395
+        <th scope="row"><?php _e('Also optimize shop cart/ checkout?', 'autoptimize'); ?></th>
396
+        <td><label class="cb_label"><input type="checkbox" name="autoptimize_optimize_checkout" <?php echo get_option('autoptimize_optimize_checkout', '1') ? 'checked="checked" ' : ''; ?>/>
397
+            <?php _e('By default Autoptimize is also active on your shop\'s cart/ checkout, uncheck not to optimize those.', 'autoptimize'); ?></label>
398 398
         </td>
399 399
     </tr>
400 400
     <?php } ?>
@@ -403,11 +403,11 @@  discard block
 block discarded – undo
403 403
 
404 404
 </ul>
405 405
 
406
-<input type="hidden" id="autoptimize_show_adv" name="autoptimize_show_adv" value="<?php echo get_option('autoptimize_show_adv','0'); ?>">
406
+<input type="hidden" id="autoptimize_show_adv" name="autoptimize_show_adv" value="<?php echo get_option('autoptimize_show_adv', '0'); ?>">
407 407
 
408 408
 <p class="submit">
409
-<input type="submit" class="button-secondary" value="<?php _e('Save Changes','autoptimize') ?>" />
410
-<input type="submit" class="button-primary" name="autoptimize_cache_clean" value="<?php _e('Save Changes and Empty Cache','autoptimize') ?>" />
409
+<input type="submit" class="button-secondary" value="<?php _e('Save Changes', 'autoptimize') ?>" />
410
+<input type="submit" class="button-primary" name="autoptimize_cache_clean" value="<?php _e('Save Changes and Empty Cache', 'autoptimize') ?>" />
411 411
 </p>
412 412
 
413 413
 </form>
@@ -416,13 +416,13 @@  discard block
 block discarded – undo
416 416
     <div class="autoptimize_banner hidden">
417 417
       <ul>
418 418
     <?php
419
-    if ( $this->settings_screen_do_remote_http ) {
420
-        $AO_banner = get_transient( 'autoptimize_banner' );
421
-        if ( empty( $AO_banner ) ) {
422
-            $banner_resp = wp_remote_get( 'https://misc.optimizingmatters.com/autoptimize_news.html?ao_ver='.AUTOPTIMIZE_PLUGIN_VERSION );
423
-            if ( ! is_wp_error( $banner_resp ) ) {
424
-                if ( '200' == wp_remote_retrieve_response_code( $banner_resp ) ) {
425
-                    $AO_banner = wp_kses_post( wp_remote_retrieve_body( $banner_resp ) );
419
+    if ($this->settings_screen_do_remote_http) {
420
+        $AO_banner = get_transient('autoptimize_banner');
421
+        if (empty($AO_banner)) {
422
+            $banner_resp = wp_remote_get('https://misc.optimizingmatters.com/autoptimize_news.html?ao_ver='.AUTOPTIMIZE_PLUGIN_VERSION);
423
+            if (!is_wp_error($banner_resp)) {
424
+                if ('200' == wp_remote_retrieve_response_code($banner_resp)) {
425
+                    $AO_banner = wp_kses_post(wp_remote_retrieve_body($banner_resp));
426 426
                     set_transient('autoptimize_banner', $AO_banner, DAY_IN_SECONDS);
427 427
                 }
428 428
             }
@@ -430,17 +430,17 @@  discard block
 block discarded – undo
430 430
         echo $AO_banner;
431 431
     }
432 432
     ?>
433
-        <li><?php _e("Need help? <a href='https://wordpress.org/plugins/autoptimize/faq/'>Check out the FAQ here</a>.","autoptimize"); ?></li>
434
-        <li><?php _e("Happy with Autoptimize?","autoptimize"); ?><br /><a href="<?php echo network_admin_url(); ?>plugin-install.php?tab=search&type=author&s=optimizingmatters"><?php _e("Try my other plugins!","autoptimize"); ?></a></li>
433
+        <li><?php _e("Need help? <a href='https://wordpress.org/plugins/autoptimize/faq/'>Check out the FAQ here</a>.", "autoptimize"); ?></li>
434
+        <li><?php _e("Happy with Autoptimize?", "autoptimize"); ?><br /><a href="<?php echo network_admin_url(); ?>plugin-install.php?tab=search&type=author&s=optimizingmatters"><?php _e("Try my other plugins!", "autoptimize"); ?></a></li>
435 435
     </ul>
436 436
     </div>
437 437
     <div style="margin-left:10px;margin-top:-5px;">
438 438
         <h2>
439
-            <?php _e("futtta about","autoptimize") ?>
439
+            <?php _e("futtta about", "autoptimize") ?>
440 440
             <select id="feed_dropdown" >
441
-                <option value="1"><?php _e("Autoptimize","autoptimize") ?></option>
442
-                <option value="2"><?php _e("WordPress","autoptimize") ?></option>
443
-                <option value="3"><?php _e("Web Technology","autoptimize") ?></option>
441
+                <option value="1"><?php _e("Autoptimize", "autoptimize") ?></option>
442
+                <option value="2"><?php _e("WordPress", "autoptimize") ?></option>
443
+                <option value="3"><?php _e("Web Technology", "autoptimize") ?></option>
444 444
             </select>
445 445
         </h2>
446 446
         <div id="futtta_feed">
@@ -455,7 +455,7 @@  discard block
 block discarded – undo
455 455
             </div>
456 456
         </div>
457 457
     </div>
458
-    <div style="float:right;margin:50px 15px;"><a href="http://blog.futtta.be/2013/10/21/do-not-donate-to-me/" target="_blank"><img width="100px" height="85px" src="<?php echo plugins_url().'/'.plugin_basename(dirname(__FILE__)).'/external/do_not_donate_smallest.png'; ?>" title="<?php _e("Do not donate for this plugin!","autoptimize"); ?>"></a></div>
458
+    <div style="float:right;margin:50px 15px;"><a href="http://blog.futtta.be/2013/10/21/do-not-donate-to-me/" target="_blank"><img width="100px" height="85px" src="<?php echo plugins_url().'/'.plugin_basename(dirname(__FILE__)).'/external/do_not_donate_smallest.png'; ?>" title="<?php _e("Do not donate for this plugin!", "autoptimize"); ?>"></a></div>
459 459
 </div>
460 460
 
461 461
 <script type="text/javascript">
@@ -626,49 +626,49 @@  discard block
 block discarded – undo
626 626
 
627 627
     public function addmenu()
628 628
     {
629
-        $hook = add_options_page( __( 'Autoptimize Options', 'autoptimize' ), 'Autoptimize', 'manage_options', 'autoptimize', array( $this, 'show' ) );
630
-        add_action( 'admin_print_scripts-' . $hook, array( $this, 'autoptimize_admin_scripts' ) );
631
-        add_action( 'admin_print_styles-' . $hook, array( $this, 'autoptimize_admin_styles' ) );
629
+        $hook = add_options_page(__('Autoptimize Options', 'autoptimize'), 'Autoptimize', 'manage_options', 'autoptimize', array($this, 'show'));
630
+        add_action('admin_print_scripts-'.$hook, array($this, 'autoptimize_admin_scripts'));
631
+        add_action('admin_print_styles-'.$hook, array($this, 'autoptimize_admin_styles'));
632 632
     }
633 633
 
634 634
     public function autoptimize_admin_scripts()
635 635
     {
636
-        wp_enqueue_script( 'jqcookie', plugins_url( '/external/js/jquery.cookie.min.js', __FILE__ ), array( 'jquery' ), null, true );
637
-        wp_enqueue_script( 'unslider', plugins_url( '/external/js/unslider-min.js', __FILE__ ), array( 'jquery' ), null, true );
636
+        wp_enqueue_script('jqcookie', plugins_url('/external/js/jquery.cookie.min.js', __FILE__), array('jquery'), null, true);
637
+        wp_enqueue_script('unslider', plugins_url('/external/js/unslider-min.js', __FILE__), array('jquery'), null, true);
638 638
     }
639 639
 
640 640
     public function autoptimize_admin_styles()
641 641
     {
642
-        wp_enqueue_style( 'unslider', plugins_url( '/external/js/unslider.css', __FILE__ ) );
643
-        wp_enqueue_style( 'unslider-dots', plugins_url( '/external/js/unslider-dots.css', __FILE__ ) );
642
+        wp_enqueue_style('unslider', plugins_url('/external/js/unslider.css', __FILE__));
643
+        wp_enqueue_style('unslider-dots', plugins_url('/external/js/unslider-dots.css', __FILE__));
644 644
     }
645 645
 
646 646
     public function registersettings() {
647
-        register_setting( 'autoptimize', 'autoptimize_html' );
648
-        register_setting( 'autoptimize', 'autoptimize_html_keepcomments' );
649
-        register_setting( 'autoptimize', 'autoptimize_js' );
650
-        register_setting( 'autoptimize', 'autoptimize_js_aggregate' );
651
-        register_setting( 'autoptimize', 'autoptimize_js_exclude' );
652
-        register_setting( 'autoptimize', 'autoptimize_js_trycatch' );
653
-        register_setting( 'autoptimize', 'autoptimize_js_justhead' );
654
-        register_setting( 'autoptimize', 'autoptimize_js_forcehead' );
655
-        register_setting( 'autoptimize', 'autoptimize_js_include_inline' );
656
-        register_setting( 'autoptimize', 'autoptimize_css' );
657
-        register_setting( 'autoptimize', 'autoptimize_css_aggregate' );
658
-        register_setting( 'autoptimize', 'autoptimize_css_exclude' );
659
-        register_setting( 'autoptimize', 'autoptimize_css_justhead' );
660
-        register_setting( 'autoptimize', 'autoptimize_css_datauris' );
661
-        register_setting( 'autoptimize', 'autoptimize_css_defer' );
662
-        register_setting( 'autoptimize', 'autoptimize_css_defer_inline' );
663
-        register_setting( 'autoptimize', 'autoptimize_css_inline' );
664
-        register_setting( 'autoptimize', 'autoptimize_css_include_inline' );
665
-        register_setting( 'autoptimize', 'autoptimize_cdn_url' );
666
-        register_setting( 'autoptimize', 'autoptimize_cache_clean' );
667
-        register_setting( 'autoptimize', 'autoptimize_cache_nogzip' );
668
-        register_setting( 'autoptimize', 'autoptimize_show_adv' );
669
-        register_setting( 'autoptimize', 'autoptimize_optimize_logged' );
670
-        register_setting( 'autoptimize', 'autoptimize_optimize_checkout' );
671
-        register_setting( 'autoptimize', 'autoptimize_minify_excluded' );
647
+        register_setting('autoptimize', 'autoptimize_html');
648
+        register_setting('autoptimize', 'autoptimize_html_keepcomments');
649
+        register_setting('autoptimize', 'autoptimize_js');
650
+        register_setting('autoptimize', 'autoptimize_js_aggregate');
651
+        register_setting('autoptimize', 'autoptimize_js_exclude');
652
+        register_setting('autoptimize', 'autoptimize_js_trycatch');
653
+        register_setting('autoptimize', 'autoptimize_js_justhead');
654
+        register_setting('autoptimize', 'autoptimize_js_forcehead');
655
+        register_setting('autoptimize', 'autoptimize_js_include_inline');
656
+        register_setting('autoptimize', 'autoptimize_css');
657
+        register_setting('autoptimize', 'autoptimize_css_aggregate');
658
+        register_setting('autoptimize', 'autoptimize_css_exclude');
659
+        register_setting('autoptimize', 'autoptimize_css_justhead');
660
+        register_setting('autoptimize', 'autoptimize_css_datauris');
661
+        register_setting('autoptimize', 'autoptimize_css_defer');
662
+        register_setting('autoptimize', 'autoptimize_css_defer_inline');
663
+        register_setting('autoptimize', 'autoptimize_css_inline');
664
+        register_setting('autoptimize', 'autoptimize_css_include_inline');
665
+        register_setting('autoptimize', 'autoptimize_cdn_url');
666
+        register_setting('autoptimize', 'autoptimize_cache_clean');
667
+        register_setting('autoptimize', 'autoptimize_cache_nogzip');
668
+        register_setting('autoptimize', 'autoptimize_show_adv');
669
+        register_setting('autoptimize', 'autoptimize_optimize_logged');
670
+        register_setting('autoptimize', 'autoptimize_optimize_checkout');
671
+        register_setting('autoptimize', 'autoptimize_minify_excluded');
672 672
     }
673 673
 
674 674
     public function setmeta($links, $file = null)
@@ -676,20 +676,20 @@  discard block
 block discarded – undo
676 676
         // Inspired on http://wpengineer.com/meta-links-for-wordpress-plugins/.
677 677
         // Do it only once - saves time.
678 678
         static $plugin;
679
-        if ( empty( $plugin ) ) {
680
-            $plugin = plugin_basename( AUTOPTIMIZE_PLUGIN_DIR . 'autoptimize.php' );
679
+        if (empty($plugin)) {
680
+            $plugin = plugin_basename(AUTOPTIMIZE_PLUGIN_DIR.'autoptimize.php');
681 681
         }
682 682
 
683
-        if ( null === $file ) {
683
+        if (null === $file) {
684 684
             // 2.7 and lower.
685
-            $settings_link = sprintf( '<a href="options-general.php?page=autoptimize">%s</a>', __( 'Settings' ) );
686
-            array_unshift( $links, $settings_link );
685
+            $settings_link = sprintf('<a href="options-general.php?page=autoptimize">%s</a>', __('Settings'));
686
+            array_unshift($links, $settings_link);
687 687
         } else {
688 688
             // 2.8 and higher.
689 689
             // If it's us, add the link.
690
-            if ( $file === $plugin ) {
691
-                $newlink = array( sprintf( '<a href="options-general.php?page=autoptimize">%s</a>', __( 'Settings' ) ) );
692
-                $links = array_merge( $links, $newlink );
690
+            if ($file === $plugin) {
691
+                $newlink = array(sprintf('<a href="options-general.php?page=autoptimize">%s</a>', __('Settings')));
692
+                $links = array_merge($links, $newlink);
693 693
             }
694 694
         }
695 695
 
@@ -761,7 +761,7 @@  discard block
 block discarded – undo
761 761
             'autoptimize_imgopt_select_field_2'   => '2', // quality glossy.
762 762
             'autoptimize_imgopt_checkbox_field_3' => '0', // lazy load off.
763 763
             'autoptimize_imgopt_checkbox_field_4' => '0', // webp off (might be removed).
764
-            'autoptimize_imgopt_text_field_5'     => '',  // lazy load exclusions empty.
764
+            'autoptimize_imgopt_text_field_5'     => '', // lazy load exclusions empty.
765 765
         );
766 766
         return $defaults;
767 767
     }
@@ -773,7 +773,7 @@  discard block
 block discarded – undo
773 773
      */
774 774
     public static function get_ao_css_preload_polyfill()
775 775
     {
776
-        $preload_poly = apply_filters('autoptimize_css_preload_polyfill','<script data-cfasync=\'false\'>!function(t){"use strict";t.loadCSS||(t.loadCSS=function(){});var e=loadCSS.relpreload={};if(e.support=function(){var e;try{e=t.document.createElement("link").relList.supports("preload")}catch(t){e=!1}return function(){return e}}(),e.bindMediaToggle=function(t){function e(){t.media=a}var a=t.media||"all";t.addEventListener?t.addEventListener("load",e):t.attachEvent&&t.attachEvent("onload",e),setTimeout(function(){t.rel="stylesheet",t.media="only x"}),setTimeout(e,3e3)},e.poly=function(){if(!e.support())for(var a=t.document.getElementsByTagName("link"),n=0;n<a.length;n++){var o=a[n];"preload"!==o.rel||"style"!==o.getAttribute("as")||o.getAttribute("data-loadcss")||(o.setAttribute("data-loadcss",!0),e.bindMediaToggle(o))}},!e.support()){e.poly();var a=t.setInterval(e.poly,500);t.addEventListener?t.addEventListener("load",function(){e.poly(),t.clearInterval(a)}):t.attachEvent&&t.attachEvent("onload",function(){e.poly(),t.clearInterval(a)})}"undefined"!=typeof exports?exports.loadCSS=loadCSS:t.loadCSS=loadCSS}("undefined"!=typeof global?global:this);</script>');
776
+        $preload_poly = apply_filters('autoptimize_css_preload_polyfill', '<script data-cfasync=\'false\'>!function(t){"use strict";t.loadCSS||(t.loadCSS=function(){});var e=loadCSS.relpreload={};if(e.support=function(){var e;try{e=t.document.createElement("link").relList.supports("preload")}catch(t){e=!1}return function(){return e}}(),e.bindMediaToggle=function(t){function e(){t.media=a}var a=t.media||"all";t.addEventListener?t.addEventListener("load",e):t.attachEvent&&t.attachEvent("onload",e),setTimeout(function(){t.rel="stylesheet",t.media="only x"}),setTimeout(e,3e3)},e.poly=function(){if(!e.support())for(var a=t.document.getElementsByTagName("link"),n=0;n<a.length;n++){var o=a[n];"preload"!==o.rel||"style"!==o.getAttribute("as")||o.getAttribute("data-loadcss")||(o.setAttribute("data-loadcss",!0),e.bindMediaToggle(o))}},!e.support()){e.poly();var a=t.setInterval(e.poly,500);t.addEventListener?t.addEventListener("load",function(){e.poly(),t.clearInterval(a)}):t.attachEvent&&t.attachEvent("onload",function(){e.poly(),t.clearInterval(a)})}"undefined"!=typeof exports?exports.loadCSS=loadCSS:t.loadCSS=loadCSS}("undefined"!=typeof global?global:this);</script>');
777 777
         return $preload_poly;
778 778
     }
779 779
 
@@ -784,55 +784,55 @@  discard block
 block discarded – undo
784 784
      */
785 785
     public static function get_ao_css_preload_onload()
786 786
     {
787
-        $preload_onload = apply_filters('autoptimize_filter_css_preload_onload',"this.onload=null;this.rel='stylesheet'");
787
+        $preload_onload = apply_filters('autoptimize_filter_css_preload_onload', "this.onload=null;this.rel='stylesheet'");
788 788
         return $preload_onload;
789 789
     }
790 790
 
791 791
     public function get($key)
792 792
     {
793
-        if ( ! is_array( $this->config ) ) {
793
+        if (!is_array($this->config)) {
794 794
             // Default config.
795 795
             $config = self::get_defaults();
796 796
 
797 797
             // Override with user settings.
798
-            foreach ( array_keys( $config ) as $name ) {
799
-                $conf = get_option( $name );
800
-                if ( false !== $conf ) {
798
+            foreach (array_keys($config) as $name) {
799
+                $conf = get_option($name);
800
+                if (false !== $conf) {
801 801
                     // It was set before!
802
-                    $config[ $name ] = $conf;
802
+                    $config[$name] = $conf;
803 803
                 }
804 804
             }
805 805
 
806 806
             // Save for next call.
807
-            $this->config = apply_filters( 'autoptimize_filter_get_config', $config );
807
+            $this->config = apply_filters('autoptimize_filter_get_config', $config);
808 808
         }
809 809
 
810
-        if ( isset( $this->config[ $key ] ) ) {
811
-            return $this->config[ $key ];
810
+        if (isset($this->config[$key])) {
811
+            return $this->config[$key];
812 812
         }
813 813
 
814 814
         return false;
815 815
     }
816 816
 
817 817
     private function getFutttaFeeds($url) {
818
-        if ( $this->settings_screen_do_remote_http ) {
819
-            $rss = fetch_feed( $url );
818
+        if ($this->settings_screen_do_remote_http) {
819
+            $rss = fetch_feed($url);
820 820
             $maxitems = 0;
821 821
 
822
-            if ( ! is_wp_error( $rss ) ) {
823
-                $maxitems = $rss->get_item_quantity( 7 );
824
-                $rss_items = $rss->get_items( 0, $maxitems );
822
+            if (!is_wp_error($rss)) {
823
+                $maxitems = $rss->get_item_quantity(7);
824
+                $rss_items = $rss->get_items(0, $maxitems);
825 825
             }
826 826
             ?>
827 827
             <ul>
828
-                <?php if ( $maxitems == 0 ) : ?>
829
-                    <li><?php _e( 'No items', 'autoptimize' ); ?></li>
828
+                <?php if ($maxitems == 0) : ?>
829
+                    <li><?php _e('No items', 'autoptimize'); ?></li>
830 830
                 <?php else : ?>
831
-                    <?php foreach ( $rss_items as $item ) : ?>
831
+                    <?php foreach ($rss_items as $item) : ?>
832 832
                         <li>
833
-                            <a href="<?php echo esc_url( $item->get_permalink() ); ?>"
834
-                                title="<?php printf( __( 'Posted %s', 'autoptimize' ), $item->get_date('j F Y | g:i a') ); ?>">
835
-                                <?php echo esc_html( $item->get_title() ); ?>
833
+                            <a href="<?php echo esc_url($item->get_permalink()); ?>"
834
+                                title="<?php printf(__('Posted %s', 'autoptimize'), $item->get_date('j F Y | g:i a')); ?>">
835
+                                <?php echo esc_html($item->get_title()); ?>
836 836
                             </a>
837 837
                         </li>
838 838
                     <?php endforeach; ?>
@@ -845,23 +845,23 @@  discard block
 block discarded – undo
845 845
     // based on http://wordpress.stackexchange.com/a/58826
846 846
     static function ao_admin_tabs()
847 847
     {
848
-        $tabs = apply_filters( 'autoptimize_filter_settingsscreen_tabs' ,array( 'autoptimize' => __( 'JS, CSS  &amp; HTML', 'autoptimize' ) ) );
848
+        $tabs = apply_filters('autoptimize_filter_settingsscreen_tabs', array('autoptimize' => __('JS, CSS  &amp; HTML', 'autoptimize')));
849 849
         $tabContent = '';
850 850
         $tabs_count = count($tabs);
851
-        if ( $tabs_count > 1 ) {
852
-            if ( isset( $_GET['page'] ) ) {
851
+        if ($tabs_count > 1) {
852
+            if (isset($_GET['page'])) {
853 853
                 $currentId = $_GET['page'];
854 854
             } else {
855 855
                 $currentId = "autoptimize";
856 856
             }
857 857
             $tabContent .= '<h2 class="nav-tab-wrapper">';
858 858
             foreach ($tabs as $tabId => $tabName) {
859
-                if ( $currentId == $tabId ) {
859
+                if ($currentId == $tabId) {
860 860
                     $class = ' nav-tab-active';
861
-                } else{
861
+                } else {
862 862
                     $class = '';
863 863
                 }
864
-                $tabContent .= '<a class="nav-tab' . $class . '" href="?page=' . $tabId . '">' . $tabName . '</a>';
864
+                $tabContent .= '<a class="nav-tab'.$class.'" href="?page='.$tabId.'">'.$tabName.'</a>';
865 865
             }
866 866
             $tabContent .= '</h2>';
867 867
         } else {
@@ -878,7 +878,7 @@  discard block
 block discarded – undo
878 878
      */
879 879
     public static function is_admin_and_not_ajax()
880 880
     {
881
-        return ( is_admin() && ! self::doing_ajax() );
881
+        return (is_admin() && !self::doing_ajax());
882 882
     }
883 883
 
884 884
     /**
@@ -888,9 +888,9 @@  discard block
 block discarded – undo
888 888
      */
889 889
     protected static function doing_ajax()
890 890
     {
891
-        if ( function_exists( 'wp_doing_ajax' ) ) {
891
+        if (function_exists('wp_doing_ajax')) {
892 892
             return wp_doing_ajax();
893 893
         }
894
-        return ( defined( 'DOING_AJAX' ) && DOING_AJAX );
894
+        return (defined('DOING_AJAX') && DOING_AJAX);
895 895
     }
896 896
 }
Please login to merge, or discard this patch.
classes/autoptimizeScripts.php 1 patch
Spacing   +154 added lines, -154 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3
-if ( ! defined( 'ABSPATH' ) ) {
3
+if (!defined('ABSPATH')) {
4 4
     exit;
5 5
 }
6 6
 
@@ -13,18 +13,18 @@  discard block
 block discarded – undo
13 13
     );
14 14
 
15 15
     private $dontmove = array(
16
-        'document.write','html5.js','show_ads.js','google_ad','histats.com/js','statcounter.com/counter/counter.js',
17
-        'ws.amazon.com/widgets','media.fastclick.net','/ads/','comment-form-quicktags/quicktags.php','edToolbar',
18
-        'intensedebate.com','scripts.chitika.net/','_gaq.push','jotform.com/','admin-bar.min.js','GoogleAnalyticsObject',
19
-        'plupload.full.min.js','syntaxhighlighter','adsbygoogle','gist.github.com','_stq','nonce','post_id','data-noptimize'
16
+        'document.write', 'html5.js', 'show_ads.js', 'google_ad', 'histats.com/js', 'statcounter.com/counter/counter.js',
17
+        'ws.amazon.com/widgets', 'media.fastclick.net', '/ads/', 'comment-form-quicktags/quicktags.php', 'edToolbar',
18
+        'intensedebate.com', 'scripts.chitika.net/', '_gaq.push', 'jotform.com/', 'admin-bar.min.js', 'GoogleAnalyticsObject',
19
+        'plupload.full.min.js', 'syntaxhighlighter', 'adsbygoogle', 'gist.github.com', '_stq', 'nonce', 'post_id', 'data-noptimize'
20 20
         ,'logHuman'
21 21
     );
22 22
     private $domove     = array(
23
-        'gaJsHost','load_cmc','jd.gallery.transitions.js','swfobject.embedSWF(','tiny_mce.js','tinyMCEPreInit.go'
23
+        'gaJsHost', 'load_cmc', 'jd.gallery.transitions.js', 'swfobject.embedSWF(', 'tiny_mce.js', 'tinyMCEPreInit.go'
24 24
     );
25 25
     private $domovelast = array(
26
-        'addthis.com','/afsonline/show_afs_search.js','disqus.js','networkedblogs.com/getnetworkwidget','infolinks.com/js/',
27
-        'jd.gallery.js.php','jd.gallery.transitions.js','swfobject.embedSWF(','linkwithin.com/widget.js','tiny_mce.js','tinyMCEPreInit.go'
26
+        'addthis.com', '/afsonline/show_afs_search.js', 'disqus.js', 'networkedblogs.com/getnetworkwidget', 'infolinks.com/js/',
27
+        'jd.gallery.js.php', 'jd.gallery.transitions.js', 'swfobject.embedSWF(', 'linkwithin.com/widget.js', 'tiny_mce.js', 'tinyMCEPreInit.go'
28 28
     );
29 29
     public $cdn_url = '';
30 30
 
@@ -45,89 +45,89 @@  discard block
 block discarded – undo
45 45
     // Reads the page and collects script tags.
46 46
     public function read($options)
47 47
     {
48
-        $noptimizeJS = apply_filters( 'autoptimize_filter_js_noptimize', false, $this->content );
49
-        if ( $noptimizeJS ) {
48
+        $noptimizeJS = apply_filters('autoptimize_filter_js_noptimize', false, $this->content);
49
+        if ($noptimizeJS) {
50 50
             return false;
51 51
         }
52 52
 
53 53
         // only optimize known good JS?
54
-        $whitelistJS = apply_filters( 'autoptimize_filter_js_whitelist', '', $this->content );
55
-        if ( ! empty( $whitelistJS ) ) {
56
-            $this->whitelist = array_filter( array_map( 'trim', explode( ',', $whitelistJS ) ) );
54
+        $whitelistJS = apply_filters('autoptimize_filter_js_whitelist', '', $this->content);
55
+        if (!empty($whitelistJS)) {
56
+            $this->whitelist = array_filter(array_map('trim', explode(',', $whitelistJS)));
57 57
         }
58 58
 
59 59
         // is there JS we should simply remove?
60
-        $removableJS = apply_filters( 'autoptimize_filter_js_removables', '', $this->content );
60
+        $removableJS = apply_filters('autoptimize_filter_js_removables', '', $this->content);
61 61
         if (!empty($removableJS)) {
62
-            $this->jsremovables = array_filter( array_map( 'trim', explode( ',', $removableJS ) ) );
62
+            $this->jsremovables = array_filter(array_map('trim', explode(',', $removableJS)));
63 63
         }
64 64
 
65 65
         // only header?
66
-        if ( apply_filters( 'autoptimize_filter_js_justhead', $options['justhead'] ) ) {
67
-            $content             = explode( '</head>', $this->content, 2 );
68
-            $this->content       = $content[0] . '</head>';
66
+        if (apply_filters('autoptimize_filter_js_justhead', $options['justhead'])) {
67
+            $content             = explode('</head>', $this->content, 2);
68
+            $this->content       = $content[0].'</head>';
69 69
             $this->restofcontent = $content[1];
70 70
         }
71 71
 
72 72
         // Determine whether we're doing JS-files aggregation or not.
73
-        if ( ! $options['aggregate'] ) {
73
+        if (!$options['aggregate']) {
74 74
             $this->aggregate = false;
75 75
         }
76 76
         // Returning true for "dontaggregate" turns off aggregation.
77
-        if ( $this->aggregate && apply_filters( 'autoptimize_filter_js_dontaggregate', false ) ) {
77
+        if ($this->aggregate && apply_filters('autoptimize_filter_js_dontaggregate', false)) {
78 78
             $this->aggregate = false;
79 79
         }
80 80
 
81 81
         // include inline?
82
-        if ( apply_filters( 'autoptimize_js_include_inline', $options['include_inline'] ) ) {
82
+        if (apply_filters('autoptimize_js_include_inline', $options['include_inline'])) {
83 83
             $this->include_inline = true;
84 84
         }
85 85
 
86 86
         // filter to "late inject minified JS", default to true for now (it is faster).
87
-        $this->inject_min_late = apply_filters( 'autoptimize_filter_js_inject_min_late', true );
87
+        $this->inject_min_late = apply_filters('autoptimize_filter_js_inject_min_late', true);
88 88
 
89 89
         // filters to override hardcoded do(nt)move(last) array contents (array in, array out!).
90
-        $this->dontmove = apply_filters( 'autoptimize_filter_js_dontmove', $this->dontmove );
91
-        $this->domovelast = apply_filters( 'autoptimize_filter_js_movelast', $this->domovelast );
92
-        $this->domove = apply_filters( 'autoptimize_filter_js_domove', $this->domove );
90
+        $this->dontmove = apply_filters('autoptimize_filter_js_dontmove', $this->dontmove);
91
+        $this->domovelast = apply_filters('autoptimize_filter_js_movelast', $this->domovelast);
92
+        $this->domove = apply_filters('autoptimize_filter_js_domove', $this->domove);
93 93
 
94 94
         // Determine whether excluded files should be minified if not yet so.
95
-        if ( ! $options['minify_excluded'] && $options['aggregate'] ) {
95
+        if (!$options['minify_excluded'] && $options['aggregate']) {
96 96
             $this->minify_excluded = false;
97 97
         }
98 98
 
99 99
         // get extra exclusions settings or filter.
100 100
         $excludeJS = $options['js_exclude'];
101
-        $excludeJS = apply_filters( 'autoptimize_filter_js_exclude', $excludeJS, $this->content );
101
+        $excludeJS = apply_filters('autoptimize_filter_js_exclude', $excludeJS, $this->content);
102 102
 
103
-        if ( '' !== $excludeJS ) {
104
-            if ( is_array( $excludeJS ) ) {
105
-                if ( ( $removeKeys = array_keys( $excludeJS, 'remove' ) ) !== false ) {
106
-                    foreach ( $removeKeys as $removeKey ) {
107
-                        unset( $excludeJS[$removeKey] );
103
+        if ('' !== $excludeJS) {
104
+            if (is_array($excludeJS)) {
105
+                if (($removeKeys = array_keys($excludeJS, 'remove')) !== false) {
106
+                    foreach ($removeKeys as $removeKey) {
107
+                        unset($excludeJS[$removeKey]);
108 108
                         $this->jsremovables[] = $removeKey;
109 109
                     }
110 110
                 }
111
-                $exclJSArr = array_keys( $excludeJS );
111
+                $exclJSArr = array_keys($excludeJS);
112 112
             } else {
113
-                $exclJSArr = array_filter( array_map( 'trim', explode( ',', $excludeJS ) ) );
113
+                $exclJSArr = array_filter(array_map('trim', explode(',', $excludeJS)));
114 114
             }
115
-            $this->dontmove = array_merge( $exclJSArr, $this->dontmove );
115
+            $this->dontmove = array_merge($exclJSArr, $this->dontmove);
116 116
         }
117 117
 
118 118
         // Should we add try-catch?
119
-        if ( $options['trycatch'] ) {
119
+        if ($options['trycatch']) {
120 120
             $this->trycatch = true;
121 121
         }
122 122
 
123 123
         // force js in head?
124
-        if ( $options['forcehead'] ) {
124
+        if ($options['forcehead']) {
125 125
             $this->forcehead = true;
126 126
         } else {
127 127
             $this->forcehead = false;
128 128
         }
129 129
 
130
-        $this->forcehead = apply_filters( 'autoptimize_filter_js_forcehead', $this->forcehead );
130
+        $this->forcehead = apply_filters('autoptimize_filter_js_forcehead', $this->forcehead);
131 131
 
132 132
         // get cdn url.
133 133
         $this->cdn_url = $options['cdn_url'];
@@ -142,26 +142,26 @@  discard block
 block discarded – undo
142 142
         $this->content = $this->hide_comments($this->content);
143 143
 
144 144
         // Get script files.
145
-        if ( preg_match_all( '#<script.*</script>#Usmi', $this->content, $matches ) ) {
146
-            foreach( $matches[0] as $tag ) {
145
+        if (preg_match_all('#<script.*</script>#Usmi', $this->content, $matches)) {
146
+            foreach ($matches[0] as $tag) {
147 147
                 // only consider script aggregation for types whitelisted in should_aggregate-function.
148 148
                 $should_aggregate = $this->should_aggregate($tag);
149
-                if ( ! $should_aggregate ) {
149
+                if (!$should_aggregate) {
150 150
                     $tag = '';
151 151
                     continue;
152 152
                 }
153 153
 
154
-                if ( preg_match( '#<script[^>]*src=("|\')([^>]*)("|\')#Usmi', $tag, $source ) ) {
154
+                if (preg_match('#<script[^>]*src=("|\')([^>]*)("|\')#Usmi', $tag, $source)) {
155 155
                     // non-inline script.
156
-                    if ( $this->isremovable($tag, $this->jsremovables) ) {
157
-                        $this->content = str_replace( $tag, '', $this->content );
156
+                    if ($this->isremovable($tag, $this->jsremovables)) {
157
+                        $this->content = str_replace($tag, '', $this->content);
158 158
                         continue;
159 159
                     }
160 160
 
161 161
                     $origTag = null;
162
-                    $url = current( explode( '?', $source[2], 2 ) );
162
+                    $url = current(explode('?', $source[2], 2));
163 163
                     $path = $this->getpath($url);
164
-                    if ( false !== $path && preg_match( '#\.js$#', $path ) && $this->ismergeable($tag) ) {
164
+                    if (false !== $path && preg_match('#\.js$#', $path) && $this->ismergeable($tag)) {
165 165
                         // ok to optimize, add to array.
166 166
                         $this->scripts[] = $path;
167 167
                     } else {
@@ -169,11 +169,11 @@  discard block
 block discarded – undo
169 169
                         $newTag  = $tag;
170 170
 
171 171
                         // non-mergeable script (excluded or dynamic or external).
172
-                        if ( is_array( $excludeJS ) ) {
172
+                        if (is_array($excludeJS)) {
173 173
                             // should we add flags?
174
-                            foreach ( $excludeJS as $exclTag => $exclFlags) {
175
-                                if ( false !== strpos( $origTag, $exclTag ) && in_array( $exclFlags, array( 'async', 'defer' ) ) ) {
176
-                                    $newTag = str_replace( '<script ', '<script ' . $exclFlags . ' ', $newTag );
174
+                            foreach ($excludeJS as $exclTag => $exclFlags) {
175
+                                if (false !== strpos($origTag, $exclTag) && in_array($exclFlags, array('async', 'defer'))) {
176
+                                    $newTag = str_replace('<script ', '<script '.$exclFlags.' ', $newTag);
177 177
                                 }
178 178
                             }
179 179
                         }
@@ -181,28 +181,28 @@  discard block
 block discarded – undo
181 181
                         // Should we minify the non-aggregated script?
182 182
                         // -> if aggregate is on and exclude minify is on
183 183
                         // -> if aggregate is off and the file is not in dontmove.
184
-                        if ( $path && ( $this->minify_excluded || apply_filters( 'autoptimize_filter_js_minify_excluded', false, $url ) ) ) {
185
-                            $consider_minified_array = apply_filters( 'autoptimize_filter_js_consider_minified', false );
186
-                            if ( ( false === $this->aggregate && str_replace( $this->dontmove, '', $path ) === $path ) || ( true === $this->aggregate && ( false === $consider_minified_array || str_replace( $consider_minified_array, '', $path ) === $path ) ) ) {
187
-                                $minified_url = $this->minify_single( $path );
184
+                        if ($path && ($this->minify_excluded || apply_filters('autoptimize_filter_js_minify_excluded', false, $url))) {
185
+                            $consider_minified_array = apply_filters('autoptimize_filter_js_consider_minified', false);
186
+                            if ((false === $this->aggregate && str_replace($this->dontmove, '', $path) === $path) || (true === $this->aggregate && (false === $consider_minified_array || str_replace($consider_minified_array, '', $path) === $path))) {
187
+                                $minified_url = $this->minify_single($path);
188 188
                                 // replace orig URL with minified URL from cache if so.
189
-                                if ( ! empty( $minified_url ) ) {
190
-                                    $newTag = str_replace( $url, $minified_url, $newTag );
189
+                                if (!empty($minified_url)) {
190
+                                    $newTag = str_replace($url, $minified_url, $newTag);
191 191
                                 }
192 192
                             }
193 193
                         }
194 194
 
195
-                        if ( $this->ismovable($newTag) ) {
195
+                        if ($this->ismovable($newTag)) {
196 196
                             // can be moved, flags and all.
197
-                            if ( $this->movetolast($newTag) )  {
197
+                            if ($this->movetolast($newTag)) {
198 198
                                 $this->move['last'][] = $newTag;
199 199
                             } else {
200 200
                                 $this->move['first'][] = $newTag;
201 201
                             }
202 202
                         } else {
203 203
                             // cannot be moved, so if flag was added re-inject altered tag immediately.
204
-                            if ( $origTag !== $newTag ) {
205
-                                $this->content = str_replace( $origTag, $newTag, $this->content );
204
+                            if ($origTag !== $newTag) {
205
+                                $this->content = str_replace($origTag, $newTag, $this->content);
206 206
                                 $origTag = '';
207 207
                             }
208 208
                             // and forget about the $tag (not to be touched any more).
@@ -211,23 +211,23 @@  discard block
 block discarded – undo
211 211
                     }
212 212
                 } else {
213 213
                     // Inline script.
214
-                    if ( $this->isremovable($tag, $this->jsremovables) ) {
215
-                        $this->content = str_replace( $tag, '', $this->content );
214
+                    if ($this->isremovable($tag, $this->jsremovables)) {
215
+                        $this->content = str_replace($tag, '', $this->content);
216 216
                         continue;
217 217
                     }
218 218
 
219 219
                     // unhide comments, as javascript may be wrapped in comment-tags for old times' sake.
220 220
                     $tag = $this->restore_comments($tag);
221
-                    if ( $this->ismergeable($tag) && $this->include_inline ) {
222
-                        preg_match( '#<script.*>(.*)</script>#Usmi', $tag , $code );
223
-                        $code = preg_replace('#.*<!\[CDATA\[(?:\s*\*/)?(.*)(?://|/\*)\s*?\]\]>.*#sm', '$1', $code[1] );
224
-                        $code = preg_replace('/(?:^\\s*<!--\\s*|\\s*(?:\\/\\/)?\\s*-->\\s*$)/', '', $code );
225
-                        $this->scripts[] = 'INLINE;' . $code;
221
+                    if ($this->ismergeable($tag) && $this->include_inline) {
222
+                        preg_match('#<script.*>(.*)</script>#Usmi', $tag, $code);
223
+                        $code = preg_replace('#.*<!\[CDATA\[(?:\s*\*/)?(.*)(?://|/\*)\s*?\]\]>.*#sm', '$1', $code[1]);
224
+                        $code = preg_replace('/(?:^\\s*<!--\\s*|\\s*(?:\\/\\/)?\\s*-->\\s*$)/', '', $code);
225
+                        $this->scripts[] = 'INLINE;'.$code;
226 226
                     } else {
227 227
                         // Can we move this?
228
-                        $autoptimize_js_moveable = apply_filters( 'autoptimize_js_moveable', '', $tag );
229
-                        if ( $this->ismovable($tag) || '' !== $autoptimize_js_moveable ) {
230
-                            if ( $this->movetolast($tag) || 'last' === $autoptimize_js_moveable ) {
228
+                        $autoptimize_js_moveable = apply_filters('autoptimize_js_moveable', '', $tag);
229
+                        if ($this->ismovable($tag) || '' !== $autoptimize_js_moveable) {
230
+                            if ($this->movetolast($tag) || 'last' === $autoptimize_js_moveable) {
231 231
                                 $this->move['last'][] = $tag;
232 232
                             } else {
233 233
                                 $this->move['first'][] = $tag;
@@ -242,7 +242,7 @@  discard block
 block discarded – undo
242 242
                 }
243 243
 
244 244
                 //Remove the original script tag.
245
-                $this->content = str_replace( $tag, '', $this->content );
245
+                $this->content = str_replace($tag, '', $this->content);
246 246
             }
247 247
 
248 248
             return true;
@@ -272,21 +272,21 @@  discard block
 block discarded – undo
272 272
         // We're only interested in the type attribute of the <script> tag itself, not any possible
273 273
         // inline code that might just contain the 'type=' string...
274 274
         $tag_parts = array();
275
-        preg_match( '#<(script[^>]*)>#i', $tag, $tag_parts);
275
+        preg_match('#<(script[^>]*)>#i', $tag, $tag_parts);
276 276
         $tag_without_contents = null;
277
-        if ( ! empty( $tag_parts[1] ) ) {
277
+        if (!empty($tag_parts[1])) {
278 278
             $tag_without_contents = $tag_parts[1];
279 279
         }
280 280
 
281
-        $has_type = ( strpos( $tag_without_contents, 'type' ) !== false );
281
+        $has_type = (strpos($tag_without_contents, 'type') !== false);
282 282
 
283 283
         $type_valid = false;
284
-        if ( $has_type ) {
285
-            $type_valid = (bool) preg_match( '/type\s*=\s*[\'"]?(?:text|application)\/(?:javascript|ecmascript)[\'"]?/i', $tag_without_contents );
284
+        if ($has_type) {
285
+            $type_valid = (bool) preg_match('/type\s*=\s*[\'"]?(?:text|application)\/(?:javascript|ecmascript)[\'"]?/i', $tag_without_contents);
286 286
         }
287 287
 
288 288
         $should_aggregate = false;
289
-        if ( ! $has_type || $type_valid ) {
289
+        if (!$has_type || $type_valid) {
290 290
             $should_aggregate = true;
291 291
         }
292 292
 
@@ -296,40 +296,40 @@  discard block
 block discarded – undo
296 296
     //Joins and optimizes JS
297 297
     public function minify()
298 298
     {
299
-        foreach ( $this->scripts as $script ) {
299
+        foreach ($this->scripts as $script) {
300 300
             // TODO/FIXME: some duplicate code here, can be reduced/simplified
301
-            if ( preg_match( '#^INLINE;#', $script ) ) {
301
+            if (preg_match('#^INLINE;#', $script)) {
302 302
                 // Inline script
303
-                $script = preg_replace( '#^INLINE;#', '', $script );
304
-                $script = rtrim( $script, ";\n\t\r" ) . ';';
303
+                $script = preg_replace('#^INLINE;#', '', $script);
304
+                $script = rtrim($script, ";\n\t\r").';';
305 305
                 // Add try-catch?
306
-                if ( $this->trycatch ) {
307
-                    $script = 'try{' . $script . '}catch(e){}';
306
+                if ($this->trycatch) {
307
+                    $script = 'try{'.$script.'}catch(e){}';
308 308
                 }
309
-                $tmpscript = apply_filters( 'autoptimize_js_individual_script', $script, '' );
310
-                if ( has_filter( 'autoptimize_js_individual_script' ) && ! empty( $tmpscript ) ) {
309
+                $tmpscript = apply_filters('autoptimize_js_individual_script', $script, '');
310
+                if (has_filter('autoptimize_js_individual_script') && !empty($tmpscript)) {
311 311
                     $script = $tmpscript;
312 312
                     $this->alreadyminified = true;
313 313
                 }
314
-                $this->jscode .= "\n" . $script;
314
+                $this->jscode .= "\n".$script;
315 315
             } else {
316 316
                 // External script
317
-                if ( false !== $script && file_exists( $script ) && is_readable( $script ) ) {
318
-                    $scriptsrc = file_get_contents( $script );
319
-                    $scriptsrc = preg_replace( '/\x{EF}\x{BB}\x{BF}/', '', $scriptsrc );
320
-                    $scriptsrc = rtrim( $scriptsrc, ";\n\t\r" ) . ';';
317
+                if (false !== $script && file_exists($script) && is_readable($script)) {
318
+                    $scriptsrc = file_get_contents($script);
319
+                    $scriptsrc = preg_replace('/\x{EF}\x{BB}\x{BF}/', '', $scriptsrc);
320
+                    $scriptsrc = rtrim($scriptsrc, ";\n\t\r").';';
321 321
                     // Add try-catch?
322
-                    if ( $this->trycatch ) {
323
-                        $scriptsrc = 'try{' . $scriptsrc . '}catch(e){}';
322
+                    if ($this->trycatch) {
323
+                        $scriptsrc = 'try{'.$scriptsrc.'}catch(e){}';
324 324
                     }
325
-                    $tmpscriptsrc = apply_filters( 'autoptimize_js_individual_script', $scriptsrc, $script );
326
-                    if ( has_filter( 'autoptimize_js_individual_script' ) && ! empty( $tmpscriptsrc ) ) {
325
+                    $tmpscriptsrc = apply_filters('autoptimize_js_individual_script', $scriptsrc, $script);
326
+                    if (has_filter('autoptimize_js_individual_script') && !empty($tmpscriptsrc)) {
327 327
                         $scriptsrc = $tmpscriptsrc;
328 328
                         $this->alreadyminified = true;
329
-                    } else if ( $this->can_inject_late($script) ) {
329
+                    } else if ($this->can_inject_late($script)) {
330 330
                         $scriptsrc = self::build_injectlater_marker($script, md5($scriptsrc));
331 331
                     }
332
-                    $this->jscode .= "\n" . $scriptsrc;
332
+                    $this->jscode .= "\n".$scriptsrc;
333 333
                 }/*else{
334 334
                     //Couldn't read JS. Maybe getpath isn't working?
335 335
                 }*/
@@ -337,32 +337,32 @@  discard block
 block discarded – undo
337 337
         }
338 338
 
339 339
         // Check for already-minified code
340
-        $this->md5hash = md5( $this->jscode );
340
+        $this->md5hash = md5($this->jscode);
341 341
         $ccheck = new autoptimizeCache($this->md5hash, 'js');
342
-        if ( $ccheck->check() ) {
342
+        if ($ccheck->check()) {
343 343
             $this->jscode = $ccheck->retrieve();
344 344
             return true;
345 345
         }
346
-        unset( $ccheck );
346
+        unset($ccheck);
347 347
 
348 348
         // $this->jscode has all the uncompressed code now.
349
-        if ( true !== $this->alreadyminified ) {
350
-            if ( apply_filters( 'autoptimize_js_do_minify', true ) ) {
351
-                $tmp_jscode = trim( JSMin::minify( $this->jscode ) );
352
-                if ( ! empty( $tmp_jscode ) ) {
349
+        if (true !== $this->alreadyminified) {
350
+            if (apply_filters('autoptimize_js_do_minify', true)) {
351
+                $tmp_jscode = trim(JSMin::minify($this->jscode));
352
+                if (!empty($tmp_jscode)) {
353 353
                     $this->jscode = $tmp_jscode;
354
-                    unset( $tmp_jscode );
354
+                    unset($tmp_jscode);
355 355
                 }
356
-                $this->jscode = $this->inject_minified( $this->jscode );
357
-                $this->jscode = apply_filters( 'autoptimize_js_after_minify', $this->jscode );
356
+                $this->jscode = $this->inject_minified($this->jscode);
357
+                $this->jscode = apply_filters('autoptimize_js_after_minify', $this->jscode);
358 358
                 return true;
359 359
             } else {
360
-                $this->jscode = $this->inject_minified( $this->jscode );
360
+                $this->jscode = $this->inject_minified($this->jscode);
361 361
                 return false;
362 362
             }
363 363
         }
364 364
 
365
-        $this->jscode = apply_filters( 'autoptimize_js_after_minify', $this->jscode );
365
+        $this->jscode = apply_filters('autoptimize_js_after_minify', $this->jscode);
366 366
         return true;
367 367
     }
368 368
 
@@ -370,11 +370,11 @@  discard block
 block discarded – undo
370 370
     public function cache()
371 371
     {
372 372
         $cache = new autoptimizeCache($this->md5hash, 'js');
373
-        if ( ! $cache->check() ) {
373
+        if (!$cache->check()) {
374 374
             // Cache our code
375 375
             $cache->cache($this->jscode, 'text/javascript');
376 376
         }
377
-        $this->url = AUTOPTIMIZE_CACHE_URL . $cache->getname();
377
+        $this->url = AUTOPTIMIZE_CACHE_URL.$cache->getname();
378 378
         $this->url = $this->url_replace_cdn($this->url);
379 379
     }
380 380
 
@@ -382,43 +382,43 @@  discard block
 block discarded – undo
382 382
     public function getcontent()
383 383
     {
384 384
         // Restore the full content
385
-        if ( ! empty( $this->restofcontent ) ) {
385
+        if (!empty($this->restofcontent)) {
386 386
             $this->content .= $this->restofcontent;
387 387
             $this->restofcontent = '';
388 388
         }
389 389
 
390 390
         // Add the scripts taking forcehead/ deferred (default) into account
391
-        if ( $this->forcehead ) {
392
-            $replaceTag = array( '</head>', 'before' );
391
+        if ($this->forcehead) {
392
+            $replaceTag = array('</head>', 'before');
393 393
             $defer = '';
394 394
         } else {
395
-            $replaceTag = array( '</body>', 'before' );
395
+            $replaceTag = array('</body>', 'before');
396 396
             $defer = 'defer ';
397 397
         }
398 398
 
399
-        $defer = apply_filters( 'autoptimize_filter_js_defer', $defer );
399
+        $defer = apply_filters('autoptimize_filter_js_defer', $defer);
400 400
 
401
-        $bodyreplacementpayload = '<script type="text/javascript" ' . $defer . 'src="' . $this->url . '"></script>';
402
-        $bodyreplacementpayload = apply_filters( 'autoptimize_filter_js_bodyreplacementpayload', $bodyreplacementpayload );
401
+        $bodyreplacementpayload = '<script type="text/javascript" '.$defer.'src="'.$this->url.'"></script>';
402
+        $bodyreplacementpayload = apply_filters('autoptimize_filter_js_bodyreplacementpayload', $bodyreplacementpayload);
403 403
 
404
-        $bodyreplacement = implode( '', $this->move['first'] );
404
+        $bodyreplacement = implode('', $this->move['first']);
405 405
         $bodyreplacement .= $bodyreplacementpayload;
406
-        $bodyreplacement .= implode( '', $this->move['last'] );
406
+        $bodyreplacement .= implode('', $this->move['last']);
407 407
 
408
-        $replaceTag = apply_filters( 'autoptimize_filter_js_replacetag', $replaceTag );
408
+        $replaceTag = apply_filters('autoptimize_filter_js_replacetag', $replaceTag);
409 409
 
410
-        if ( strlen( $this->jscode ) > 0 ) {
411
-            $this->inject_in_html( $bodyreplacement, $replaceTag );
410
+        if (strlen($this->jscode) > 0) {
411
+            $this->inject_in_html($bodyreplacement, $replaceTag);
412 412
         }
413 413
 
414 414
         // Restore comments.
415
-        $this->content = $this->restore_comments( $this->content );
415
+        $this->content = $this->restore_comments($this->content);
416 416
 
417 417
         // Restore IE hacks.
418
-        $this->content = $this->restore_iehacks( $this->content );
418
+        $this->content = $this->restore_iehacks($this->content);
419 419
 
420 420
         // Restore noptimize.
421
-        $this->content = $this->restore_noptimize( $this->content );
421
+        $this->content = $this->restore_noptimize($this->content);
422 422
 
423 423
         // Return the modified HTML.
424 424
         return $this->content;
@@ -427,32 +427,32 @@  discard block
 block discarded – undo
427 427
     // Checks against the white- and blacklists
428 428
     private function ismergeable($tag)
429 429
     {
430
-        if ( ! $this->aggregate ) {
430
+        if (!$this->aggregate) {
431 431
             return false;
432 432
         }
433 433
 
434
-        if ( ! empty( $this->whitelist ) ) {
435
-            foreach ( $this->whitelist as $match ) {
436
-                if (false !== strpos( $tag, $match ) ) {
434
+        if (!empty($this->whitelist)) {
435
+            foreach ($this->whitelist as $match) {
436
+                if (false !== strpos($tag, $match)) {
437 437
                     return true;
438 438
                 }
439 439
             }
440 440
             // no match with whitelist
441 441
             return false;
442 442
         } else {
443
-            foreach($this->domove as $match) {
444
-                if ( false !== strpos( $tag, $match ) ) {
443
+            foreach ($this->domove as $match) {
444
+                if (false !== strpos($tag, $match)) {
445 445
                     // Matched something
446 446
                     return false;
447 447
                 }
448 448
             }
449 449
 
450
-            if ( $this->movetolast($tag) ) {
450
+            if ($this->movetolast($tag)) {
451 451
                 return false;
452 452
             }
453 453
 
454
-            foreach( $this->dontmove as $match ) {
455
-                if ( false !== strpos( $tag, $match ) ) {
454
+            foreach ($this->dontmove as $match) {
455
+                if (false !== strpos($tag, $match)) {
456 456
                     // Matched something
457 457
                     return false;
458 458
                 }
@@ -466,23 +466,23 @@  discard block
 block discarded – undo
466 466
     // Checks agains the blacklist
467 467
     private function ismovable($tag)
468 468
     {
469
-        if ( true !== $this->include_inline || apply_filters( 'autoptimize_filter_js_unmovable', true ) ) {
469
+        if (true !== $this->include_inline || apply_filters('autoptimize_filter_js_unmovable', true)) {
470 470
             return false;
471 471
         }
472 472
 
473
-        foreach ( $this->domove as $match ) {
474
-            if ( false !== strpos( $tag, $match ) ) {
473
+        foreach ($this->domove as $match) {
474
+            if (false !== strpos($tag, $match)) {
475 475
                 // Matched something
476 476
                 return true;
477 477
             }
478 478
         }
479 479
 
480
-        if ( $this->movetolast($tag) ) {
480
+        if ($this->movetolast($tag)) {
481 481
             return true;
482 482
         }
483 483
 
484
-        foreach ( $this->dontmove as $match ) {
485
-            if ( false !== strpos( $tag, $match ) ) {
484
+        foreach ($this->dontmove as $match) {
485
+            if (false !== strpos($tag, $match)) {
486 486
                 // Matched something
487 487
                 return false;
488 488
             }
@@ -494,8 +494,8 @@  discard block
 block discarded – undo
494 494
 
495 495
     private function movetolast($tag)
496 496
     {
497
-        foreach ( $this->domovelast as $match ) {
498
-            if ( false !== strpos( $tag, $match ) ) {
497
+        foreach ($this->domovelast as $match) {
498
+            if (false !== strpos($tag, $match)) {
499 499
                 // Matched, return true
500 500
                 return true;
501 501
             }
@@ -516,11 +516,11 @@  discard block
 block discarded – undo
516 516
      * @return bool
517 517
      */
518 518
     private function can_inject_late($jsPath) {
519
-        $consider_minified_array = apply_filters( 'autoptimize_filter_js_consider_minified', false );
520
-        if ( true !== $this->inject_min_late ) {
519
+        $consider_minified_array = apply_filters('autoptimize_filter_js_consider_minified', false);
520
+        if (true !== $this->inject_min_late) {
521 521
             // late-inject turned off
522 522
             return false;
523
-        } else if ( ( false === strpos( $jsPath, 'min.js' ) ) && ( false === strpos( $jsPath, 'wp-includes/js/jquery/jquery.js' ) ) && ( str_replace( $consider_minified_array, '', $jsPath ) === $jsPath ) ) {
523
+        } else if ((false === strpos($jsPath, 'min.js')) && (false === strpos($jsPath, 'wp-includes/js/jquery/jquery.js')) && (str_replace($consider_minified_array, '', $jsPath) === $jsPath)) {
524 524
             // file not minified based on filename & filter
525 525
             return false;
526 526
         } else {
@@ -547,26 +547,26 @@  discard block
 block discarded – undo
547 547
      *
548 548
      * @return bool|string Url pointing to the minified js file or false.
549 549
      */
550
-    public function minify_single( $filepath, $cache_miss = false )
550
+    public function minify_single($filepath, $cache_miss = false)
551 551
     {
552
-        $contents = $this->prepare_minify_single( $filepath );
552
+        $contents = $this->prepare_minify_single($filepath);
553 553
 
554
-        if ( empty( $contents ) ) {
554
+        if (empty($contents)) {
555 555
             return false;
556 556
         }
557 557
 
558 558
         // Check cache.
559
-        $hash  = 'single_' . md5( $contents );
560
-        $cache = new autoptimizeCache( $hash, 'js' );
559
+        $hash  = 'single_'.md5($contents);
560
+        $cache = new autoptimizeCache($hash, 'js');
561 561
 
562 562
         // If not in cache already, minify...
563
-        if ( ! $cache->check() || $cache_miss ) {
564
-            $contents = trim( JSMin::minify( $contents ) );
563
+        if (!$cache->check() || $cache_miss) {
564
+            $contents = trim(JSMin::minify($contents));
565 565
             // Store in cache.
566
-            $cache->cache( $contents, 'text/javascript' );
566
+            $cache->cache($contents, 'text/javascript');
567 567
         }
568 568
 
569
-        $url = $this->build_minify_single_url( $cache );
569
+        $url = $this->build_minify_single_url($cache);
570 570
 
571 571
         return $url;
572 572
     }
Please login to merge, or discard this patch.