Plugin Directory

Changeset 3166054


Ignore:
Timestamp:
10/09/2024 05:31:38 PM (17 months ago)
Author:
solidwp
Message:

Update to version 1.3.0 from GitHub

Location:
solid-performance
Files:
38 added
4 deleted
32 edited
1 copied

Legend:

Unmodified
Added
Removed
  • solid-performance/tags/1.3.0/readme.txt

    r3153468 r3166054  
    55Requires at least: 6.4
    66Tested up to: 6.6
    7 Stable tag: 1.2.0
     7Stable tag: 1.3.0
    88Requires PHP: 7.4
    99License: GPLv2 or later
     
    8989== Changelog ==
    9090
     91= 1.3.0 =
     92
     93#### Enhancements
     94
     95* Added a new HTML comment, "Cached page generated by Solid Performance on $date" to indicate caching is active when debug mode is disabled.
     96* Introduced the `X-Cached-By: Solid Performance` header to clearly identify cached responses in browser dev tools.
     97* Implemented intelligent cache purging that clears related pages when a post is changed, including home pages, taxonomy, author, and date archives, and their paginated counterparts.
     98* Improved overall code structure and performance for better efficiency and maintainability.
     99
     100#### Bug fixes
     101
     102* Fixed an issue where using the "Exclude from Page Cache" meta option would not immediately purge the post from the cache.
     103
    91104= 1.2.0 =
    92105
  • solid-performance/tags/1.3.0/solid-performance.php

    r3153468 r3166054  
    55 * Author: SolidWP
    66 * Author URI: https://go.solidwp.com/performance-author
    7  * Version: 1.2.0
     7 * Version: 1.3.0
    88 * Text Domain: solid-performance
    99 * Domain Path: /lang
  • solid-performance/tags/1.3.0/src/Performance/Admin/Post_Cache_Exclusion.php

    r3134501 r3166054  
    88 */
    99
     10declare( strict_types=1 );
     11
    1012namespace SolidWP\Performance\Admin;
     13
     14use WP_Post;
    1115
    1216/**
     
    1721 * @package SolidWP\Performance
    1822 */
    19 class Post_Cache_Exclusion {
     23final class Post_Cache_Exclusion {
    2024
    2125    public const META_KEY = '_swpsp_post_exclude';
    2226
    2327    /**
    24      * Holds ignore post types.
    25      *
    26      * @var values of all the post types.
    27      */
    28     protected static $public_ignore_post_types = null;
    29     /**
    30      * Holds post types.
    31      *
    32      * @var values of all the post types.
    33      */
    34     protected static $post_types_objects = null;
    35 
    36     /**
    37      * Adds a new menu item as a settings submenu.
     28     * An array of post type names to ignore, indexed by their post type name.
     29     *
     30     * @var array<string, bool>
     31     */
     32    private array $post_types_to_ignore;
     33
     34    /**
     35     * @var string[]
     36     */
     37    private array $post_types;
     38
     39    /**
     40     * @param  string[] $post_types  The available public post type objects.
     41     * @param  string[] $post_types_to_ignore  Exclude the meta box from these post types.
     42     */
     43    public function __construct( array $post_types, array $post_types_to_ignore ) {
     44        $this->post_types           = $post_types;
     45        $this->post_types_to_ignore = array_fill_keys( array_values( $post_types_to_ignore ), true );
     46    }
     47
     48    /**
     49     * Registers a meta key for posts.
     50     *
     51     * @action init
    3852     *
    3953     * @since 0.1.1
    4054     *
    41      * @action admin_menu
    42      *
    4355     * @return void
    4456     */
    45     public function register_meta(): void {
     57    public static function register_meta(): void {
    4658        register_post_meta(
    4759            '', // Pass an empty string to register the meta key across all existing post types.
     
    5365                'description'       => __( 'Exclude this post from the page cache.', 'solid-performance' ),
    5466                'sanitize_callback' => 'rest_sanitize_boolean',
    55                 'auth_callback'     => function () {
    56                     return current_user_can( 'edit_posts' );
    57                 },
     67                'auth_callback'     => static fn(): bool => current_user_can( 'edit_posts' ),
    5868            ]
    5969        );
    6070    }
    61     /**
    62      * Get array of post types we want to exclude from use in non public areas.
    63      *
    64      * @return array of post types.
    65      */
    66     public static function get_public_post_types_to_ignore() {
    67         if ( is_null( self::$public_ignore_post_types ) ) {
    68             $public_ignore_post_types = [
    69                 'elementor_library', // Elementor.
    70                 'fl-theme-layout', // Beaver Builder.
    71                 'shop_order', // WooCommerce.
    72                 'kadence_element', // Kadence.
    73                 'kadence_conversions', // Kadence.
    74                 'kadence_wootemplate', // Kadence.
    75                 'ele-product-template', // Kadence.
    76                 'ele-p-arch-template', // Kadence.
    77                 'ele-p-loop-template', // Kadence.
    78                 'ele-check-template', // Kadence.
    79                 'kt_size_chart', // Kadence.
    80                 'kt_cart_notice', // Kadence.
    81                 'kt_reviews', // Kadence.
    82                 'kt_product_tabs', // Kadence.
    83                 'jet-menu', // Jet.
    84                 'jet-popup', // Jet.
    85                 'jet-smart-filters', // Jet.
    86                 'jet-theme-core', // Jet.
    87                 'jet-woo-builder', // Jet.
    88                 'jet-engine', // Jet.
    89                 'llms_certificate', // LifterLMS.
    90                 'llms_my_certificate', // LifterLMS.
    91                 'sfwd-certificates', // LearnDash.
    92                 'sfwd-transactions', // LearnDash.
    93                 'reply',
    94             ];
    95             // Filter the post types to ignore.
    96             self::$public_ignore_post_types = apply_filters( 'solidwp/performance/public_post_type_ignore_array', $public_ignore_post_types );
    97         }
    98 
    99         return self::$public_ignore_post_types;
    100     }
    101     /**
    102      * Get all public post types.
    103      *
    104      * @return array of post types.
    105      */
    106     public static function get_post_types_objects() {
    107         if ( is_null( self::$post_types_objects ) ) {
    108             $args       = [
    109                 'public'   => true,
    110                 '_builtin' => false,
    111             ];
    112             $output     = 'objects'; // names or objects, note names is the default.
    113             $operator   = 'and';
    114             $post_types = get_post_types( $args, $output, $operator );
    115             // Filter the post types to ignore.
    116             self::$post_types_objects = apply_filters( 'solidwp/performance/public_post_type_objects', $post_types );
    117         }
    118 
    119         return self::$post_types_objects;
    120     }
     71
    12172    /**
    12273     * Get the asset file produced by wp scripts.
    12374     *
    12475     * @param string $filepath the file path.
     76     *
    12577     * @return array
    12678     */
    127     public function get_asset_file( $filepath ) {
     79    public function get_asset_file( string $filepath ): array {
    12880        $plugin_path = realpath( plugin_dir_path( SWPSP_PLUGIN_FILE ) ) . DIRECTORY_SEPARATOR;
    12981        $asset_path  = $plugin_path . $filepath . '.asset.php';
     
    13587            ];
    13688    }
    137     /**
    138      * Enqueue Script for Meta options
    139      */
    140     public function script_enqueue() {
     89
     90    /**
     91     * Enqueue Script for Meta options.
     92     *
     93     * @action enqueue_block_editor_assets
     94     */
     95    public function script_enqueue(): void {
    14196        global $pagenow;
     97
    14298        if ( $pagenow === 'widgets.php' ) {
    14399            return;
    144100        }
     101
    145102        if ( is_customize_preview() ) {
    146103            return;
    147104        }
    148         $post_type        = get_post_type();
    149         $post_type_object = get_post_type_object( get_post_type() );
    150         if ( is_object( $post_type_object ) ) {
    151             $post_type_name = $post_type_object->labels->singular_name;
    152         } else {
    153             $post_type_name = $post_type;
    154         }
    155         $ignore_type = $this->get_public_post_types_to_ignore();
    156         if ( in_array( $post_type, $ignore_type, true ) ) {
    157             return;
    158         }
     105
     106        if ( isset( $this->post_types_to_ignore[ get_post_type() ] ) ) {
     107            return;
     108        }
     109
    159110        // Enqueue the meta page scripts.
    160111        wp_enqueue_script( 'solid-performance-meta' );
    161112    }
    162     /**
    163      * Register Script for Meta options
    164      */
    165     public function register_meta_script() {
     113
     114    /**
     115     * Register Script for Meta options.
     116     *
     117     * @action admin_init
     118     */
     119    public function register_meta_script(): void {
    166120        $script_meta = $this->get_asset_file( 'build/meta' );
    167121        $url_path    = trailingslashit( plugin_dir_url( SWPSP_PLUGIN_FILE ) );
     
    171125
    172126    /**
    173      * Load the classic editor meta box.
    174      *
    175      * @since 0.1.1
    176      *
    177      * @return void
    178      */
    179     public function load_classic(): void {
    180         add_action( 'load-post.php', [ $this, 'init_metabox' ] );
    181         add_action( 'load-post-new.php', [ $this, 'init_metabox' ] );
    182     }
    183     /**
    184      * Classic Meta box initialization.
    185      */
    186     public function init_metabox() {
    187         add_action( 'add_meta_boxes', [ $this, 'add_metabox' ] );
    188         add_action( 'save_post', [ $this, 'save_metabox' ], 10, 2 );
    189     }
    190     /**
    191127     * Adds the meta box.
    192      */
    193     public function add_metabox() {
    194         $all_post_types    = $this->get_post_types_objects();
    195         $extras_post_types = [ 'post', 'page' ];
    196         $ignore_type       = $this->get_public_post_types_to_ignore();
    197         foreach ( $all_post_types as $post_type_item ) {
    198             $post_type_name = $post_type_item->name;
    199             if ( ! in_array( $post_type_name, $ignore_type, true ) ) {
    200                 $extras_post_types[] = $post_type_name;
     128     *
     129     * @action load-post.php
     130     * @action load-post-new.php
     131     * @action add_meta_boxes
     132     */
     133    public function add_metabox(): void {
     134        $post_types = [];
     135
     136        foreach ( $this->post_types as $post_type ) {
     137            // Skip ignored post types.
     138            if ( isset( $this->post_types_to_ignore[ $post_type ] ) ) {
     139                continue;
    201140            }
    202         }
     141
     142            $post_types[] = $post_type;
     143        }
     144
     145        if ( ! $post_types ) {
     146            return;
     147        }
     148
    203149        add_meta_box(
    204150            '_swpsp_classic_post_exclude',
    205151            __( 'Cache Exclusion', 'solid-performance' ),
    206152            [ $this, 'render_metabox' ],
    207             apply_filters( 'solidwp/performance/classic_meta_box_post_types', $extras_post_types ),
     153            apply_filters( 'solidwp/performance/classic_meta_box_post_types', $post_types ),
    208154            'side',
    209155            'low',
     
    213159        );
    214160    }
     161
    215162    /**
    216163     * Renders the meta box.
    217164     *
    218      * @param object $post the post object.
    219      */
    220     public function render_metabox( $post ) {
     165     * @param WP_Post $post the post object.
     166     */
     167    public function render_metabox( WP_Post $post ): void {
    221168        // Add nonce for security and authentication.
    222169        wp_nonce_field( 'swpsp_classic_meta_nonce_action', 'swpsp_classic_meta_nonce' );
     
    234181        <?php
    235182    }
     183
    236184    /**
    237185     * Saves the meta box data.
    238186     *
     187     * @action save_post
     188     * @action load-post.php
     189     * @action load-post-new.php
     190     *
    239191     * @param int $post_id the post ID.
    240      */
    241     public function save_metabox( $post_id ) {
     192     *
     193     * @return void
     194     */
     195    public function save_metabox( int $post_id ): void {
    242196        // Check if our nonce is set.
    243197        if ( ! isset( $_POST['swpsp_classic_meta_nonce'] ) ) {
    244             return $post_id;
    245         }
     198            return;
     199        }
     200
    246201        $nonce = sanitize_text_field( wp_unslash( $_POST['swpsp_classic_meta_nonce'] ) );
     202
    247203        // Add nonce for security and authentication.
    248204        if ( ! wp_verify_nonce( $nonce, 'swpsp_classic_meta_nonce_action' ) ) {
    249             return $post_id;
    250         }
     205            return;
     206        }
     207
    251208        // Check if the current user has permission to edit the post.
    252209        if ( ! current_user_can( 'edit_post', $post_id ) ) {
    253             return $post_id;
    254         }
     210            return;
     211        }
     212
    255213        // Check if not an autosave.
    256214        if ( wp_is_post_autosave( $post_id ) ) {
    257             return $post_id;
     215            return;
    258216        }
    259217
    260218        // Check if not a revision.
    261219        if ( wp_is_post_revision( $post_id ) ) {
    262             return $post_id;
    263         }
     220            return;
     221        }
     222
    264223        // Update the meta field in the database.
    265         $meta_value = isset( $_POST[ self::META_KEY ] ) && $_POST[ self::META_KEY ] == 1 ? 1 : 0;
     224        $meta_value = (int) isset( $_POST[ self::META_KEY ] );
    266225        update_post_meta( $post_id, self::META_KEY, $meta_value );
    267226    }
  • solid-performance/tags/1.3.0/src/Performance/Admin/Provider.php

    r3146066 r3166054  
    2525class Provider extends Service_Provider {
    2626
     27    public const PUBLIC_POST_TYPES = 'solidwp.performance.admin.public_post_types';
     28
    2729    /**
    2830     * {@inheritdoc}
     
    3840        add_action( 'rest_api_init', $this->container->callback( Settings_Page::class, 'register_settings' ) );
    3941        add_action( 'plugin_action_links_' . plugin_basename( SWPSP_PLUGIN_FILE ), $this->container->callback( Settings_Page::class, 'settings_link' ), 10 );
    40         add_filter( 'init', $this->container->callback( Post_Cache_Exclusion::class, 'register_meta' ), 20 );
    41         add_action( 'admin_init', $this->container->callback( Post_Cache_Exclusion::class, 'register_meta_script' ) );
    42         add_action( 'admin_init', $this->container->callback( Post_Cache_Exclusion::class, 'load_classic' ) );
    43         add_action( 'enqueue_block_editor_assets', $this->container->callback( Post_Cache_Exclusion::class, 'script_enqueue' ) );
    4442
    45         $this->register_option_purger();
     43        $this->register_page_cache_exclusion();
    4644    }
    4745
    4846    /**
    49      * Configure the Option Purger with the different WP option names can trigger a cache flush.
     47     * Registers the page cache exclusion meta box.
    5048     *
    5149     * @return void
    5250     */
    53     private function register_option_purger(): void {
    54         $this->container->singleton( Option_Purger::class, Option_Purger::class );
    55         $this->container->when( Option_Purger::class )
    56                         ->needs( '$option_names' )
    57                         ->give(
    58                             // Different WP option names that will force a cache flush.
    59                             static fn(): array => array_fill_keys(
    60                                 [
    61                                     // options-general.php.
    62                                     'blogname',
    63                                     'blogdescription',
    64                                     'site_icon',
    65                                     'WPLANG',
    66                                     'timezone_string',
    67                                     'gmt_offset',
    68                                     'date_format',
    69                                     'time_format',
    70                                     'start_of_week',
     51    private function register_page_cache_exclusion(): void {
     52        // Exclude the meta box from these post types.
     53        $post_types_to_ignore = (array) apply_filters(
     54            'solidwp/performance/public_post_type_ignore_array',
     55            [
     56                // Elementor.
     57                'elementor_library',
     58                // Beaver Builder.
     59                'fl-theme-layout',
     60                // WooCommerce.
     61                'shop_order',
     62                // Kadence.
     63                'kadence_element',
     64                'kadence_conversions',
     65                'kadence_wootemplate',
     66                'ele-product-template',
     67                'ele-p-arch-template',
     68                'ele-p-loop-template',
     69                'ele-check-template',
     70                'kt_size_chart',
     71                'kt_cart_notice',
     72                'kt_reviews',
     73                'kt_product_tabs',
     74                // Jet.
     75                'jet-menu',
     76                'jet-popup',
     77                'jet-smart-filters',
     78                'jet-theme-core',
     79                'jet-woo-builder',
     80                'jet-engine',
     81                // LifterLMS.
     82                'llms_certificate',
     83                'llms_my_certificate',
     84                // LearnDash.
     85                'sfwd-certificates',
     86                'sfwd-transactions',
     87                'reply',
     88            ]
     89        );
    7190
    72                                     // options-reading.php.
    73                                     'page_for_posts',
    74                                     'page_on_front',
    75                                     'posts_per_page',
    76                                     'blog_public',
     91        $this->container->when( Post_Cache_Exclusion::class )
     92                        ->needs( '$post_types_to_ignore' )
     93                        ->give( $post_types_to_ignore );
    7794
    78                                     // options-discussion.php.
    79                                     'require_name_email',
    80                                     'comment_registration',
    81                                     'close_comments_for_old_posts',
    82                                     'show_comments_cookies_opt_in',
    83                                     'thread_comments',
    84                                     'thread_comments_depth',
    85                                     'page_comments',
    86                                     'comments_per_page',
    87                                     'default_comments_page',
    88                                     'comment_order',
    89                                     'show_avatars',
    90                                     'avatar_rating',
    91                                     'avatar_default',
     95        // Get all public, non-built in post types and manually add post+page.
     96        $this->container->singleton(
     97            self::PUBLIC_POST_TYPES,
     98            static fn() => (array) apply_filters(
     99                'solidwp/performance/public_post_type_objects',
     100                array_merge(
     101                    get_post_types(
     102                        [
     103                            'public'   => true,
     104                            '_builtin' => false,
     105                        ],
     106                    ),
     107                    [ 'post', 'page' ]
     108                )
     109            )
     110        );
    92111
    93                                     // options-permalink.php.
    94                                     'permalink_structure',
    95                                     'category_base',
    96                                     'tag_base',
     112        $this->container->when( Post_Cache_Exclusion::class )
     113                        ->needs( '$post_types' )
     114                        ->give( $this->container->get( self::PUBLIC_POST_TYPES ) );
    97115
    98                                     // Appearance: themes.php.
    99                                     'template',
    100                                     'stylesheet',
    101                                 ],
    102                                 true
    103                             )
    104                         );
     116        $this->container->singleton( Post_Cache_Exclusion::class, Post_Cache_Exclusion::class );
    105117
    106         add_action( 'updated_option', $this->container->callback( Option_Purger::class, 'collect' ), 10, 3 );
     118        add_action(
     119            'init',
     120            static function (): void {
     121                Post_Cache_Exclusion::register_meta();
     122            },
     123            20
     124        );
     125        add_action( 'admin_init', $this->container->callback( Post_Cache_Exclusion::class, 'register_meta_script' ) );
     126        add_action( 'enqueue_block_editor_assets', $this->container->callback( Post_Cache_Exclusion::class, 'script_enqueue' ) );
     127
     128        // Classic Editor meta box.
     129        foreach ( [ 'load-post.php', 'load-post-new.php' ] as $action ) {
     130            add_action(
     131                $action,
     132                function () {
     133                    add_action( 'add_meta_boxes', $this->container->callback( Post_Cache_Exclusion::class, 'add_metabox' ) );
     134                    add_action( 'save_post', $this->container->callback( Post_Cache_Exclusion::class, 'save_metabox' ), 10, 1 );
     135                }
     136            );
     137        }
    107138    }
    108139}
  • solid-performance/tags/1.3.0/src/Performance/Admin/Purge_Listener.php

    r3146066 r3166054  
    1212namespace SolidWP\Performance\Admin;
    1313
    14 use SolidWP\Performance\Page_Cache\Purge;
     14use SolidWP\Performance\Page_Cache\Purge\Batch\Batch_Purger;
     15use SolidWP\Performance\Page_Cache\Purge\Batch\Permalink;
    1516use SolidWP\Performance\StellarWP\SuperGlobals\SuperGlobals;
    16 use Throwable;
    1717
    1818if ( ! defined( 'ABSPATH' ) ) {
     
    3030
    3131    /**
    32      * @var Purge
     32     * @var Batch_Purger
    3333     */
    34     private Purge $purge;
     34    private Batch_Purger $batch_purger;
    3535
    3636    /**
    37      * @param  Purge $purge The cache purger.
     37     * @param  Batch_Purger $batch_purger  The batch purger.
    3838     */
    39     public function __construct( Purge $purge ) {
    40         $this->purge = $purge;
     39    public function __construct( Batch_Purger $batch_purger ) {
     40        $this->batch_purger = $batch_purger;
    4141    }
    4242
     
    6868
    6969        // Purge all cached pages.
    70         $this->purge->all_pages();
     70        $this->batch_purger->queue_purge_all();
    7171
    7272        $this->redirect();
    7373    }
    74 
    7574
    7675    /**
     
    115114        }
    116115
    117         try {
    118             $this->purge->page( $uri );
    119         } catch ( Throwable $e ) {
    120             $this->redirect();
    121         }
     116        $this->batch_purger->queue(
     117            Permalink::from(
     118                [
     119                    'permalink' => $uri,
     120                ]
     121            )
     122        );
    122123
    123124        $this->redirect();
  • solid-performance/tags/1.3.0/src/Performance/Config/Config.php

    r3153468 r3166054  
    118118     *
    119119     * @action shutdown
     120     * @action solidwp/performance/terminate
    120121     *
    121122     * @return void
  • solid-performance/tags/1.3.0/src/Performance/Core.php

    r3153468 r3166054  
    7676    private array $providers = [
    7777        Assets\Provider::class,
     78        Page_Cache\Purge\Provider::class,
    7879        Admin\Provider::class,
    7980        API\Provider::class,
  • solid-performance/tags/1.3.0/src/Performance/Page_Cache.php

    r3153468 r3166054  
    1313use SolidWP\Performance\Config\Config;
    1414use SolidWP\Performance\Config\WP_Config;
    15 use SolidWP\Performance\Page_Cache\Purge;
     15use SolidWP\Performance\Page_Cache\Purge\Purge;
    1616
    1717if ( ! defined( 'ABSPATH' ) ) {
  • solid-performance/tags/1.3.0/src/Performance/Page_Cache/Cache.php

    r3153468 r3166054  
    151151
    152152        header( sprintf( 'X-Cache-Age: %d', time() - $mod_time ) );
     153        header( 'X-Cached-By: Solid Performance' );
    153154
    154155        if ( $modified_since && strtotime( $modified_since ) === $mod_time ) {
  • solid-performance/tags/1.3.0/src/Performance/Page_Cache/Cache_Handler.php

    r3153468 r3166054  
    8787        $output .= $this->debug->get_debug_comment( $this->request, $this->compressor );
    8888
     89        // Append HTML generated by comment if debugging is DISABLED.
     90        $output .= $this->debug->get_generated_by_comment();
     91
    8992        // Don't save any fails that failed to compress their content.
    9093        try {
  • solid-performance/tags/1.3.0/src/Performance/Page_Cache/Cache_Path.php

    r3153468 r3166054  
    5656
    5757    /**
     58     * Get the host site cache directory.
     59     *
     60     * @example /app/wp-content/cache/page/www.wordpress.test
     61     *
     62     * @return string
     63     */
     64    public function get_site_cache_dir(): string {
     65        $path      = $this->get_page_cache_dir();
     66        $site_host = wp_parse_url( get_site_url(), PHP_URL_HOST );
     67
     68
     69        return $path . DIRECTORY_SEPARATOR . $site_host;
     70    }
     71
     72    /**
    5873     * Converts a URL into a directory structure.
    5974     *
  • solid-performance/tags/1.3.0/src/Performance/Page_Cache/Debug.php

    r3153468 r3166054  
    131131        return '';
    132132    }
     133
     134    /**
     135     * Get the generated comment, shown on cached pages when debugging is DISABLED.
     136     *
     137     * @return string
     138     */
     139    public function get_generated_by_comment(): string {
     140        if ( $this->config->get( 'page_cache.debug' ) ) {
     141            return '';
     142        }
     143
     144        $date_time = ( new DateTime() )->format( 'Y-m-d h:i:s' );
     145
     146        return sprintf(
     147            '
     148<!-- Cached page generated by Solid Performance on %s -->',
     149            esc_html( $date_time )
     150        );
     151    }
    133152}
  • solid-performance/tags/1.3.0/src/Performance/Shutdown/Provider.php

    r3153468 r3166054  
    1010namespace SolidWP\Performance\Shutdown;
    1111
    12 use SolidWP\Performance\Admin\Option_Purger;
    1312use SolidWP\Performance\Config\Config;
    1413use SolidWP\Performance\Contracts\Service_Provider;
     14use SolidWP\Performance\Page_Cache\Purge\Batch\Batch_Purger;
    1515use SolidWP\Performance\Update\Updater;
    1616
     
    3535                // Add any terminable tasks to the collection to run on shutdown.
    3636                // Important: these will run in the order provided.
    37                 $this->container->get( Option_Purger::class ),
    3837                $this->container->get( Config::class ),
    3938                $this->container->get( Updater::class ),
     39                $this->container->get( Batch_Purger::class ),
    4040            )
    4141        );
    4242
     43        // Create an action that can be called manually.
     44        add_action( 'solidwp/performance/terminate', $this->container->callback( Shutdown_Handler::class, 'handle' ) );
     45
    4346        // Run early to get ahead of any potentially bad code that could kill execution.
    44         add_action( 'shutdown', $this->container->callback( Shutdown_Handler::class, 'handle' ), 1 );
     47        add_action(
     48            'shutdown',
     49            static function (): void {
     50                do_action( 'solidwp/performance/terminate' );
     51            },
     52            1
     53        );
    4554
    4655        // Run this again in case any other code was updated in the shutdown action that could trigger our Terminable tasks.
    47         add_action( 'shutdown', $this->container->callback( Shutdown_Handler::class, 'handle' ), 9999 );
     56        add_action(
     57            'shutdown',
     58            static function (): void {
     59                do_action( 'solidwp/performance/terminate' );
     60            },
     61            9999
     62        );
    4863    }
    4964}
  • solid-performance/tags/1.3.0/src/Performance/Update/Updater.php

    r3153468 r3166054  
    102102     *
    103103     * @action shutdown
     104     * @action solidwp/performance/terminate
    104105     *
    105106     * @return void
  • solid-performance/tags/1.3.0/vendor/composer/installed.php

    r3153468 r3166054  
    22    'root' => array(
    33        'name' => 'ithemes/solid-performance',
    4         'pretty_version' => '1.2.0',
    5         'version' => '1.2.0.0',
    6         'reference' => 'b44a858f15ef2dd3b9cd7db5d04ad78c64134a37',
     4        'pretty_version' => '1.3.0',
     5        'version' => '1.3.0.0',
     6        'reference' => 'f0e52a7c692edece7ac88beb7fb5f194968d87de',
    77        'type' => 'wordpress-plugin',
    88        'install_path' => __DIR__ . '/../../',
     
    4848        ),
    4949        'ithemes/solid-performance' => array(
    50             'pretty_version' => '1.2.0',
    51             'version' => '1.2.0.0',
    52             'reference' => 'b44a858f15ef2dd3b9cd7db5d04ad78c64134a37',
     50            'pretty_version' => '1.3.0',
     51            'version' => '1.3.0.0',
     52            'reference' => 'f0e52a7c692edece7ac88beb7fb5f194968d87de',
    5353            'type' => 'wordpress-plugin',
    5454            'install_path' => __DIR__ . '/../../',
  • solid-performance/tags/1.3.0/vendor/vendor-prefixed/autoload-classmap.php

    r3153468 r3166054  
    77return array(
    88   'SolidWP\Performance\Rogervila\ArrayDiffMultidimensional' => $strauss_src . '/rogervila/array-diff-multidimensional/src/ArrayDiffMultidimensional.php',
    9    'SolidWP\Performance\Psr\SimpleCache\CacheException' => $strauss_src . '/psr/simple-cache/src/CacheException.php',
    10    'SolidWP\Performance\Psr\SimpleCache\CacheInterface' => $strauss_src . '/psr/simple-cache/src/CacheInterface.php',
    11    'SolidWP\Performance\Psr\SimpleCache\InvalidArgumentException' => $strauss_src . '/psr/simple-cache/src/InvalidArgumentException.php',
    12    'SolidWP\Performance\Psr\Container\ContainerInterface' => $strauss_src . '/psr/container/src/ContainerInterface.php',
    13    'SolidWP\Performance\Psr\Container\NotFoundExceptionInterface' => $strauss_src . '/psr/container/src/NotFoundExceptionInterface.php',
    14    'SolidWP\Performance\Psr\Container\ContainerExceptionInterface' => $strauss_src . '/psr/container/src/ContainerExceptionInterface.php',
     9   'SolidWP\Performance\Flintstone\Flintstone' => $strauss_src . '/fire015/flintstone/src/Flintstone.php',
     10   'SolidWP\Performance\Flintstone\Database' => $strauss_src . '/fire015/flintstone/src/Database.php',
     11   'SolidWP\Performance\Flintstone\Formatter\JsonFormatter' => $strauss_src . '/fire015/flintstone/src/Formatter/JsonFormatter.php',
     12   'SolidWP\Performance\Flintstone\Formatter\FormatterInterface' => $strauss_src . '/fire015/flintstone/src/Formatter/FormatterInterface.php',
     13   'SolidWP\Performance\Flintstone\Formatter\SerializeFormatter' => $strauss_src . '/fire015/flintstone/src/Formatter/SerializeFormatter.php',
     14   'SolidWP\Performance\Flintstone\Config' => $strauss_src . '/fire015/flintstone/src/Config.php',
     15   'SolidWP\Performance\Flintstone\Exception' => $strauss_src . '/fire015/flintstone/src/Exception.php',
     16   'SolidWP\Performance\Flintstone\Cache\CacheInterface' => $strauss_src . '/fire015/flintstone/src/Cache/CacheInterface.php',
     17   'SolidWP\Performance\Flintstone\Cache\ArrayCache' => $strauss_src . '/fire015/flintstone/src/Cache/ArrayCache.php',
     18   'SolidWP\Performance\Flintstone\Line' => $strauss_src . '/fire015/flintstone/src/Line.php',
     19   'SolidWP\Performance\Flintstone\Validation' => $strauss_src . '/fire015/flintstone/src/Validation.php',
    1520   'SolidWP_Performance_WPConfigTransformer' => $strauss_src . '/wp-cli/wp-config-transformer/src/WPConfigTransformer.php',
     21   'SolidWP\Performance\lucatume\DI52\ServiceProvider' => $strauss_src . '/lucatume/di52/src/ServiceProvider.php',
     22   'SolidWP\Performance\lucatume\DI52\App' => $strauss_src . '/lucatume/di52/src/App.php',
     23   'SolidWP\Performance\lucatume\DI52\Builders\ValueBuilder' => $strauss_src . '/lucatume/di52/src/Builders/ValueBuilder.php',
     24   'SolidWP\Performance\lucatume\DI52\Builders\ClosureBuilder' => $strauss_src . '/lucatume/di52/src/Builders/ClosureBuilder.php',
     25   'SolidWP\Performance\lucatume\DI52\Builders\Parameter' => $strauss_src . '/lucatume/di52/src/Builders/Parameter.php',
     26   'SolidWP\Performance\lucatume\DI52\Builders\ClassBuilder' => $strauss_src . '/lucatume/di52/src/Builders/ClassBuilder.php',
     27   'SolidWP\Performance\lucatume\DI52\Builders\Factory' => $strauss_src . '/lucatume/di52/src/Builders/Factory.php',
     28   'SolidWP\Performance\lucatume\DI52\Builders\Resolver' => $strauss_src . '/lucatume/di52/src/Builders/Resolver.php',
     29   'SolidWP\Performance\lucatume\DI52\Builders\ReinitializableBuilderInterface' => $strauss_src . '/lucatume/di52/src/Builders/ReinitializableBuilderInterface.php',
     30   'SolidWP\Performance\lucatume\DI52\Builders\BuilderInterface' => $strauss_src . '/lucatume/di52/src/Builders/BuilderInterface.php',
     31   'SolidWP\Performance\lucatume\DI52\Builders\CallableBuilder' => $strauss_src . '/lucatume/di52/src/Builders/CallableBuilder.php',
     32   'SolidWP\Performance\lucatume\DI52\NestedParseError' => $strauss_src . '/lucatume/di52/src/NestedParseError.php',
     33   'SolidWP\Performance\lucatume\DI52\NotFoundException' => $strauss_src . '/lucatume/di52/src/NotFoundException.php',
     34   'SolidWP\Performance\lucatume\DI52\Container' => $strauss_src . '/lucatume/di52/src/Container.php',
     35   'SolidWP\Performance\lucatume\DI52\ContainerException' => $strauss_src . '/lucatume/di52/src/ContainerException.php',
     36   'SolidWP\Performance\StellarWP\SuperGlobals\SuperGlobals' => $strauss_src . '/stellarwp/superglobals/src/SuperGlobals/SuperGlobals.php',
     37   'SolidWP\Performance\StellarWP\Telemetry\Exit_Interview\Exit_Interview_Subscriber' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Exit_Interview/Exit_Interview_Subscriber.php',
     38   'SolidWP\Performance\StellarWP\Telemetry\Exit_Interview\Template' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Exit_Interview/Template.php',
     39   'SolidWP\Performance\StellarWP\Telemetry\Uninstall' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Uninstall.php',
     40   'SolidWP\Performance\StellarWP\Telemetry\Telemetry\Telemetry_Subscriber' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Telemetry/Telemetry_Subscriber.php',
     41   'SolidWP\Performance\StellarWP\Telemetry\Telemetry\Telemetry' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Telemetry/Telemetry.php',
     42   'SolidWP\Performance\StellarWP\Telemetry\Last_Send\Last_Send_Subscriber' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Last_Send/Last_Send_Subscriber.php',
     43   'SolidWP\Performance\StellarWP\Telemetry\Last_Send\Last_Send' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Last_Send/Last_Send.php',
     44   'SolidWP\Performance\StellarWP\Telemetry\Opt_In\Status' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Opt_In/Status.php',
     45   'SolidWP\Performance\StellarWP\Telemetry\Opt_In\Opt_In_Subscriber' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Opt_In/Opt_In_Subscriber.php',
     46   'SolidWP\Performance\StellarWP\Telemetry\Opt_In\Opt_In_Template' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Opt_In/Opt_In_Template.php',
     47   'SolidWP\Performance\StellarWP\Telemetry\Contracts\Template_Interface' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Contracts/Template_Interface.php',
     48   'SolidWP\Performance\StellarWP\Telemetry\Contracts\Subscriber_Interface' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Contracts/Subscriber_Interface.php',
     49   'SolidWP\Performance\StellarWP\Telemetry\Contracts\Runnable' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Contracts/Runnable.php',
     50   'SolidWP\Performance\StellarWP\Telemetry\Contracts\Abstract_Subscriber' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Contracts/Abstract_Subscriber.php',
     51   'SolidWP\Performance\StellarWP\Telemetry\Contracts\Data_Provider' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Contracts/Data_Provider.php',
     52   'SolidWP\Performance\StellarWP\Telemetry\Config' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Config.php',
    1653   'SolidWP\Performance\StellarWP\Telemetry\Admin\Admin_Subscriber' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Admin/Admin_Subscriber.php',
    1754   'SolidWP\Performance\StellarWP\Telemetry\Admin\Resources' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Admin/Resources.php',
    18    'SolidWP\Performance\StellarWP\Telemetry\Last_Send\Last_Send_Subscriber' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Last_Send/Last_Send_Subscriber.php',
    19    'SolidWP\Performance\StellarWP\Telemetry\Last_Send\Last_Send' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Last_Send/Last_Send.php',
    20    'SolidWP\Performance\StellarWP\Telemetry\Config' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Config.php',
    21    'SolidWP\Performance\StellarWP\Telemetry\Telemetry\Telemetry_Subscriber' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Telemetry/Telemetry_Subscriber.php',
    22    'SolidWP\Performance\StellarWP\Telemetry\Telemetry\Telemetry' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Telemetry/Telemetry.php',
     55   'SolidWP\Performance\StellarWP\Telemetry\Data_Providers\Debug_Data' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Data_Providers/Debug_Data.php',
     56   'SolidWP\Performance\StellarWP\Telemetry\Data_Providers\Null_Data_Provider' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Data_Providers/Null_Data_Provider.php',
    2357   'SolidWP\Performance\StellarWP\Telemetry\Events\Event_Subscriber' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Events/Event_Subscriber.php',
    2458   'SolidWP\Performance\StellarWP\Telemetry\Events\Event' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Events/Event.php',
    2559   'SolidWP\Performance\StellarWP\Telemetry\Core' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Core.php',
    26    'SolidWP\Performance\StellarWP\Telemetry\Opt_In\Opt_In_Template' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Opt_In/Opt_In_Template.php',
    27    'SolidWP\Performance\StellarWP\Telemetry\Opt_In\Opt_In_Subscriber' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Opt_In/Opt_In_Subscriber.php',
    28    'SolidWP\Performance\StellarWP\Telemetry\Opt_In\Status' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Opt_In/Status.php',
    29    'SolidWP\Performance\StellarWP\Telemetry\Data_Providers\Null_Data_Provider' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Data_Providers/Null_Data_Provider.php',
    30    'SolidWP\Performance\StellarWP\Telemetry\Data_Providers\Debug_Data' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Data_Providers/Debug_Data.php',
    31    'SolidWP\Performance\StellarWP\Telemetry\Uninstall' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Uninstall.php',
    32    'SolidWP\Performance\StellarWP\Telemetry\Contracts\Data_Provider' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Contracts/Data_Provider.php',
    33    'SolidWP\Performance\StellarWP\Telemetry\Contracts\Runnable' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Contracts/Runnable.php',
    34    'SolidWP\Performance\StellarWP\Telemetry\Contracts\Subscriber_Interface' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Contracts/Subscriber_Interface.php',
    35    'SolidWP\Performance\StellarWP\Telemetry\Contracts\Abstract_Subscriber' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Contracts/Abstract_Subscriber.php',
    36    'SolidWP\Performance\StellarWP\Telemetry\Contracts\Template_Interface' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Contracts/Template_Interface.php',
    37    'SolidWP\Performance\StellarWP\Telemetry\Exit_Interview\Template' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Exit_Interview/Template.php',
    38    'SolidWP\Performance\StellarWP\Telemetry\Exit_Interview\Exit_Interview_Subscriber' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Exit_Interview/Exit_Interview_Subscriber.php',
     60   'SolidWP\Performance\StellarWP\Pipeline\Pipeline' => $strauss_src . '/stellarwp/pipeline/src/Pipeline/Pipeline.php',
     61   'SolidWP\Performance\StellarWP\Pipeline\Contracts\Pipe' => $strauss_src . '/stellarwp/pipeline/src/Pipeline/Contracts/Pipe.php',
    3962   'SolidWP\Performance\StellarWP\Arrays\Arr' => $strauss_src . '/stellarwp/arrays/src/Arrays/Arr.php',
    40    'SolidWP\Performance\StellarWP\Pipeline\Contracts\Pipe' => $strauss_src . '/stellarwp/pipeline/src/Pipeline/Contracts/Pipe.php',
    41    'SolidWP\Performance\StellarWP\Pipeline\Pipeline' => $strauss_src . '/stellarwp/pipeline/src/Pipeline/Pipeline.php',
    42    'SolidWP\Performance\StellarWP\SuperGlobals\SuperGlobals' => $strauss_src . '/stellarwp/superglobals/src/SuperGlobals/SuperGlobals.php',
    4363   'SolidWP\Performance\StellarWP\ContainerContract\ContainerInterface' => $strauss_src . '/stellarwp/container-contract/src/ContainerInterface.php',
    44    'SolidWP\Performance\Flintstone\Formatter\SerializeFormatter' => $strauss_src . '/fire015/flintstone/src/Formatter/SerializeFormatter.php',
    45    'SolidWP\Performance\Flintstone\Formatter\FormatterInterface' => $strauss_src . '/fire015/flintstone/src/Formatter/FormatterInterface.php',
    46    'SolidWP\Performance\Flintstone\Formatter\JsonFormatter' => $strauss_src . '/fire015/flintstone/src/Formatter/JsonFormatter.php',
    47    'SolidWP\Performance\Flintstone\Cache\ArrayCache' => $strauss_src . '/fire015/flintstone/src/Cache/ArrayCache.php',
    48    'SolidWP\Performance\Flintstone\Cache\CacheInterface' => $strauss_src . '/fire015/flintstone/src/Cache/CacheInterface.php',
    49    'SolidWP\Performance\Flintstone\Exception' => $strauss_src . '/fire015/flintstone/src/Exception.php',
    50    'SolidWP\Performance\Flintstone\Database' => $strauss_src . '/fire015/flintstone/src/Database.php',
    51    'SolidWP\Performance\Flintstone\Config' => $strauss_src . '/fire015/flintstone/src/Config.php',
    52    'SolidWP\Performance\Flintstone\Validation' => $strauss_src . '/fire015/flintstone/src/Validation.php',
    53    'SolidWP\Performance\Flintstone\Flintstone' => $strauss_src . '/fire015/flintstone/src/Flintstone.php',
    54    'SolidWP\Performance\Flintstone\Line' => $strauss_src . '/fire015/flintstone/src/Line.php',
    55    'SolidWP\Performance\Illuminate\Support\Arr' => $strauss_src . '/illuminate/collections/Arr.php',
    56    'SolidWP\Performance\Illuminate\Support\HigherOrderCollectionProxy' => $strauss_src . '/illuminate/collections/HigherOrderCollectionProxy.php',
    57    'SolidWP\Performance\Illuminate\Support\HigherOrderWhenProxy' => $strauss_src . '/illuminate/collections/HigherOrderWhenProxy.php',
    58    'SolidWP\Performance\Illuminate\Support\Enumerable' => $strauss_src . '/illuminate/collections/Enumerable.php',
    59    'SolidWP\Performance\Illuminate\Support\ItemNotFoundException' => $strauss_src . '/illuminate/collections/ItemNotFoundException.php',
    60    'SolidWP\Performance\Illuminate\Support\LazyCollection' => $strauss_src . '/illuminate/collections/LazyCollection.php',
    61    'SolidWP\Performance\Illuminate\Support\Traits\EnumeratesValues' => $strauss_src . '/illuminate/collections/Traits/EnumeratesValues.php',
    62    'SolidWP\Performance\Illuminate\Support\Collection' => $strauss_src . '/illuminate/collections/Collection.php',
    63    'SolidWP\Performance\Illuminate\Support\MultipleItemsFoundException' => $strauss_src . '/illuminate/collections/MultipleItemsFoundException.php',
    64    'SolidWP\Performance\Illuminate\Support\Traits\Macroable' => $strauss_src . '/illuminate/macroable/Traits/Macroable.php',
    65    'SolidWP\Performance\Illuminate\Contracts\Cache\Factory' => $strauss_src . '/illuminate/contracts/Cache/Factory.php',
    66    'SolidWP\Performance\Illuminate\Contracts\Cache\LockTimeoutException' => $strauss_src . '/illuminate/contracts/Cache/LockTimeoutException.php',
    67    'SolidWP\Performance\Illuminate\Contracts\Cache\LockProvider' => $strauss_src . '/illuminate/contracts/Cache/LockProvider.php',
    68    'SolidWP\Performance\Illuminate\Contracts\Cache\Repository' => $strauss_src . '/illuminate/contracts/Cache/Repository.php',
    69    'SolidWP\Performance\Illuminate\Contracts\Cache\Store' => $strauss_src . '/illuminate/contracts/Cache/Store.php',
    70    'SolidWP\Performance\Illuminate\Contracts\Cache\Lock' => $strauss_src . '/illuminate/contracts/Cache/Lock.php',
     64   'SolidWP\Performance\Illuminate\Contracts\Config\Repository' => $strauss_src . '/illuminate/contracts/Config/Repository.php',
    7165   'SolidWP\Performance\Illuminate\Contracts\Container\BindingResolutionException' => $strauss_src . '/illuminate/contracts/Container/BindingResolutionException.php',
    7266   'SolidWP\Performance\Illuminate\Contracts\Container\Container' => $strauss_src . '/illuminate/contracts/Container/Container.php',
     67   'SolidWP\Performance\Illuminate\Contracts\Container\CircularDependencyException' => $strauss_src . '/illuminate/contracts/Container/CircularDependencyException.php',
    7368   'SolidWP\Performance\Illuminate\Contracts\Container\ContextualBindingBuilder' => $strauss_src . '/illuminate/contracts/Container/ContextualBindingBuilder.php',
    74    'SolidWP\Performance\Illuminate\Contracts\Container\CircularDependencyException' => $strauss_src . '/illuminate/contracts/Container/CircularDependencyException.php',
    75    'SolidWP\Performance\Illuminate\Contracts\Queue\EntityResolver' => $strauss_src . '/illuminate/contracts/Queue/EntityResolver.php',
    76    'SolidWP\Performance\Illuminate\Contracts\Queue\Factory' => $strauss_src . '/illuminate/contracts/Queue/Factory.php',
    77    'SolidWP\Performance\Illuminate\Contracts\Queue\ShouldBeEncrypted' => $strauss_src . '/illuminate/contracts/Queue/ShouldBeEncrypted.php',
    78    'SolidWP\Performance\Illuminate\Contracts\Queue\ShouldBeUnique' => $strauss_src . '/illuminate/contracts/Queue/ShouldBeUnique.php',
    79    'SolidWP\Performance\Illuminate\Contracts\Queue\Queue' => $strauss_src . '/illuminate/contracts/Queue/Queue.php',
    80    'SolidWP\Performance\Illuminate\Contracts\Queue\ShouldQueue' => $strauss_src . '/illuminate/contracts/Queue/ShouldQueue.php',
    81    'SolidWP\Performance\Illuminate\Contracts\Queue\QueueableCollection' => $strauss_src . '/illuminate/contracts/Queue/QueueableCollection.php',
    82    'SolidWP\Performance\Illuminate\Contracts\Queue\QueueableEntity' => $strauss_src . '/illuminate/contracts/Queue/QueueableEntity.php',
    83    'SolidWP\Performance\Illuminate\Contracts\Queue\Monitor' => $strauss_src . '/illuminate/contracts/Queue/Monitor.php',
    84    'SolidWP\Performance\Illuminate\Contracts\Queue\Job' => $strauss_src . '/illuminate/contracts/Queue/Job.php',
    85    'SolidWP\Performance\Illuminate\Contracts\Queue\ClearableQueue' => $strauss_src . '/illuminate/contracts/Queue/ClearableQueue.php',
    86    'SolidWP\Performance\Illuminate\Contracts\Queue\EntityNotFoundException' => $strauss_src . '/illuminate/contracts/Queue/EntityNotFoundException.php',
    87    'SolidWP\Performance\Illuminate\Contracts\Queue\ShouldBeUniqueUntilProcessing' => $strauss_src . '/illuminate/contracts/Queue/ShouldBeUniqueUntilProcessing.php',
    88    'SolidWP\Performance\Illuminate\Contracts\Foundation\CachesRoutes' => $strauss_src . '/illuminate/contracts/Foundation/CachesRoutes.php',
     69   'SolidWP\Performance\Illuminate\Contracts\Hashing\Hasher' => $strauss_src . '/illuminate/contracts/Hashing/Hasher.php',
     70   'SolidWP\Performance\Illuminate\Contracts\Bus\Dispatcher' => $strauss_src . '/illuminate/contracts/Bus/Dispatcher.php',
     71   'SolidWP\Performance\Illuminate\Contracts\Bus\QueueingDispatcher' => $strauss_src . '/illuminate/contracts/Bus/QueueingDispatcher.php',
     72   'SolidWP\Performance\Illuminate\Contracts\Auth\UserProvider' => $strauss_src . '/illuminate/contracts/Auth/UserProvider.php',
     73   'SolidWP\Performance\Illuminate\Contracts\Auth\Middleware\AuthenticatesRequests' => $strauss_src . '/illuminate/contracts/Auth/Middleware/AuthenticatesRequests.php',
     74   'SolidWP\Performance\Illuminate\Contracts\Auth\PasswordBrokerFactory' => $strauss_src . '/illuminate/contracts/Auth/PasswordBrokerFactory.php',
     75   'SolidWP\Performance\Illuminate\Contracts\Auth\CanResetPassword' => $strauss_src . '/illuminate/contracts/Auth/CanResetPassword.php',
     76   'SolidWP\Performance\Illuminate\Contracts\Auth\Guard' => $strauss_src . '/illuminate/contracts/Auth/Guard.php',
     77   'SolidWP\Performance\Illuminate\Contracts\Auth\Access\Authorizable' => $strauss_src . '/illuminate/contracts/Auth/Access/Authorizable.php',
     78   'SolidWP\Performance\Illuminate\Contracts\Auth\Access\Gate' => $strauss_src . '/illuminate/contracts/Auth/Access/Gate.php',
     79   'SolidWP\Performance\Illuminate\Contracts\Auth\Factory' => $strauss_src . '/illuminate/contracts/Auth/Factory.php',
     80   'SolidWP\Performance\Illuminate\Contracts\Auth\SupportsBasicAuth' => $strauss_src . '/illuminate/contracts/Auth/SupportsBasicAuth.php',
     81   'SolidWP\Performance\Illuminate\Contracts\Auth\StatefulGuard' => $strauss_src . '/illuminate/contracts/Auth/StatefulGuard.php',
     82   'SolidWP\Performance\Illuminate\Contracts\Auth\MustVerifyEmail' => $strauss_src . '/illuminate/contracts/Auth/MustVerifyEmail.php',
     83   'SolidWP\Performance\Illuminate\Contracts\Auth\Authenticatable' => $strauss_src . '/illuminate/contracts/Auth/Authenticatable.php',
     84   'SolidWP\Performance\Illuminate\Contracts\Auth\PasswordBroker' => $strauss_src . '/illuminate/contracts/Auth/PasswordBroker.php',
     85   'SolidWP\Performance\Illuminate\Contracts\Broadcasting\ShouldBroadcast' => $strauss_src . '/illuminate/contracts/Broadcasting/ShouldBroadcast.php',
     86   'SolidWP\Performance\Illuminate\Contracts\Broadcasting\Factory' => $strauss_src . '/illuminate/contracts/Broadcasting/Factory.php',
     87   'SolidWP\Performance\Illuminate\Contracts\Broadcasting\HasBroadcastChannel' => $strauss_src . '/illuminate/contracts/Broadcasting/HasBroadcastChannel.php',
     88   'SolidWP\Performance\Illuminate\Contracts\Broadcasting\ShouldBroadcastNow' => $strauss_src . '/illuminate/contracts/Broadcasting/ShouldBroadcastNow.php',
     89   'SolidWP\Performance\Illuminate\Contracts\Broadcasting\Broadcaster' => $strauss_src . '/illuminate/contracts/Broadcasting/Broadcaster.php',
     90   'SolidWP\Performance\Illuminate\Contracts\Validation\DataAwareRule' => $strauss_src . '/illuminate/contracts/Validation/DataAwareRule.php',
     91   'SolidWP\Performance\Illuminate\Contracts\Validation\ValidatesWhenResolved' => $strauss_src . '/illuminate/contracts/Validation/ValidatesWhenResolved.php',
     92   'SolidWP\Performance\Illuminate\Contracts\Validation\ValidatorAwareRule' => $strauss_src . '/illuminate/contracts/Validation/ValidatorAwareRule.php',
     93   'SolidWP\Performance\Illuminate\Contracts\Validation\ImplicitRule' => $strauss_src . '/illuminate/contracts/Validation/ImplicitRule.php',
     94   'SolidWP\Performance\Illuminate\Contracts\Validation\UncompromisedVerifier' => $strauss_src . '/illuminate/contracts/Validation/UncompromisedVerifier.php',
     95   'SolidWP\Performance\Illuminate\Contracts\Validation\Validator' => $strauss_src . '/illuminate/contracts/Validation/Validator.php',
     96   'SolidWP\Performance\Illuminate\Contracts\Validation\Rule' => $strauss_src . '/illuminate/contracts/Validation/Rule.php',
     97   'SolidWP\Performance\Illuminate\Contracts\Validation\Factory' => $strauss_src . '/illuminate/contracts/Validation/Factory.php',
    8998   'SolidWP\Performance\Illuminate\Contracts\Foundation\Application' => $strauss_src . '/illuminate/contracts/Foundation/Application.php',
    9099   'SolidWP\Performance\Illuminate\Contracts\Foundation\CachesConfiguration' => $strauss_src . '/illuminate/contracts/Foundation/CachesConfiguration.php',
    91    'SolidWP\Performance\Illuminate\Contracts\Pagination\Paginator' => $strauss_src . '/illuminate/contracts/Pagination/Paginator.php',
    92    'SolidWP\Performance\Illuminate\Contracts\Pagination\CursorPaginator' => $strauss_src . '/illuminate/contracts/Pagination/CursorPaginator.php',
    93    'SolidWP\Performance\Illuminate\Contracts\Pagination\LengthAwarePaginator' => $strauss_src . '/illuminate/contracts/Pagination/LengthAwarePaginator.php',
    94    'SolidWP\Performance\Illuminate\Contracts\Events\Dispatcher' => $strauss_src . '/illuminate/contracts/Events/Dispatcher.php',
    95    'SolidWP\Performance\Illuminate\Contracts\Broadcasting\Factory' => $strauss_src . '/illuminate/contracts/Broadcasting/Factory.php',
    96    'SolidWP\Performance\Illuminate\Contracts\Broadcasting\Broadcaster' => $strauss_src . '/illuminate/contracts/Broadcasting/Broadcaster.php',
    97    'SolidWP\Performance\Illuminate\Contracts\Broadcasting\ShouldBroadcast' => $strauss_src . '/illuminate/contracts/Broadcasting/ShouldBroadcast.php',
    98    'SolidWP\Performance\Illuminate\Contracts\Broadcasting\ShouldBroadcastNow' => $strauss_src . '/illuminate/contracts/Broadcasting/ShouldBroadcastNow.php',
    99    'SolidWP\Performance\Illuminate\Contracts\Broadcasting\HasBroadcastChannel' => $strauss_src . '/illuminate/contracts/Broadcasting/HasBroadcastChannel.php',
    100    'SolidWP\Performance\Illuminate\Contracts\Routing\BindingRegistrar' => $strauss_src . '/illuminate/contracts/Routing/BindingRegistrar.php',
    101    'SolidWP\Performance\Illuminate\Contracts\Routing\ResponseFactory' => $strauss_src . '/illuminate/contracts/Routing/ResponseFactory.php',
    102    'SolidWP\Performance\Illuminate\Contracts\Routing\UrlGenerator' => $strauss_src . '/illuminate/contracts/Routing/UrlGenerator.php',
    103    'SolidWP\Performance\Illuminate\Contracts\Routing\UrlRoutable' => $strauss_src . '/illuminate/contracts/Routing/UrlRoutable.php',
    104    'SolidWP\Performance\Illuminate\Contracts\Routing\Registrar' => $strauss_src . '/illuminate/contracts/Routing/Registrar.php',
     100   'SolidWP\Performance\Illuminate\Contracts\Foundation\CachesRoutes' => $strauss_src . '/illuminate/contracts/Foundation/CachesRoutes.php',
     101   'SolidWP\Performance\Illuminate\Contracts\View\View' => $strauss_src . '/illuminate/contracts/View/View.php',
     102   'SolidWP\Performance\Illuminate\Contracts\View\Engine' => $strauss_src . '/illuminate/contracts/View/Engine.php',
     103   'SolidWP\Performance\Illuminate\Contracts\View\Factory' => $strauss_src . '/illuminate/contracts/View/Factory.php',
    105104   'SolidWP\Performance\Illuminate\Contracts\Encryption\EncryptException' => $strauss_src . '/illuminate/contracts/Encryption/EncryptException.php',
     105   'SolidWP\Performance\Illuminate\Contracts\Encryption\StringEncrypter' => $strauss_src . '/illuminate/contracts/Encryption/StringEncrypter.php',
    106106   'SolidWP\Performance\Illuminate\Contracts\Encryption\Encrypter' => $strauss_src . '/illuminate/contracts/Encryption/Encrypter.php',
    107    'SolidWP\Performance\Illuminate\Contracts\Encryption\StringEncrypter' => $strauss_src . '/illuminate/contracts/Encryption/StringEncrypter.php',
    108107   'SolidWP\Performance\Illuminate\Contracts\Encryption\DecryptException' => $strauss_src . '/illuminate/contracts/Encryption/DecryptException.php',
    109    'SolidWP\Performance\Illuminate\Contracts\Config\Repository' => $strauss_src . '/illuminate/contracts/Config/Repository.php',
    110    'SolidWP\Performance\Illuminate\Contracts\View\Factory' => $strauss_src . '/illuminate/contracts/View/Factory.php',
    111    'SolidWP\Performance\Illuminate\Contracts\View\Engine' => $strauss_src . '/illuminate/contracts/View/Engine.php',
    112    'SolidWP\Performance\Illuminate\Contracts\View\View' => $strauss_src . '/illuminate/contracts/View/View.php',
    113    'SolidWP\Performance\Illuminate\Contracts\Session\Session' => $strauss_src . '/illuminate/contracts/Session/Session.php',
     108   'SolidWP\Performance\Illuminate\Contracts\Translation\Translator' => $strauss_src . '/illuminate/contracts/Translation/Translator.php',
     109   'SolidWP\Performance\Illuminate\Contracts\Translation\Loader' => $strauss_src . '/illuminate/contracts/Translation/Loader.php',
     110   'SolidWP\Performance\Illuminate\Contracts\Translation\HasLocalePreference' => $strauss_src . '/illuminate/contracts/Translation/HasLocalePreference.php',
     111   'SolidWP\Performance\Illuminate\Contracts\Pipeline\Hub' => $strauss_src . '/illuminate/contracts/Pipeline/Hub.php',
     112   'SolidWP\Performance\Illuminate\Contracts\Pipeline\Pipeline' => $strauss_src . '/illuminate/contracts/Pipeline/Pipeline.php',
     113   'SolidWP\Performance\Illuminate\Contracts\Support\Responsable' => $strauss_src . '/illuminate/contracts/Support/Responsable.php',
     114   'SolidWP\Performance\Illuminate\Contracts\Support\CanBeEscapedWhenCastToString' => $strauss_src . '/illuminate/contracts/Support/CanBeEscapedWhenCastToString.php',
     115   'SolidWP\Performance\Illuminate\Contracts\Support\MessageBag' => $strauss_src . '/illuminate/contracts/Support/MessageBag.php',
     116   'SolidWP\Performance\Illuminate\Contracts\Support\Jsonable' => $strauss_src . '/illuminate/contracts/Support/Jsonable.php',
     117   'SolidWP\Performance\Illuminate\Contracts\Support\ValidatedData' => $strauss_src . '/illuminate/contracts/Support/ValidatedData.php',
     118   'SolidWP\Performance\Illuminate\Contracts\Support\DeferrableProvider' => $strauss_src . '/illuminate/contracts/Support/DeferrableProvider.php',
     119   'SolidWP\Performance\Illuminate\Contracts\Support\Htmlable' => $strauss_src . '/illuminate/contracts/Support/Htmlable.php',
     120   'SolidWP\Performance\Illuminate\Contracts\Support\Renderable' => $strauss_src . '/illuminate/contracts/Support/Renderable.php',
     121   'SolidWP\Performance\Illuminate\Contracts\Support\Arrayable' => $strauss_src . '/illuminate/contracts/Support/Arrayable.php',
     122   'SolidWP\Performance\Illuminate\Contracts\Support\MessageProvider' => $strauss_src . '/illuminate/contracts/Support/MessageProvider.php',
     123   'SolidWP\Performance\Illuminate\Contracts\Support\DeferringDisplayableValue' => $strauss_src . '/illuminate/contracts/Support/DeferringDisplayableValue.php',
     124   'SolidWP\Performance\Illuminate\Contracts\Notifications\Dispatcher' => $strauss_src . '/illuminate/contracts/Notifications/Dispatcher.php',
     125   'SolidWP\Performance\Illuminate\Contracts\Notifications\Factory' => $strauss_src . '/illuminate/contracts/Notifications/Factory.php',
     126   'SolidWP\Performance\Illuminate\Contracts\Redis\Connection' => $strauss_src . '/illuminate/contracts/Redis/Connection.php',
     127   'SolidWP\Performance\Illuminate\Contracts\Redis\Connector' => $strauss_src . '/illuminate/contracts/Redis/Connector.php',
     128   'SolidWP\Performance\Illuminate\Contracts\Redis\Factory' => $strauss_src . '/illuminate/contracts/Redis/Factory.php',
     129   'SolidWP\Performance\Illuminate\Contracts\Redis\LimiterTimeoutException' => $strauss_src . '/illuminate/contracts/Redis/LimiterTimeoutException.php',
    114130   'SolidWP\Performance\Illuminate\Contracts\Console\Application' => $strauss_src . '/illuminate/contracts/Console/Application.php',
    115131   'SolidWP\Performance\Illuminate\Contracts\Console\Kernel' => $strauss_src . '/illuminate/contracts/Console/Kernel.php',
    116    'SolidWP\Performance\Illuminate\Contracts\Validation\Factory' => $strauss_src . '/illuminate/contracts/Validation/Factory.php',
    117    'SolidWP\Performance\Illuminate\Contracts\Validation\Validator' => $strauss_src . '/illuminate/contracts/Validation/Validator.php',
    118    'SolidWP\Performance\Illuminate\Contracts\Validation\Rule' => $strauss_src . '/illuminate/contracts/Validation/Rule.php',
    119    'SolidWP\Performance\Illuminate\Contracts\Validation\ValidatorAwareRule' => $strauss_src . '/illuminate/contracts/Validation/ValidatorAwareRule.php',
    120    'SolidWP\Performance\Illuminate\Contracts\Validation\ValidatesWhenResolved' => $strauss_src . '/illuminate/contracts/Validation/ValidatesWhenResolved.php',
    121    'SolidWP\Performance\Illuminate\Contracts\Validation\ImplicitRule' => $strauss_src . '/illuminate/contracts/Validation/ImplicitRule.php',
    122    'SolidWP\Performance\Illuminate\Contracts\Validation\UncompromisedVerifier' => $strauss_src . '/illuminate/contracts/Validation/UncompromisedVerifier.php',
    123    'SolidWP\Performance\Illuminate\Contracts\Validation\DataAwareRule' => $strauss_src . '/illuminate/contracts/Validation/DataAwareRule.php',
    124    'SolidWP\Performance\Illuminate\Contracts\Debug\ExceptionHandler' => $strauss_src . '/illuminate/contracts/Debug/ExceptionHandler.php',
    125    'SolidWP\Performance\Illuminate\Contracts\Support\DeferrableProvider' => $strauss_src . '/illuminate/contracts/Support/DeferrableProvider.php',
    126    'SolidWP\Performance\Illuminate\Contracts\Support\MessageBag' => $strauss_src . '/illuminate/contracts/Support/MessageBag.php',
    127    'SolidWP\Performance\Illuminate\Contracts\Support\ValidatedData' => $strauss_src . '/illuminate/contracts/Support/ValidatedData.php',
    128    'SolidWP\Performance\Illuminate\Contracts\Support\Htmlable' => $strauss_src . '/illuminate/contracts/Support/Htmlable.php',
    129    'SolidWP\Performance\Illuminate\Contracts\Support\Responsable' => $strauss_src . '/illuminate/contracts/Support/Responsable.php',
    130    'SolidWP\Performance\Illuminate\Contracts\Support\MessageProvider' => $strauss_src . '/illuminate/contracts/Support/MessageProvider.php',
    131    'SolidWP\Performance\Illuminate\Contracts\Support\Arrayable' => $strauss_src . '/illuminate/contracts/Support/Arrayable.php',
    132    'SolidWP\Performance\Illuminate\Contracts\Support\CanBeEscapedWhenCastToString' => $strauss_src . '/illuminate/contracts/Support/CanBeEscapedWhenCastToString.php',
    133    'SolidWP\Performance\Illuminate\Contracts\Support\Renderable' => $strauss_src . '/illuminate/contracts/Support/Renderable.php',
    134    'SolidWP\Performance\Illuminate\Contracts\Support\Jsonable' => $strauss_src . '/illuminate/contracts/Support/Jsonable.php',
    135    'SolidWP\Performance\Illuminate\Contracts\Support\DeferringDisplayableValue' => $strauss_src . '/illuminate/contracts/Support/DeferringDisplayableValue.php',
    136    'SolidWP\Performance\Illuminate\Contracts\Translation\Translator' => $strauss_src . '/illuminate/contracts/Translation/Translator.php',
    137    'SolidWP\Performance\Illuminate\Contracts\Translation\HasLocalePreference' => $strauss_src . '/illuminate/contracts/Translation/HasLocalePreference.php',
    138    'SolidWP\Performance\Illuminate\Contracts\Translation\Loader' => $strauss_src . '/illuminate/contracts/Translation/Loader.php',
    139    'SolidWP\Performance\Illuminate\Contracts\Pipeline\Hub' => $strauss_src . '/illuminate/contracts/Pipeline/Hub.php',
    140    'SolidWP\Performance\Illuminate\Contracts\Pipeline\Pipeline' => $strauss_src . '/illuminate/contracts/Pipeline/Pipeline.php',
    141    'SolidWP\Performance\Illuminate\Contracts\Http\Kernel' => $strauss_src . '/illuminate/contracts/Http/Kernel.php',
    142    'SolidWP\Performance\Illuminate\Contracts\Notifications\Factory' => $strauss_src . '/illuminate/contracts/Notifications/Factory.php',
    143    'SolidWP\Performance\Illuminate\Contracts\Notifications\Dispatcher' => $strauss_src . '/illuminate/contracts/Notifications/Dispatcher.php',
    144    'SolidWP\Performance\Illuminate\Contracts\Database\Events\MigrationEvent' => $strauss_src . '/illuminate/contracts/Database/Events/MigrationEvent.php',
    145132   'SolidWP\Performance\Illuminate\Contracts\Database\Eloquent\Castable' => $strauss_src . '/illuminate/contracts/Database/Eloquent/Castable.php',
    146133   'SolidWP\Performance\Illuminate\Contracts\Database\Eloquent\DeviatesCastableAttributes' => $strauss_src . '/illuminate/contracts/Database/Eloquent/DeviatesCastableAttributes.php',
    147134   'SolidWP\Performance\Illuminate\Contracts\Database\Eloquent\CastsInboundAttributes' => $strauss_src . '/illuminate/contracts/Database/Eloquent/CastsInboundAttributes.php',
     135   'SolidWP\Performance\Illuminate\Contracts\Database\Eloquent\SupportsPartialRelations' => $strauss_src . '/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php',
    148136   'SolidWP\Performance\Illuminate\Contracts\Database\Eloquent\CastsAttributes' => $strauss_src . '/illuminate/contracts/Database/Eloquent/CastsAttributes.php',
    149137   'SolidWP\Performance\Illuminate\Contracts\Database\Eloquent\SerializesCastableAttributes' => $strauss_src . '/illuminate/contracts/Database/Eloquent/SerializesCastableAttributes.php',
    150    'SolidWP\Performance\Illuminate\Contracts\Database\Eloquent\SupportsPartialRelations' => $strauss_src . '/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php',
    151138   'SolidWP\Performance\Illuminate\Contracts\Database\ModelIdentifier' => $strauss_src . '/illuminate/contracts/Database/ModelIdentifier.php',
    152    'SolidWP\Performance\Illuminate\Contracts\Redis\Factory' => $strauss_src . '/illuminate/contracts/Redis/Factory.php',
    153    'SolidWP\Performance\Illuminate\Contracts\Redis\LimiterTimeoutException' => $strauss_src . '/illuminate/contracts/Redis/LimiterTimeoutException.php',
    154    'SolidWP\Performance\Illuminate\Contracts\Redis\Connector' => $strauss_src . '/illuminate/contracts/Redis/Connector.php',
    155    'SolidWP\Performance\Illuminate\Contracts\Redis\Connection' => $strauss_src . '/illuminate/contracts/Redis/Connection.php',
    156    'SolidWP\Performance\Illuminate\Contracts\Mail\Factory' => $strauss_src . '/illuminate/contracts/Mail/Factory.php',
    157    'SolidWP\Performance\Illuminate\Contracts\Mail\Mailable' => $strauss_src . '/illuminate/contracts/Mail/Mailable.php',
    158    'SolidWP\Performance\Illuminate\Contracts\Mail\MailQueue' => $strauss_src . '/illuminate/contracts/Mail/MailQueue.php',
    159    'SolidWP\Performance\Illuminate\Contracts\Mail\Mailer' => $strauss_src . '/illuminate/contracts/Mail/Mailer.php',
    160    'SolidWP\Performance\Illuminate\Contracts\Hashing\Hasher' => $strauss_src . '/illuminate/contracts/Hashing/Hasher.php',
    161    'SolidWP\Performance\Illuminate\Contracts\Auth\Middleware\AuthenticatesRequests' => $strauss_src . '/illuminate/contracts/Auth/Middleware/AuthenticatesRequests.php',
    162    'SolidWP\Performance\Illuminate\Contracts\Auth\PasswordBrokerFactory' => $strauss_src . '/illuminate/contracts/Auth/PasswordBrokerFactory.php',
    163    'SolidWP\Performance\Illuminate\Contracts\Auth\Factory' => $strauss_src . '/illuminate/contracts/Auth/Factory.php',
    164    'SolidWP\Performance\Illuminate\Contracts\Auth\Guard' => $strauss_src . '/illuminate/contracts/Auth/Guard.php',
    165    'SolidWP\Performance\Illuminate\Contracts\Auth\Access\Gate' => $strauss_src . '/illuminate/contracts/Auth/Access/Gate.php',
    166    'SolidWP\Performance\Illuminate\Contracts\Auth\Access\Authorizable' => $strauss_src . '/illuminate/contracts/Auth/Access/Authorizable.php',
    167    'SolidWP\Performance\Illuminate\Contracts\Auth\StatefulGuard' => $strauss_src . '/illuminate/contracts/Auth/StatefulGuard.php',
    168    'SolidWP\Performance\Illuminate\Contracts\Auth\MustVerifyEmail' => $strauss_src . '/illuminate/contracts/Auth/MustVerifyEmail.php',
    169    'SolidWP\Performance\Illuminate\Contracts\Auth\UserProvider' => $strauss_src . '/illuminate/contracts/Auth/UserProvider.php',
    170    'SolidWP\Performance\Illuminate\Contracts\Auth\Authenticatable' => $strauss_src . '/illuminate/contracts/Auth/Authenticatable.php',
    171    'SolidWP\Performance\Illuminate\Contracts\Auth\SupportsBasicAuth' => $strauss_src . '/illuminate/contracts/Auth/SupportsBasicAuth.php',
    172    'SolidWP\Performance\Illuminate\Contracts\Auth\PasswordBroker' => $strauss_src . '/illuminate/contracts/Auth/PasswordBroker.php',
    173    'SolidWP\Performance\Illuminate\Contracts\Auth\CanResetPassword' => $strauss_src . '/illuminate/contracts/Auth/CanResetPassword.php',
    174    'SolidWP\Performance\Illuminate\Contracts\Bus\Dispatcher' => $strauss_src . '/illuminate/contracts/Bus/Dispatcher.php',
    175    'SolidWP\Performance\Illuminate\Contracts\Bus\QueueingDispatcher' => $strauss_src . '/illuminate/contracts/Bus/QueueingDispatcher.php',
    176    'SolidWP\Performance\Illuminate\Contracts\Filesystem\Factory' => $strauss_src . '/illuminate/contracts/Filesystem/Factory.php',
    177    'SolidWP\Performance\Illuminate\Contracts\Filesystem\LockTimeoutException' => $strauss_src . '/illuminate/contracts/Filesystem/LockTimeoutException.php',
     139   'SolidWP\Performance\Illuminate\Contracts\Database\Events\MigrationEvent' => $strauss_src . '/illuminate/contracts/Database/Events/MigrationEvent.php',
     140   'SolidWP\Performance\Illuminate\Contracts\Routing\UrlGenerator' => $strauss_src . '/illuminate/contracts/Routing/UrlGenerator.php',
     141   'SolidWP\Performance\Illuminate\Contracts\Routing\Registrar' => $strauss_src . '/illuminate/contracts/Routing/Registrar.php',
     142   'SolidWP\Performance\Illuminate\Contracts\Routing\ResponseFactory' => $strauss_src . '/illuminate/contracts/Routing/ResponseFactory.php',
     143   'SolidWP\Performance\Illuminate\Contracts\Routing\BindingRegistrar' => $strauss_src . '/illuminate/contracts/Routing/BindingRegistrar.php',
     144   'SolidWP\Performance\Illuminate\Contracts\Routing\UrlRoutable' => $strauss_src . '/illuminate/contracts/Routing/UrlRoutable.php',
     145   'SolidWP\Performance\Illuminate\Contracts\Http\Kernel' => $strauss_src . '/illuminate/contracts/Http/Kernel.php',
     146   'SolidWP\Performance\Illuminate\Contracts\Pagination\LengthAwarePaginator' => $strauss_src . '/illuminate/contracts/Pagination/LengthAwarePaginator.php',
     147   'SolidWP\Performance\Illuminate\Contracts\Pagination\Paginator' => $strauss_src . '/illuminate/contracts/Pagination/Paginator.php',
     148   'SolidWP\Performance\Illuminate\Contracts\Pagination\CursorPaginator' => $strauss_src . '/illuminate/contracts/Pagination/CursorPaginator.php',
     149   'SolidWP\Performance\Illuminate\Contracts\Session\Session' => $strauss_src . '/illuminate/contracts/Session/Session.php',
    178150   'SolidWP\Performance\Illuminate\Contracts\Filesystem\FileNotFoundException' => $strauss_src . '/illuminate/contracts/Filesystem/FileNotFoundException.php',
    179151   'SolidWP\Performance\Illuminate\Contracts\Filesystem\Filesystem' => $strauss_src . '/illuminate/contracts/Filesystem/Filesystem.php',
    180152   'SolidWP\Performance\Illuminate\Contracts\Filesystem\Cloud' => $strauss_src . '/illuminate/contracts/Filesystem/Cloud.php',
    181153   'SolidWP\Performance\Illuminate\Contracts\Filesystem\FileExistsException' => $strauss_src . '/illuminate/contracts/Filesystem/FileExistsException.php',
     154   'SolidWP\Performance\Illuminate\Contracts\Filesystem\Factory' => $strauss_src . '/illuminate/contracts/Filesystem/Factory.php',
     155   'SolidWP\Performance\Illuminate\Contracts\Filesystem\LockTimeoutException' => $strauss_src . '/illuminate/contracts/Filesystem/LockTimeoutException.php',
     156   'SolidWP\Performance\Illuminate\Contracts\Mail\Mailer' => $strauss_src . '/illuminate/contracts/Mail/Mailer.php',
     157   'SolidWP\Performance\Illuminate\Contracts\Mail\MailQueue' => $strauss_src . '/illuminate/contracts/Mail/MailQueue.php',
     158   'SolidWP\Performance\Illuminate\Contracts\Mail\Mailable' => $strauss_src . '/illuminate/contracts/Mail/Mailable.php',
     159   'SolidWP\Performance\Illuminate\Contracts\Mail\Factory' => $strauss_src . '/illuminate/contracts/Mail/Factory.php',
    182160   'SolidWP\Performance\Illuminate\Contracts\Cookie\Factory' => $strauss_src . '/illuminate/contracts/Cookie/Factory.php',
    183161   'SolidWP\Performance\Illuminate\Contracts\Cookie\QueueingFactory' => $strauss_src . '/illuminate/contracts/Cookie/QueueingFactory.php',
    184    'SolidWP\Performance\lucatume\DI52\ServiceProvider' => $strauss_src . '/lucatume/di52/src/ServiceProvider.php',
    185    'SolidWP\Performance\lucatume\DI52\ContainerException' => $strauss_src . '/lucatume/di52/src/ContainerException.php',
    186    'SolidWP\Performance\lucatume\DI52\App' => $strauss_src . '/lucatume/di52/src/App.php',
    187    'SolidWP\Performance\lucatume\DI52\NotFoundException' => $strauss_src . '/lucatume/di52/src/NotFoundException.php',
    188    'SolidWP\Performance\lucatume\DI52\Container' => $strauss_src . '/lucatume/di52/src/Container.php',
    189    'SolidWP\Performance\lucatume\DI52\NestedParseError' => $strauss_src . '/lucatume/di52/src/NestedParseError.php',
    190    'SolidWP\Performance\lucatume\DI52\Builders\ReinitializableBuilderInterface' => $strauss_src . '/lucatume/di52/src/Builders/ReinitializableBuilderInterface.php',
    191    'SolidWP\Performance\lucatume\DI52\Builders\Factory' => $strauss_src . '/lucatume/di52/src/Builders/Factory.php',
    192    'SolidWP\Performance\lucatume\DI52\Builders\Resolver' => $strauss_src . '/lucatume/di52/src/Builders/Resolver.php',
    193    'SolidWP\Performance\lucatume\DI52\Builders\ClassBuilder' => $strauss_src . '/lucatume/di52/src/Builders/ClassBuilder.php',
    194    'SolidWP\Performance\lucatume\DI52\Builders\ValueBuilder' => $strauss_src . '/lucatume/di52/src/Builders/ValueBuilder.php',
    195    'SolidWP\Performance\lucatume\DI52\Builders\BuilderInterface' => $strauss_src . '/lucatume/di52/src/Builders/BuilderInterface.php',
    196    'SolidWP\Performance\lucatume\DI52\Builders\ClosureBuilder' => $strauss_src . '/lucatume/di52/src/Builders/ClosureBuilder.php',
    197    'SolidWP\Performance\lucatume\DI52\Builders\CallableBuilder' => $strauss_src . '/lucatume/di52/src/Builders/CallableBuilder.php',
    198    'SolidWP\Performance\lucatume\DI52\Builders\Parameter' => $strauss_src . '/lucatume/di52/src/Builders/Parameter.php',
     162   'SolidWP\Performance\Illuminate\Contracts\Cache\LockProvider' => $strauss_src . '/illuminate/contracts/Cache/LockProvider.php',
     163   'SolidWP\Performance\Illuminate\Contracts\Cache\Factory' => $strauss_src . '/illuminate/contracts/Cache/Factory.php',
     164   'SolidWP\Performance\Illuminate\Contracts\Cache\Repository' => $strauss_src . '/illuminate/contracts/Cache/Repository.php',
     165   'SolidWP\Performance\Illuminate\Contracts\Cache\Store' => $strauss_src . '/illuminate/contracts/Cache/Store.php',
     166   'SolidWP\Performance\Illuminate\Contracts\Cache\Lock' => $strauss_src . '/illuminate/contracts/Cache/Lock.php',
     167   'SolidWP\Performance\Illuminate\Contracts\Cache\LockTimeoutException' => $strauss_src . '/illuminate/contracts/Cache/LockTimeoutException.php',
     168   'SolidWP\Performance\Illuminate\Contracts\Events\Dispatcher' => $strauss_src . '/illuminate/contracts/Events/Dispatcher.php',
     169   'SolidWP\Performance\Illuminate\Contracts\Queue\QueueableCollection' => $strauss_src . '/illuminate/contracts/Queue/QueueableCollection.php',
     170   'SolidWP\Performance\Illuminate\Contracts\Queue\Job' => $strauss_src . '/illuminate/contracts/Queue/Job.php',
     171   'SolidWP\Performance\Illuminate\Contracts\Queue\QueueableEntity' => $strauss_src . '/illuminate/contracts/Queue/QueueableEntity.php',
     172   'SolidWP\Performance\Illuminate\Contracts\Queue\ShouldQueue' => $strauss_src . '/illuminate/contracts/Queue/ShouldQueue.php',
     173   'SolidWP\Performance\Illuminate\Contracts\Queue\Queue' => $strauss_src . '/illuminate/contracts/Queue/Queue.php',
     174   'SolidWP\Performance\Illuminate\Contracts\Queue\ShouldBeUniqueUntilProcessing' => $strauss_src . '/illuminate/contracts/Queue/ShouldBeUniqueUntilProcessing.php',
     175   'SolidWP\Performance\Illuminate\Contracts\Queue\Factory' => $strauss_src . '/illuminate/contracts/Queue/Factory.php',
     176   'SolidWP\Performance\Illuminate\Contracts\Queue\ShouldBeEncrypted' => $strauss_src . '/illuminate/contracts/Queue/ShouldBeEncrypted.php',
     177   'SolidWP\Performance\Illuminate\Contracts\Queue\ShouldBeUnique' => $strauss_src . '/illuminate/contracts/Queue/ShouldBeUnique.php',
     178   'SolidWP\Performance\Illuminate\Contracts\Queue\ClearableQueue' => $strauss_src . '/illuminate/contracts/Queue/ClearableQueue.php',
     179   'SolidWP\Performance\Illuminate\Contracts\Queue\EntityResolver' => $strauss_src . '/illuminate/contracts/Queue/EntityResolver.php',
     180   'SolidWP\Performance\Illuminate\Contracts\Queue\Monitor' => $strauss_src . '/illuminate/contracts/Queue/Monitor.php',
     181   'SolidWP\Performance\Illuminate\Contracts\Queue\EntityNotFoundException' => $strauss_src . '/illuminate/contracts/Queue/EntityNotFoundException.php',
     182   'SolidWP\Performance\Illuminate\Contracts\Debug\ExceptionHandler' => $strauss_src . '/illuminate/contracts/Debug/ExceptionHandler.php',
     183   'SolidWP\Performance\Illuminate\Support\Enumerable' => $strauss_src . '/illuminate/collections/Enumerable.php',
     184   'SolidWP\Performance\Illuminate\Support\Collection' => $strauss_src . '/illuminate/collections/Collection.php',
     185   'SolidWP\Performance\Illuminate\Support\Arr' => $strauss_src . '/illuminate/collections/Arr.php',
     186   'SolidWP\Performance\Illuminate\Support\LazyCollection' => $strauss_src . '/illuminate/collections/LazyCollection.php',
     187   'SolidWP\Performance\Illuminate\Support\Traits\EnumeratesValues' => $strauss_src . '/illuminate/collections/Traits/EnumeratesValues.php',
     188   'SolidWP\Performance\Illuminate\Support\HigherOrderWhenProxy' => $strauss_src . '/illuminate/collections/HigherOrderWhenProxy.php',
     189   'SolidWP\Performance\Illuminate\Support\MultipleItemsFoundException' => $strauss_src . '/illuminate/collections/MultipleItemsFoundException.php',
     190   'SolidWP\Performance\Illuminate\Support\HigherOrderCollectionProxy' => $strauss_src . '/illuminate/collections/HigherOrderCollectionProxy.php',
     191   'SolidWP\Performance\Illuminate\Support\ItemNotFoundException' => $strauss_src . '/illuminate/collections/ItemNotFoundException.php',
     192   'SolidWP\Performance\Illuminate\Support\Traits\Macroable' => $strauss_src . '/illuminate/macroable/Traits/Macroable.php',
     193   'SolidWP\Performance\Psr\Container\NotFoundExceptionInterface' => $strauss_src . '/psr/container/src/NotFoundExceptionInterface.php',
     194   'SolidWP\Performance\Psr\Container\ContainerInterface' => $strauss_src . '/psr/container/src/ContainerInterface.php',
     195   'SolidWP\Performance\Psr\Container\ContainerExceptionInterface' => $strauss_src . '/psr/container/src/ContainerExceptionInterface.php',
     196   'SolidWP\Performance\Psr\SimpleCache\CacheInterface' => $strauss_src . '/psr/simple-cache/src/CacheInterface.php',
     197   'SolidWP\Performance\Psr\SimpleCache\CacheException' => $strauss_src . '/psr/simple-cache/src/CacheException.php',
     198   'SolidWP\Performance\Psr\SimpleCache\InvalidArgumentException' => $strauss_src . '/psr/simple-cache/src/InvalidArgumentException.php',
    199199);
  • solid-performance/trunk/readme.txt

    r3153468 r3166054  
    55Requires at least: 6.4
    66Tested up to: 6.6
    7 Stable tag: 1.2.0
     7Stable tag: 1.3.0
    88Requires PHP: 7.4
    99License: GPLv2 or later
     
    8989== Changelog ==
    9090
     91= 1.3.0 =
     92
     93#### Enhancements
     94
     95* Added a new HTML comment, "Cached page generated by Solid Performance on $date" to indicate caching is active when debug mode is disabled.
     96* Introduced the `X-Cached-By: Solid Performance` header to clearly identify cached responses in browser dev tools.
     97* Implemented intelligent cache purging that clears related pages when a post is changed, including home pages, taxonomy, author, and date archives, and their paginated counterparts.
     98* Improved overall code structure and performance for better efficiency and maintainability.
     99
     100#### Bug fixes
     101
     102* Fixed an issue where using the "Exclude from Page Cache" meta option would not immediately purge the post from the cache.
     103
    91104= 1.2.0 =
    92105
  • solid-performance/trunk/solid-performance.php

    r3153468 r3166054  
    55 * Author: SolidWP
    66 * Author URI: https://go.solidwp.com/performance-author
    7  * Version: 1.2.0
     7 * Version: 1.3.0
    88 * Text Domain: solid-performance
    99 * Domain Path: /lang
  • solid-performance/trunk/src/Performance/Admin/Post_Cache_Exclusion.php

    r3134501 r3166054  
    88 */
    99
     10declare( strict_types=1 );
     11
    1012namespace SolidWP\Performance\Admin;
     13
     14use WP_Post;
    1115
    1216/**
     
    1721 * @package SolidWP\Performance
    1822 */
    19 class Post_Cache_Exclusion {
     23final class Post_Cache_Exclusion {
    2024
    2125    public const META_KEY = '_swpsp_post_exclude';
    2226
    2327    /**
    24      * Holds ignore post types.
    25      *
    26      * @var values of all the post types.
    27      */
    28     protected static $public_ignore_post_types = null;
    29     /**
    30      * Holds post types.
    31      *
    32      * @var values of all the post types.
    33      */
    34     protected static $post_types_objects = null;
    35 
    36     /**
    37      * Adds a new menu item as a settings submenu.
     28     * An array of post type names to ignore, indexed by their post type name.
     29     *
     30     * @var array<string, bool>
     31     */
     32    private array $post_types_to_ignore;
     33
     34    /**
     35     * @var string[]
     36     */
     37    private array $post_types;
     38
     39    /**
     40     * @param  string[] $post_types  The available public post type objects.
     41     * @param  string[] $post_types_to_ignore  Exclude the meta box from these post types.
     42     */
     43    public function __construct( array $post_types, array $post_types_to_ignore ) {
     44        $this->post_types           = $post_types;
     45        $this->post_types_to_ignore = array_fill_keys( array_values( $post_types_to_ignore ), true );
     46    }
     47
     48    /**
     49     * Registers a meta key for posts.
     50     *
     51     * @action init
    3852     *
    3953     * @since 0.1.1
    4054     *
    41      * @action admin_menu
    42      *
    4355     * @return void
    4456     */
    45     public function register_meta(): void {
     57    public static function register_meta(): void {
    4658        register_post_meta(
    4759            '', // Pass an empty string to register the meta key across all existing post types.
     
    5365                'description'       => __( 'Exclude this post from the page cache.', 'solid-performance' ),
    5466                'sanitize_callback' => 'rest_sanitize_boolean',
    55                 'auth_callback'     => function () {
    56                     return current_user_can( 'edit_posts' );
    57                 },
     67                'auth_callback'     => static fn(): bool => current_user_can( 'edit_posts' ),
    5868            ]
    5969        );
    6070    }
    61     /**
    62      * Get array of post types we want to exclude from use in non public areas.
    63      *
    64      * @return array of post types.
    65      */
    66     public static function get_public_post_types_to_ignore() {
    67         if ( is_null( self::$public_ignore_post_types ) ) {
    68             $public_ignore_post_types = [
    69                 'elementor_library', // Elementor.
    70                 'fl-theme-layout', // Beaver Builder.
    71                 'shop_order', // WooCommerce.
    72                 'kadence_element', // Kadence.
    73                 'kadence_conversions', // Kadence.
    74                 'kadence_wootemplate', // Kadence.
    75                 'ele-product-template', // Kadence.
    76                 'ele-p-arch-template', // Kadence.
    77                 'ele-p-loop-template', // Kadence.
    78                 'ele-check-template', // Kadence.
    79                 'kt_size_chart', // Kadence.
    80                 'kt_cart_notice', // Kadence.
    81                 'kt_reviews', // Kadence.
    82                 'kt_product_tabs', // Kadence.
    83                 'jet-menu', // Jet.
    84                 'jet-popup', // Jet.
    85                 'jet-smart-filters', // Jet.
    86                 'jet-theme-core', // Jet.
    87                 'jet-woo-builder', // Jet.
    88                 'jet-engine', // Jet.
    89                 'llms_certificate', // LifterLMS.
    90                 'llms_my_certificate', // LifterLMS.
    91                 'sfwd-certificates', // LearnDash.
    92                 'sfwd-transactions', // LearnDash.
    93                 'reply',
    94             ];
    95             // Filter the post types to ignore.
    96             self::$public_ignore_post_types = apply_filters( 'solidwp/performance/public_post_type_ignore_array', $public_ignore_post_types );
    97         }
    98 
    99         return self::$public_ignore_post_types;
    100     }
    101     /**
    102      * Get all public post types.
    103      *
    104      * @return array of post types.
    105      */
    106     public static function get_post_types_objects() {
    107         if ( is_null( self::$post_types_objects ) ) {
    108             $args       = [
    109                 'public'   => true,
    110                 '_builtin' => false,
    111             ];
    112             $output     = 'objects'; // names or objects, note names is the default.
    113             $operator   = 'and';
    114             $post_types = get_post_types( $args, $output, $operator );
    115             // Filter the post types to ignore.
    116             self::$post_types_objects = apply_filters( 'solidwp/performance/public_post_type_objects', $post_types );
    117         }
    118 
    119         return self::$post_types_objects;
    120     }
     71
    12172    /**
    12273     * Get the asset file produced by wp scripts.
    12374     *
    12475     * @param string $filepath the file path.
     76     *
    12577     * @return array
    12678     */
    127     public function get_asset_file( $filepath ) {
     79    public function get_asset_file( string $filepath ): array {
    12880        $plugin_path = realpath( plugin_dir_path( SWPSP_PLUGIN_FILE ) ) . DIRECTORY_SEPARATOR;
    12981        $asset_path  = $plugin_path . $filepath . '.asset.php';
     
    13587            ];
    13688    }
    137     /**
    138      * Enqueue Script for Meta options
    139      */
    140     public function script_enqueue() {
     89
     90    /**
     91     * Enqueue Script for Meta options.
     92     *
     93     * @action enqueue_block_editor_assets
     94     */
     95    public function script_enqueue(): void {
    14196        global $pagenow;
     97
    14298        if ( $pagenow === 'widgets.php' ) {
    14399            return;
    144100        }
     101
    145102        if ( is_customize_preview() ) {
    146103            return;
    147104        }
    148         $post_type        = get_post_type();
    149         $post_type_object = get_post_type_object( get_post_type() );
    150         if ( is_object( $post_type_object ) ) {
    151             $post_type_name = $post_type_object->labels->singular_name;
    152         } else {
    153             $post_type_name = $post_type;
    154         }
    155         $ignore_type = $this->get_public_post_types_to_ignore();
    156         if ( in_array( $post_type, $ignore_type, true ) ) {
    157             return;
    158         }
     105
     106        if ( isset( $this->post_types_to_ignore[ get_post_type() ] ) ) {
     107            return;
     108        }
     109
    159110        // Enqueue the meta page scripts.
    160111        wp_enqueue_script( 'solid-performance-meta' );
    161112    }
    162     /**
    163      * Register Script for Meta options
    164      */
    165     public function register_meta_script() {
     113
     114    /**
     115     * Register Script for Meta options.
     116     *
     117     * @action admin_init
     118     */
     119    public function register_meta_script(): void {
    166120        $script_meta = $this->get_asset_file( 'build/meta' );
    167121        $url_path    = trailingslashit( plugin_dir_url( SWPSP_PLUGIN_FILE ) );
     
    171125
    172126    /**
    173      * Load the classic editor meta box.
    174      *
    175      * @since 0.1.1
    176      *
    177      * @return void
    178      */
    179     public function load_classic(): void {
    180         add_action( 'load-post.php', [ $this, 'init_metabox' ] );
    181         add_action( 'load-post-new.php', [ $this, 'init_metabox' ] );
    182     }
    183     /**
    184      * Classic Meta box initialization.
    185      */
    186     public function init_metabox() {
    187         add_action( 'add_meta_boxes', [ $this, 'add_metabox' ] );
    188         add_action( 'save_post', [ $this, 'save_metabox' ], 10, 2 );
    189     }
    190     /**
    191127     * Adds the meta box.
    192      */
    193     public function add_metabox() {
    194         $all_post_types    = $this->get_post_types_objects();
    195         $extras_post_types = [ 'post', 'page' ];
    196         $ignore_type       = $this->get_public_post_types_to_ignore();
    197         foreach ( $all_post_types as $post_type_item ) {
    198             $post_type_name = $post_type_item->name;
    199             if ( ! in_array( $post_type_name, $ignore_type, true ) ) {
    200                 $extras_post_types[] = $post_type_name;
     128     *
     129     * @action load-post.php
     130     * @action load-post-new.php
     131     * @action add_meta_boxes
     132     */
     133    public function add_metabox(): void {
     134        $post_types = [];
     135
     136        foreach ( $this->post_types as $post_type ) {
     137            // Skip ignored post types.
     138            if ( isset( $this->post_types_to_ignore[ $post_type ] ) ) {
     139                continue;
    201140            }
    202         }
     141
     142            $post_types[] = $post_type;
     143        }
     144
     145        if ( ! $post_types ) {
     146            return;
     147        }
     148
    203149        add_meta_box(
    204150            '_swpsp_classic_post_exclude',
    205151            __( 'Cache Exclusion', 'solid-performance' ),
    206152            [ $this, 'render_metabox' ],
    207             apply_filters( 'solidwp/performance/classic_meta_box_post_types', $extras_post_types ),
     153            apply_filters( 'solidwp/performance/classic_meta_box_post_types', $post_types ),
    208154            'side',
    209155            'low',
     
    213159        );
    214160    }
     161
    215162    /**
    216163     * Renders the meta box.
    217164     *
    218      * @param object $post the post object.
    219      */
    220     public function render_metabox( $post ) {
     165     * @param WP_Post $post the post object.
     166     */
     167    public function render_metabox( WP_Post $post ): void {
    221168        // Add nonce for security and authentication.
    222169        wp_nonce_field( 'swpsp_classic_meta_nonce_action', 'swpsp_classic_meta_nonce' );
     
    234181        <?php
    235182    }
     183
    236184    /**
    237185     * Saves the meta box data.
    238186     *
     187     * @action save_post
     188     * @action load-post.php
     189     * @action load-post-new.php
     190     *
    239191     * @param int $post_id the post ID.
    240      */
    241     public function save_metabox( $post_id ) {
     192     *
     193     * @return void
     194     */
     195    public function save_metabox( int $post_id ): void {
    242196        // Check if our nonce is set.
    243197        if ( ! isset( $_POST['swpsp_classic_meta_nonce'] ) ) {
    244             return $post_id;
    245         }
     198            return;
     199        }
     200
    246201        $nonce = sanitize_text_field( wp_unslash( $_POST['swpsp_classic_meta_nonce'] ) );
     202
    247203        // Add nonce for security and authentication.
    248204        if ( ! wp_verify_nonce( $nonce, 'swpsp_classic_meta_nonce_action' ) ) {
    249             return $post_id;
    250         }
     205            return;
     206        }
     207
    251208        // Check if the current user has permission to edit the post.
    252209        if ( ! current_user_can( 'edit_post', $post_id ) ) {
    253             return $post_id;
    254         }
     210            return;
     211        }
     212
    255213        // Check if not an autosave.
    256214        if ( wp_is_post_autosave( $post_id ) ) {
    257             return $post_id;
     215            return;
    258216        }
    259217
    260218        // Check if not a revision.
    261219        if ( wp_is_post_revision( $post_id ) ) {
    262             return $post_id;
    263         }
     220            return;
     221        }
     222
    264223        // Update the meta field in the database.
    265         $meta_value = isset( $_POST[ self::META_KEY ] ) && $_POST[ self::META_KEY ] == 1 ? 1 : 0;
     224        $meta_value = (int) isset( $_POST[ self::META_KEY ] );
    266225        update_post_meta( $post_id, self::META_KEY, $meta_value );
    267226    }
  • solid-performance/trunk/src/Performance/Admin/Provider.php

    r3146066 r3166054  
    2525class Provider extends Service_Provider {
    2626
     27    public const PUBLIC_POST_TYPES = 'solidwp.performance.admin.public_post_types';
     28
    2729    /**
    2830     * {@inheritdoc}
     
    3840        add_action( 'rest_api_init', $this->container->callback( Settings_Page::class, 'register_settings' ) );
    3941        add_action( 'plugin_action_links_' . plugin_basename( SWPSP_PLUGIN_FILE ), $this->container->callback( Settings_Page::class, 'settings_link' ), 10 );
    40         add_filter( 'init', $this->container->callback( Post_Cache_Exclusion::class, 'register_meta' ), 20 );
    41         add_action( 'admin_init', $this->container->callback( Post_Cache_Exclusion::class, 'register_meta_script' ) );
    42         add_action( 'admin_init', $this->container->callback( Post_Cache_Exclusion::class, 'load_classic' ) );
    43         add_action( 'enqueue_block_editor_assets', $this->container->callback( Post_Cache_Exclusion::class, 'script_enqueue' ) );
    4442
    45         $this->register_option_purger();
     43        $this->register_page_cache_exclusion();
    4644    }
    4745
    4846    /**
    49      * Configure the Option Purger with the different WP option names can trigger a cache flush.
     47     * Registers the page cache exclusion meta box.
    5048     *
    5149     * @return void
    5250     */
    53     private function register_option_purger(): void {
    54         $this->container->singleton( Option_Purger::class, Option_Purger::class );
    55         $this->container->when( Option_Purger::class )
    56                         ->needs( '$option_names' )
    57                         ->give(
    58                             // Different WP option names that will force a cache flush.
    59                             static fn(): array => array_fill_keys(
    60                                 [
    61                                     // options-general.php.
    62                                     'blogname',
    63                                     'blogdescription',
    64                                     'site_icon',
    65                                     'WPLANG',
    66                                     'timezone_string',
    67                                     'gmt_offset',
    68                                     'date_format',
    69                                     'time_format',
    70                                     'start_of_week',
     51    private function register_page_cache_exclusion(): void {
     52        // Exclude the meta box from these post types.
     53        $post_types_to_ignore = (array) apply_filters(
     54            'solidwp/performance/public_post_type_ignore_array',
     55            [
     56                // Elementor.
     57                'elementor_library',
     58                // Beaver Builder.
     59                'fl-theme-layout',
     60                // WooCommerce.
     61                'shop_order',
     62                // Kadence.
     63                'kadence_element',
     64                'kadence_conversions',
     65                'kadence_wootemplate',
     66                'ele-product-template',
     67                'ele-p-arch-template',
     68                'ele-p-loop-template',
     69                'ele-check-template',
     70                'kt_size_chart',
     71                'kt_cart_notice',
     72                'kt_reviews',
     73                'kt_product_tabs',
     74                // Jet.
     75                'jet-menu',
     76                'jet-popup',
     77                'jet-smart-filters',
     78                'jet-theme-core',
     79                'jet-woo-builder',
     80                'jet-engine',
     81                // LifterLMS.
     82                'llms_certificate',
     83                'llms_my_certificate',
     84                // LearnDash.
     85                'sfwd-certificates',
     86                'sfwd-transactions',
     87                'reply',
     88            ]
     89        );
    7190
    72                                     // options-reading.php.
    73                                     'page_for_posts',
    74                                     'page_on_front',
    75                                     'posts_per_page',
    76                                     'blog_public',
     91        $this->container->when( Post_Cache_Exclusion::class )
     92                        ->needs( '$post_types_to_ignore' )
     93                        ->give( $post_types_to_ignore );
    7794
    78                                     // options-discussion.php.
    79                                     'require_name_email',
    80                                     'comment_registration',
    81                                     'close_comments_for_old_posts',
    82                                     'show_comments_cookies_opt_in',
    83                                     'thread_comments',
    84                                     'thread_comments_depth',
    85                                     'page_comments',
    86                                     'comments_per_page',
    87                                     'default_comments_page',
    88                                     'comment_order',
    89                                     'show_avatars',
    90                                     'avatar_rating',
    91                                     'avatar_default',
     95        // Get all public, non-built in post types and manually add post+page.
     96        $this->container->singleton(
     97            self::PUBLIC_POST_TYPES,
     98            static fn() => (array) apply_filters(
     99                'solidwp/performance/public_post_type_objects',
     100                array_merge(
     101                    get_post_types(
     102                        [
     103                            'public'   => true,
     104                            '_builtin' => false,
     105                        ],
     106                    ),
     107                    [ 'post', 'page' ]
     108                )
     109            )
     110        );
    92111
    93                                     // options-permalink.php.
    94                                     'permalink_structure',
    95                                     'category_base',
    96                                     'tag_base',
     112        $this->container->when( Post_Cache_Exclusion::class )
     113                        ->needs( '$post_types' )
     114                        ->give( $this->container->get( self::PUBLIC_POST_TYPES ) );
    97115
    98                                     // Appearance: themes.php.
    99                                     'template',
    100                                     'stylesheet',
    101                                 ],
    102                                 true
    103                             )
    104                         );
     116        $this->container->singleton( Post_Cache_Exclusion::class, Post_Cache_Exclusion::class );
    105117
    106         add_action( 'updated_option', $this->container->callback( Option_Purger::class, 'collect' ), 10, 3 );
     118        add_action(
     119            'init',
     120            static function (): void {
     121                Post_Cache_Exclusion::register_meta();
     122            },
     123            20
     124        );
     125        add_action( 'admin_init', $this->container->callback( Post_Cache_Exclusion::class, 'register_meta_script' ) );
     126        add_action( 'enqueue_block_editor_assets', $this->container->callback( Post_Cache_Exclusion::class, 'script_enqueue' ) );
     127
     128        // Classic Editor meta box.
     129        foreach ( [ 'load-post.php', 'load-post-new.php' ] as $action ) {
     130            add_action(
     131                $action,
     132                function () {
     133                    add_action( 'add_meta_boxes', $this->container->callback( Post_Cache_Exclusion::class, 'add_metabox' ) );
     134                    add_action( 'save_post', $this->container->callback( Post_Cache_Exclusion::class, 'save_metabox' ), 10, 1 );
     135                }
     136            );
     137        }
    107138    }
    108139}
  • solid-performance/trunk/src/Performance/Admin/Purge_Listener.php

    r3146066 r3166054  
    1212namespace SolidWP\Performance\Admin;
    1313
    14 use SolidWP\Performance\Page_Cache\Purge;
     14use SolidWP\Performance\Page_Cache\Purge\Batch\Batch_Purger;
     15use SolidWP\Performance\Page_Cache\Purge\Batch\Permalink;
    1516use SolidWP\Performance\StellarWP\SuperGlobals\SuperGlobals;
    16 use Throwable;
    1717
    1818if ( ! defined( 'ABSPATH' ) ) {
     
    3030
    3131    /**
    32      * @var Purge
     32     * @var Batch_Purger
    3333     */
    34     private Purge $purge;
     34    private Batch_Purger $batch_purger;
    3535
    3636    /**
    37      * @param  Purge $purge The cache purger.
     37     * @param  Batch_Purger $batch_purger  The batch purger.
    3838     */
    39     public function __construct( Purge $purge ) {
    40         $this->purge = $purge;
     39    public function __construct( Batch_Purger $batch_purger ) {
     40        $this->batch_purger = $batch_purger;
    4141    }
    4242
     
    6868
    6969        // Purge all cached pages.
    70         $this->purge->all_pages();
     70        $this->batch_purger->queue_purge_all();
    7171
    7272        $this->redirect();
    7373    }
    74 
    7574
    7675    /**
     
    115114        }
    116115
    117         try {
    118             $this->purge->page( $uri );
    119         } catch ( Throwable $e ) {
    120             $this->redirect();
    121         }
     116        $this->batch_purger->queue(
     117            Permalink::from(
     118                [
     119                    'permalink' => $uri,
     120                ]
     121            )
     122        );
    122123
    123124        $this->redirect();
  • solid-performance/trunk/src/Performance/Config/Config.php

    r3153468 r3166054  
    118118     *
    119119     * @action shutdown
     120     * @action solidwp/performance/terminate
    120121     *
    121122     * @return void
  • solid-performance/trunk/src/Performance/Core.php

    r3153468 r3166054  
    7676    private array $providers = [
    7777        Assets\Provider::class,
     78        Page_Cache\Purge\Provider::class,
    7879        Admin\Provider::class,
    7980        API\Provider::class,
  • solid-performance/trunk/src/Performance/Page_Cache.php

    r3153468 r3166054  
    1313use SolidWP\Performance\Config\Config;
    1414use SolidWP\Performance\Config\WP_Config;
    15 use SolidWP\Performance\Page_Cache\Purge;
     15use SolidWP\Performance\Page_Cache\Purge\Purge;
    1616
    1717if ( ! defined( 'ABSPATH' ) ) {
  • solid-performance/trunk/src/Performance/Page_Cache/Cache.php

    r3153468 r3166054  
    151151
    152152        header( sprintf( 'X-Cache-Age: %d', time() - $mod_time ) );
     153        header( 'X-Cached-By: Solid Performance' );
    153154
    154155        if ( $modified_since && strtotime( $modified_since ) === $mod_time ) {
  • solid-performance/trunk/src/Performance/Page_Cache/Cache_Handler.php

    r3153468 r3166054  
    8787        $output .= $this->debug->get_debug_comment( $this->request, $this->compressor );
    8888
     89        // Append HTML generated by comment if debugging is DISABLED.
     90        $output .= $this->debug->get_generated_by_comment();
     91
    8992        // Don't save any fails that failed to compress their content.
    9093        try {
  • solid-performance/trunk/src/Performance/Page_Cache/Cache_Path.php

    r3153468 r3166054  
    5656
    5757    /**
     58     * Get the host site cache directory.
     59     *
     60     * @example /app/wp-content/cache/page/www.wordpress.test
     61     *
     62     * @return string
     63     */
     64    public function get_site_cache_dir(): string {
     65        $path      = $this->get_page_cache_dir();
     66        $site_host = wp_parse_url( get_site_url(), PHP_URL_HOST );
     67
     68
     69        return $path . DIRECTORY_SEPARATOR . $site_host;
     70    }
     71
     72    /**
    5873     * Converts a URL into a directory structure.
    5974     *
  • solid-performance/trunk/src/Performance/Page_Cache/Debug.php

    r3153468 r3166054  
    131131        return '';
    132132    }
     133
     134    /**
     135     * Get the generated comment, shown on cached pages when debugging is DISABLED.
     136     *
     137     * @return string
     138     */
     139    public function get_generated_by_comment(): string {
     140        if ( $this->config->get( 'page_cache.debug' ) ) {
     141            return '';
     142        }
     143
     144        $date_time = ( new DateTime() )->format( 'Y-m-d h:i:s' );
     145
     146        return sprintf(
     147            '
     148<!-- Cached page generated by Solid Performance on %s -->',
     149            esc_html( $date_time )
     150        );
     151    }
    133152}
  • solid-performance/trunk/src/Performance/Shutdown/Provider.php

    r3153468 r3166054  
    1010namespace SolidWP\Performance\Shutdown;
    1111
    12 use SolidWP\Performance\Admin\Option_Purger;
    1312use SolidWP\Performance\Config\Config;
    1413use SolidWP\Performance\Contracts\Service_Provider;
     14use SolidWP\Performance\Page_Cache\Purge\Batch\Batch_Purger;
    1515use SolidWP\Performance\Update\Updater;
    1616
     
    3535                // Add any terminable tasks to the collection to run on shutdown.
    3636                // Important: these will run in the order provided.
    37                 $this->container->get( Option_Purger::class ),
    3837                $this->container->get( Config::class ),
    3938                $this->container->get( Updater::class ),
     39                $this->container->get( Batch_Purger::class ),
    4040            )
    4141        );
    4242
     43        // Create an action that can be called manually.
     44        add_action( 'solidwp/performance/terminate', $this->container->callback( Shutdown_Handler::class, 'handle' ) );
     45
    4346        // Run early to get ahead of any potentially bad code that could kill execution.
    44         add_action( 'shutdown', $this->container->callback( Shutdown_Handler::class, 'handle' ), 1 );
     47        add_action(
     48            'shutdown',
     49            static function (): void {
     50                do_action( 'solidwp/performance/terminate' );
     51            },
     52            1
     53        );
    4554
    4655        // Run this again in case any other code was updated in the shutdown action that could trigger our Terminable tasks.
    47         add_action( 'shutdown', $this->container->callback( Shutdown_Handler::class, 'handle' ), 9999 );
     56        add_action(
     57            'shutdown',
     58            static function (): void {
     59                do_action( 'solidwp/performance/terminate' );
     60            },
     61            9999
     62        );
    4863    }
    4964}
  • solid-performance/trunk/src/Performance/Update/Updater.php

    r3153468 r3166054  
    102102     *
    103103     * @action shutdown
     104     * @action solidwp/performance/terminate
    104105     *
    105106     * @return void
  • solid-performance/trunk/vendor/composer/installed.php

    r3153468 r3166054  
    22    'root' => array(
    33        'name' => 'ithemes/solid-performance',
    4         'pretty_version' => '1.2.0',
    5         'version' => '1.2.0.0',
    6         'reference' => 'b44a858f15ef2dd3b9cd7db5d04ad78c64134a37',
     4        'pretty_version' => '1.3.0',
     5        'version' => '1.3.0.0',
     6        'reference' => 'f0e52a7c692edece7ac88beb7fb5f194968d87de',
    77        'type' => 'wordpress-plugin',
    88        'install_path' => __DIR__ . '/../../',
     
    4848        ),
    4949        'ithemes/solid-performance' => array(
    50             'pretty_version' => '1.2.0',
    51             'version' => '1.2.0.0',
    52             'reference' => 'b44a858f15ef2dd3b9cd7db5d04ad78c64134a37',
     50            'pretty_version' => '1.3.0',
     51            'version' => '1.3.0.0',
     52            'reference' => 'f0e52a7c692edece7ac88beb7fb5f194968d87de',
    5353            'type' => 'wordpress-plugin',
    5454            'install_path' => __DIR__ . '/../../',
  • solid-performance/trunk/vendor/vendor-prefixed/autoload-classmap.php

    r3153468 r3166054  
    77return array(
    88   'SolidWP\Performance\Rogervila\ArrayDiffMultidimensional' => $strauss_src . '/rogervila/array-diff-multidimensional/src/ArrayDiffMultidimensional.php',
    9    'SolidWP\Performance\Psr\SimpleCache\CacheException' => $strauss_src . '/psr/simple-cache/src/CacheException.php',
    10    'SolidWP\Performance\Psr\SimpleCache\CacheInterface' => $strauss_src . '/psr/simple-cache/src/CacheInterface.php',
    11    'SolidWP\Performance\Psr\SimpleCache\InvalidArgumentException' => $strauss_src . '/psr/simple-cache/src/InvalidArgumentException.php',
    12    'SolidWP\Performance\Psr\Container\ContainerInterface' => $strauss_src . '/psr/container/src/ContainerInterface.php',
    13    'SolidWP\Performance\Psr\Container\NotFoundExceptionInterface' => $strauss_src . '/psr/container/src/NotFoundExceptionInterface.php',
    14    'SolidWP\Performance\Psr\Container\ContainerExceptionInterface' => $strauss_src . '/psr/container/src/ContainerExceptionInterface.php',
     9   'SolidWP\Performance\Flintstone\Flintstone' => $strauss_src . '/fire015/flintstone/src/Flintstone.php',
     10   'SolidWP\Performance\Flintstone\Database' => $strauss_src . '/fire015/flintstone/src/Database.php',
     11   'SolidWP\Performance\Flintstone\Formatter\JsonFormatter' => $strauss_src . '/fire015/flintstone/src/Formatter/JsonFormatter.php',
     12   'SolidWP\Performance\Flintstone\Formatter\FormatterInterface' => $strauss_src . '/fire015/flintstone/src/Formatter/FormatterInterface.php',
     13   'SolidWP\Performance\Flintstone\Formatter\SerializeFormatter' => $strauss_src . '/fire015/flintstone/src/Formatter/SerializeFormatter.php',
     14   'SolidWP\Performance\Flintstone\Config' => $strauss_src . '/fire015/flintstone/src/Config.php',
     15   'SolidWP\Performance\Flintstone\Exception' => $strauss_src . '/fire015/flintstone/src/Exception.php',
     16   'SolidWP\Performance\Flintstone\Cache\CacheInterface' => $strauss_src . '/fire015/flintstone/src/Cache/CacheInterface.php',
     17   'SolidWP\Performance\Flintstone\Cache\ArrayCache' => $strauss_src . '/fire015/flintstone/src/Cache/ArrayCache.php',
     18   'SolidWP\Performance\Flintstone\Line' => $strauss_src . '/fire015/flintstone/src/Line.php',
     19   'SolidWP\Performance\Flintstone\Validation' => $strauss_src . '/fire015/flintstone/src/Validation.php',
    1520   'SolidWP_Performance_WPConfigTransformer' => $strauss_src . '/wp-cli/wp-config-transformer/src/WPConfigTransformer.php',
     21   'SolidWP\Performance\lucatume\DI52\ServiceProvider' => $strauss_src . '/lucatume/di52/src/ServiceProvider.php',
     22   'SolidWP\Performance\lucatume\DI52\App' => $strauss_src . '/lucatume/di52/src/App.php',
     23   'SolidWP\Performance\lucatume\DI52\Builders\ValueBuilder' => $strauss_src . '/lucatume/di52/src/Builders/ValueBuilder.php',
     24   'SolidWP\Performance\lucatume\DI52\Builders\ClosureBuilder' => $strauss_src . '/lucatume/di52/src/Builders/ClosureBuilder.php',
     25   'SolidWP\Performance\lucatume\DI52\Builders\Parameter' => $strauss_src . '/lucatume/di52/src/Builders/Parameter.php',
     26   'SolidWP\Performance\lucatume\DI52\Builders\ClassBuilder' => $strauss_src . '/lucatume/di52/src/Builders/ClassBuilder.php',
     27   'SolidWP\Performance\lucatume\DI52\Builders\Factory' => $strauss_src . '/lucatume/di52/src/Builders/Factory.php',
     28   'SolidWP\Performance\lucatume\DI52\Builders\Resolver' => $strauss_src . '/lucatume/di52/src/Builders/Resolver.php',
     29   'SolidWP\Performance\lucatume\DI52\Builders\ReinitializableBuilderInterface' => $strauss_src . '/lucatume/di52/src/Builders/ReinitializableBuilderInterface.php',
     30   'SolidWP\Performance\lucatume\DI52\Builders\BuilderInterface' => $strauss_src . '/lucatume/di52/src/Builders/BuilderInterface.php',
     31   'SolidWP\Performance\lucatume\DI52\Builders\CallableBuilder' => $strauss_src . '/lucatume/di52/src/Builders/CallableBuilder.php',
     32   'SolidWP\Performance\lucatume\DI52\NestedParseError' => $strauss_src . '/lucatume/di52/src/NestedParseError.php',
     33   'SolidWP\Performance\lucatume\DI52\NotFoundException' => $strauss_src . '/lucatume/di52/src/NotFoundException.php',
     34   'SolidWP\Performance\lucatume\DI52\Container' => $strauss_src . '/lucatume/di52/src/Container.php',
     35   'SolidWP\Performance\lucatume\DI52\ContainerException' => $strauss_src . '/lucatume/di52/src/ContainerException.php',
     36   'SolidWP\Performance\StellarWP\SuperGlobals\SuperGlobals' => $strauss_src . '/stellarwp/superglobals/src/SuperGlobals/SuperGlobals.php',
     37   'SolidWP\Performance\StellarWP\Telemetry\Exit_Interview\Exit_Interview_Subscriber' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Exit_Interview/Exit_Interview_Subscriber.php',
     38   'SolidWP\Performance\StellarWP\Telemetry\Exit_Interview\Template' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Exit_Interview/Template.php',
     39   'SolidWP\Performance\StellarWP\Telemetry\Uninstall' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Uninstall.php',
     40   'SolidWP\Performance\StellarWP\Telemetry\Telemetry\Telemetry_Subscriber' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Telemetry/Telemetry_Subscriber.php',
     41   'SolidWP\Performance\StellarWP\Telemetry\Telemetry\Telemetry' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Telemetry/Telemetry.php',
     42   'SolidWP\Performance\StellarWP\Telemetry\Last_Send\Last_Send_Subscriber' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Last_Send/Last_Send_Subscriber.php',
     43   'SolidWP\Performance\StellarWP\Telemetry\Last_Send\Last_Send' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Last_Send/Last_Send.php',
     44   'SolidWP\Performance\StellarWP\Telemetry\Opt_In\Status' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Opt_In/Status.php',
     45   'SolidWP\Performance\StellarWP\Telemetry\Opt_In\Opt_In_Subscriber' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Opt_In/Opt_In_Subscriber.php',
     46   'SolidWP\Performance\StellarWP\Telemetry\Opt_In\Opt_In_Template' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Opt_In/Opt_In_Template.php',
     47   'SolidWP\Performance\StellarWP\Telemetry\Contracts\Template_Interface' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Contracts/Template_Interface.php',
     48   'SolidWP\Performance\StellarWP\Telemetry\Contracts\Subscriber_Interface' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Contracts/Subscriber_Interface.php',
     49   'SolidWP\Performance\StellarWP\Telemetry\Contracts\Runnable' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Contracts/Runnable.php',
     50   'SolidWP\Performance\StellarWP\Telemetry\Contracts\Abstract_Subscriber' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Contracts/Abstract_Subscriber.php',
     51   'SolidWP\Performance\StellarWP\Telemetry\Contracts\Data_Provider' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Contracts/Data_Provider.php',
     52   'SolidWP\Performance\StellarWP\Telemetry\Config' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Config.php',
    1653   'SolidWP\Performance\StellarWP\Telemetry\Admin\Admin_Subscriber' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Admin/Admin_Subscriber.php',
    1754   'SolidWP\Performance\StellarWP\Telemetry\Admin\Resources' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Admin/Resources.php',
    18    'SolidWP\Performance\StellarWP\Telemetry\Last_Send\Last_Send_Subscriber' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Last_Send/Last_Send_Subscriber.php',
    19    'SolidWP\Performance\StellarWP\Telemetry\Last_Send\Last_Send' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Last_Send/Last_Send.php',
    20    'SolidWP\Performance\StellarWP\Telemetry\Config' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Config.php',
    21    'SolidWP\Performance\StellarWP\Telemetry\Telemetry\Telemetry_Subscriber' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Telemetry/Telemetry_Subscriber.php',
    22    'SolidWP\Performance\StellarWP\Telemetry\Telemetry\Telemetry' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Telemetry/Telemetry.php',
     55   'SolidWP\Performance\StellarWP\Telemetry\Data_Providers\Debug_Data' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Data_Providers/Debug_Data.php',
     56   'SolidWP\Performance\StellarWP\Telemetry\Data_Providers\Null_Data_Provider' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Data_Providers/Null_Data_Provider.php',
    2357   'SolidWP\Performance\StellarWP\Telemetry\Events\Event_Subscriber' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Events/Event_Subscriber.php',
    2458   'SolidWP\Performance\StellarWP\Telemetry\Events\Event' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Events/Event.php',
    2559   'SolidWP\Performance\StellarWP\Telemetry\Core' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Core.php',
    26    'SolidWP\Performance\StellarWP\Telemetry\Opt_In\Opt_In_Template' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Opt_In/Opt_In_Template.php',
    27    'SolidWP\Performance\StellarWP\Telemetry\Opt_In\Opt_In_Subscriber' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Opt_In/Opt_In_Subscriber.php',
    28    'SolidWP\Performance\StellarWP\Telemetry\Opt_In\Status' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Opt_In/Status.php',
    29    'SolidWP\Performance\StellarWP\Telemetry\Data_Providers\Null_Data_Provider' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Data_Providers/Null_Data_Provider.php',
    30    'SolidWP\Performance\StellarWP\Telemetry\Data_Providers\Debug_Data' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Data_Providers/Debug_Data.php',
    31    'SolidWP\Performance\StellarWP\Telemetry\Uninstall' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Uninstall.php',
    32    'SolidWP\Performance\StellarWP\Telemetry\Contracts\Data_Provider' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Contracts/Data_Provider.php',
    33    'SolidWP\Performance\StellarWP\Telemetry\Contracts\Runnable' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Contracts/Runnable.php',
    34    'SolidWP\Performance\StellarWP\Telemetry\Contracts\Subscriber_Interface' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Contracts/Subscriber_Interface.php',
    35    'SolidWP\Performance\StellarWP\Telemetry\Contracts\Abstract_Subscriber' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Contracts/Abstract_Subscriber.php',
    36    'SolidWP\Performance\StellarWP\Telemetry\Contracts\Template_Interface' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Contracts/Template_Interface.php',
    37    'SolidWP\Performance\StellarWP\Telemetry\Exit_Interview\Template' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Exit_Interview/Template.php',
    38    'SolidWP\Performance\StellarWP\Telemetry\Exit_Interview\Exit_Interview_Subscriber' => $strauss_src . '/stellarwp/telemetry/src/Telemetry/Exit_Interview/Exit_Interview_Subscriber.php',
     60   'SolidWP\Performance\StellarWP\Pipeline\Pipeline' => $strauss_src . '/stellarwp/pipeline/src/Pipeline/Pipeline.php',
     61   'SolidWP\Performance\StellarWP\Pipeline\Contracts\Pipe' => $strauss_src . '/stellarwp/pipeline/src/Pipeline/Contracts/Pipe.php',
    3962   'SolidWP\Performance\StellarWP\Arrays\Arr' => $strauss_src . '/stellarwp/arrays/src/Arrays/Arr.php',
    40    'SolidWP\Performance\StellarWP\Pipeline\Contracts\Pipe' => $strauss_src . '/stellarwp/pipeline/src/Pipeline/Contracts/Pipe.php',
    41    'SolidWP\Performance\StellarWP\Pipeline\Pipeline' => $strauss_src . '/stellarwp/pipeline/src/Pipeline/Pipeline.php',
    42    'SolidWP\Performance\StellarWP\SuperGlobals\SuperGlobals' => $strauss_src . '/stellarwp/superglobals/src/SuperGlobals/SuperGlobals.php',
    4363   'SolidWP\Performance\StellarWP\ContainerContract\ContainerInterface' => $strauss_src . '/stellarwp/container-contract/src/ContainerInterface.php',
    44    'SolidWP\Performance\Flintstone\Formatter\SerializeFormatter' => $strauss_src . '/fire015/flintstone/src/Formatter/SerializeFormatter.php',
    45    'SolidWP\Performance\Flintstone\Formatter\FormatterInterface' => $strauss_src . '/fire015/flintstone/src/Formatter/FormatterInterface.php',
    46    'SolidWP\Performance\Flintstone\Formatter\JsonFormatter' => $strauss_src . '/fire015/flintstone/src/Formatter/JsonFormatter.php',
    47    'SolidWP\Performance\Flintstone\Cache\ArrayCache' => $strauss_src . '/fire015/flintstone/src/Cache/ArrayCache.php',
    48    'SolidWP\Performance\Flintstone\Cache\CacheInterface' => $strauss_src . '/fire015/flintstone/src/Cache/CacheInterface.php',
    49    'SolidWP\Performance\Flintstone\Exception' => $strauss_src . '/fire015/flintstone/src/Exception.php',
    50    'SolidWP\Performance\Flintstone\Database' => $strauss_src . '/fire015/flintstone/src/Database.php',
    51    'SolidWP\Performance\Flintstone\Config' => $strauss_src . '/fire015/flintstone/src/Config.php',
    52    'SolidWP\Performance\Flintstone\Validation' => $strauss_src . '/fire015/flintstone/src/Validation.php',
    53    'SolidWP\Performance\Flintstone\Flintstone' => $strauss_src . '/fire015/flintstone/src/Flintstone.php',
    54    'SolidWP\Performance\Flintstone\Line' => $strauss_src . '/fire015/flintstone/src/Line.php',
    55    'SolidWP\Performance\Illuminate\Support\Arr' => $strauss_src . '/illuminate/collections/Arr.php',
    56    'SolidWP\Performance\Illuminate\Support\HigherOrderCollectionProxy' => $strauss_src . '/illuminate/collections/HigherOrderCollectionProxy.php',
    57    'SolidWP\Performance\Illuminate\Support\HigherOrderWhenProxy' => $strauss_src . '/illuminate/collections/HigherOrderWhenProxy.php',
    58    'SolidWP\Performance\Illuminate\Support\Enumerable' => $strauss_src . '/illuminate/collections/Enumerable.php',
    59    'SolidWP\Performance\Illuminate\Support\ItemNotFoundException' => $strauss_src . '/illuminate/collections/ItemNotFoundException.php',
    60    'SolidWP\Performance\Illuminate\Support\LazyCollection' => $strauss_src . '/illuminate/collections/LazyCollection.php',
    61    'SolidWP\Performance\Illuminate\Support\Traits\EnumeratesValues' => $strauss_src . '/illuminate/collections/Traits/EnumeratesValues.php',
    62    'SolidWP\Performance\Illuminate\Support\Collection' => $strauss_src . '/illuminate/collections/Collection.php',
    63    'SolidWP\Performance\Illuminate\Support\MultipleItemsFoundException' => $strauss_src . '/illuminate/collections/MultipleItemsFoundException.php',
    64    'SolidWP\Performance\Illuminate\Support\Traits\Macroable' => $strauss_src . '/illuminate/macroable/Traits/Macroable.php',
    65    'SolidWP\Performance\Illuminate\Contracts\Cache\Factory' => $strauss_src . '/illuminate/contracts/Cache/Factory.php',
    66    'SolidWP\Performance\Illuminate\Contracts\Cache\LockTimeoutException' => $strauss_src . '/illuminate/contracts/Cache/LockTimeoutException.php',
    67    'SolidWP\Performance\Illuminate\Contracts\Cache\LockProvider' => $strauss_src . '/illuminate/contracts/Cache/LockProvider.php',
    68    'SolidWP\Performance\Illuminate\Contracts\Cache\Repository' => $strauss_src . '/illuminate/contracts/Cache/Repository.php',
    69    'SolidWP\Performance\Illuminate\Contracts\Cache\Store' => $strauss_src . '/illuminate/contracts/Cache/Store.php',
    70    'SolidWP\Performance\Illuminate\Contracts\Cache\Lock' => $strauss_src . '/illuminate/contracts/Cache/Lock.php',
     64   'SolidWP\Performance\Illuminate\Contracts\Config\Repository' => $strauss_src . '/illuminate/contracts/Config/Repository.php',
    7165   'SolidWP\Performance\Illuminate\Contracts\Container\BindingResolutionException' => $strauss_src . '/illuminate/contracts/Container/BindingResolutionException.php',
    7266   'SolidWP\Performance\Illuminate\Contracts\Container\Container' => $strauss_src . '/illuminate/contracts/Container/Container.php',
     67   'SolidWP\Performance\Illuminate\Contracts\Container\CircularDependencyException' => $strauss_src . '/illuminate/contracts/Container/CircularDependencyException.php',
    7368   'SolidWP\Performance\Illuminate\Contracts\Container\ContextualBindingBuilder' => $strauss_src . '/illuminate/contracts/Container/ContextualBindingBuilder.php',
    74    'SolidWP\Performance\Illuminate\Contracts\Container\CircularDependencyException' => $strauss_src . '/illuminate/contracts/Container/CircularDependencyException.php',
    75    'SolidWP\Performance\Illuminate\Contracts\Queue\EntityResolver' => $strauss_src . '/illuminate/contracts/Queue/EntityResolver.php',
    76    'SolidWP\Performance\Illuminate\Contracts\Queue\Factory' => $strauss_src . '/illuminate/contracts/Queue/Factory.php',
    77    'SolidWP\Performance\Illuminate\Contracts\Queue\ShouldBeEncrypted' => $strauss_src . '/illuminate/contracts/Queue/ShouldBeEncrypted.php',
    78    'SolidWP\Performance\Illuminate\Contracts\Queue\ShouldBeUnique' => $strauss_src . '/illuminate/contracts/Queue/ShouldBeUnique.php',
    79    'SolidWP\Performance\Illuminate\Contracts\Queue\Queue' => $strauss_src . '/illuminate/contracts/Queue/Queue.php',
    80    'SolidWP\Performance\Illuminate\Contracts\Queue\ShouldQueue' => $strauss_src . '/illuminate/contracts/Queue/ShouldQueue.php',
    81    'SolidWP\Performance\Illuminate\Contracts\Queue\QueueableCollection' => $strauss_src . '/illuminate/contracts/Queue/QueueableCollection.php',
    82    'SolidWP\Performance\Illuminate\Contracts\Queue\QueueableEntity' => $strauss_src . '/illuminate/contracts/Queue/QueueableEntity.php',
    83    'SolidWP\Performance\Illuminate\Contracts\Queue\Monitor' => $strauss_src . '/illuminate/contracts/Queue/Monitor.php',
    84    'SolidWP\Performance\Illuminate\Contracts\Queue\Job' => $strauss_src . '/illuminate/contracts/Queue/Job.php',
    85    'SolidWP\Performance\Illuminate\Contracts\Queue\ClearableQueue' => $strauss_src . '/illuminate/contracts/Queue/ClearableQueue.php',
    86    'SolidWP\Performance\Illuminate\Contracts\Queue\EntityNotFoundException' => $strauss_src . '/illuminate/contracts/Queue/EntityNotFoundException.php',
    87    'SolidWP\Performance\Illuminate\Contracts\Queue\ShouldBeUniqueUntilProcessing' => $strauss_src . '/illuminate/contracts/Queue/ShouldBeUniqueUntilProcessing.php',
    88    'SolidWP\Performance\Illuminate\Contracts\Foundation\CachesRoutes' => $strauss_src . '/illuminate/contracts/Foundation/CachesRoutes.php',
     69   'SolidWP\Performance\Illuminate\Contracts\Hashing\Hasher' => $strauss_src . '/illuminate/contracts/Hashing/Hasher.php',
     70   'SolidWP\Performance\Illuminate\Contracts\Bus\Dispatcher' => $strauss_src . '/illuminate/contracts/Bus/Dispatcher.php',
     71   'SolidWP\Performance\Illuminate\Contracts\Bus\QueueingDispatcher' => $strauss_src . '/illuminate/contracts/Bus/QueueingDispatcher.php',
     72   'SolidWP\Performance\Illuminate\Contracts\Auth\UserProvider' => $strauss_src . '/illuminate/contracts/Auth/UserProvider.php',
     73   'SolidWP\Performance\Illuminate\Contracts\Auth\Middleware\AuthenticatesRequests' => $strauss_src . '/illuminate/contracts/Auth/Middleware/AuthenticatesRequests.php',
     74   'SolidWP\Performance\Illuminate\Contracts\Auth\PasswordBrokerFactory' => $strauss_src . '/illuminate/contracts/Auth/PasswordBrokerFactory.php',
     75   'SolidWP\Performance\Illuminate\Contracts\Auth\CanResetPassword' => $strauss_src . '/illuminate/contracts/Auth/CanResetPassword.php',
     76   'SolidWP\Performance\Illuminate\Contracts\Auth\Guard' => $strauss_src . '/illuminate/contracts/Auth/Guard.php',
     77   'SolidWP\Performance\Illuminate\Contracts\Auth\Access\Authorizable' => $strauss_src . '/illuminate/contracts/Auth/Access/Authorizable.php',
     78   'SolidWP\Performance\Illuminate\Contracts\Auth\Access\Gate' => $strauss_src . '/illuminate/contracts/Auth/Access/Gate.php',
     79   'SolidWP\Performance\Illuminate\Contracts\Auth\Factory' => $strauss_src . '/illuminate/contracts/Auth/Factory.php',
     80   'SolidWP\Performance\Illuminate\Contracts\Auth\SupportsBasicAuth' => $strauss_src . '/illuminate/contracts/Auth/SupportsBasicAuth.php',
     81   'SolidWP\Performance\Illuminate\Contracts\Auth\StatefulGuard' => $strauss_src . '/illuminate/contracts/Auth/StatefulGuard.php',
     82   'SolidWP\Performance\Illuminate\Contracts\Auth\MustVerifyEmail' => $strauss_src . '/illuminate/contracts/Auth/MustVerifyEmail.php',
     83   'SolidWP\Performance\Illuminate\Contracts\Auth\Authenticatable' => $strauss_src . '/illuminate/contracts/Auth/Authenticatable.php',
     84   'SolidWP\Performance\Illuminate\Contracts\Auth\PasswordBroker' => $strauss_src . '/illuminate/contracts/Auth/PasswordBroker.php',
     85   'SolidWP\Performance\Illuminate\Contracts\Broadcasting\ShouldBroadcast' => $strauss_src . '/illuminate/contracts/Broadcasting/ShouldBroadcast.php',
     86   'SolidWP\Performance\Illuminate\Contracts\Broadcasting\Factory' => $strauss_src . '/illuminate/contracts/Broadcasting/Factory.php',
     87   'SolidWP\Performance\Illuminate\Contracts\Broadcasting\HasBroadcastChannel' => $strauss_src . '/illuminate/contracts/Broadcasting/HasBroadcastChannel.php',
     88   'SolidWP\Performance\Illuminate\Contracts\Broadcasting\ShouldBroadcastNow' => $strauss_src . '/illuminate/contracts/Broadcasting/ShouldBroadcastNow.php',
     89   'SolidWP\Performance\Illuminate\Contracts\Broadcasting\Broadcaster' => $strauss_src . '/illuminate/contracts/Broadcasting/Broadcaster.php',
     90   'SolidWP\Performance\Illuminate\Contracts\Validation\DataAwareRule' => $strauss_src . '/illuminate/contracts/Validation/DataAwareRule.php',
     91   'SolidWP\Performance\Illuminate\Contracts\Validation\ValidatesWhenResolved' => $strauss_src . '/illuminate/contracts/Validation/ValidatesWhenResolved.php',
     92   'SolidWP\Performance\Illuminate\Contracts\Validation\ValidatorAwareRule' => $strauss_src . '/illuminate/contracts/Validation/ValidatorAwareRule.php',
     93   'SolidWP\Performance\Illuminate\Contracts\Validation\ImplicitRule' => $strauss_src . '/illuminate/contracts/Validation/ImplicitRule.php',
     94   'SolidWP\Performance\Illuminate\Contracts\Validation\UncompromisedVerifier' => $strauss_src . '/illuminate/contracts/Validation/UncompromisedVerifier.php',
     95   'SolidWP\Performance\Illuminate\Contracts\Validation\Validator' => $strauss_src . '/illuminate/contracts/Validation/Validator.php',
     96   'SolidWP\Performance\Illuminate\Contracts\Validation\Rule' => $strauss_src . '/illuminate/contracts/Validation/Rule.php',
     97   'SolidWP\Performance\Illuminate\Contracts\Validation\Factory' => $strauss_src . '/illuminate/contracts/Validation/Factory.php',
    8998   'SolidWP\Performance\Illuminate\Contracts\Foundation\Application' => $strauss_src . '/illuminate/contracts/Foundation/Application.php',
    9099   'SolidWP\Performance\Illuminate\Contracts\Foundation\CachesConfiguration' => $strauss_src . '/illuminate/contracts/Foundation/CachesConfiguration.php',
    91    'SolidWP\Performance\Illuminate\Contracts\Pagination\Paginator' => $strauss_src . '/illuminate/contracts/Pagination/Paginator.php',
    92    'SolidWP\Performance\Illuminate\Contracts\Pagination\CursorPaginator' => $strauss_src . '/illuminate/contracts/Pagination/CursorPaginator.php',
    93    'SolidWP\Performance\Illuminate\Contracts\Pagination\LengthAwarePaginator' => $strauss_src . '/illuminate/contracts/Pagination/LengthAwarePaginator.php',
    94    'SolidWP\Performance\Illuminate\Contracts\Events\Dispatcher' => $strauss_src . '/illuminate/contracts/Events/Dispatcher.php',
    95    'SolidWP\Performance\Illuminate\Contracts\Broadcasting\Factory' => $strauss_src . '/illuminate/contracts/Broadcasting/Factory.php',
    96    'SolidWP\Performance\Illuminate\Contracts\Broadcasting\Broadcaster' => $strauss_src . '/illuminate/contracts/Broadcasting/Broadcaster.php',
    97    'SolidWP\Performance\Illuminate\Contracts\Broadcasting\ShouldBroadcast' => $strauss_src . '/illuminate/contracts/Broadcasting/ShouldBroadcast.php',
    98    'SolidWP\Performance\Illuminate\Contracts\Broadcasting\ShouldBroadcastNow' => $strauss_src . '/illuminate/contracts/Broadcasting/ShouldBroadcastNow.php',
    99    'SolidWP\Performance\Illuminate\Contracts\Broadcasting\HasBroadcastChannel' => $strauss_src . '/illuminate/contracts/Broadcasting/HasBroadcastChannel.php',
    100    'SolidWP\Performance\Illuminate\Contracts\Routing\BindingRegistrar' => $strauss_src . '/illuminate/contracts/Routing/BindingRegistrar.php',
    101    'SolidWP\Performance\Illuminate\Contracts\Routing\ResponseFactory' => $strauss_src . '/illuminate/contracts/Routing/ResponseFactory.php',
    102    'SolidWP\Performance\Illuminate\Contracts\Routing\UrlGenerator' => $strauss_src . '/illuminate/contracts/Routing/UrlGenerator.php',
    103    'SolidWP\Performance\Illuminate\Contracts\Routing\UrlRoutable' => $strauss_src . '/illuminate/contracts/Routing/UrlRoutable.php',
    104    'SolidWP\Performance\Illuminate\Contracts\Routing\Registrar' => $strauss_src . '/illuminate/contracts/Routing/Registrar.php',
     100   'SolidWP\Performance\Illuminate\Contracts\Foundation\CachesRoutes' => $strauss_src . '/illuminate/contracts/Foundation/CachesRoutes.php',
     101   'SolidWP\Performance\Illuminate\Contracts\View\View' => $strauss_src . '/illuminate/contracts/View/View.php',
     102   'SolidWP\Performance\Illuminate\Contracts\View\Engine' => $strauss_src . '/illuminate/contracts/View/Engine.php',
     103   'SolidWP\Performance\Illuminate\Contracts\View\Factory' => $strauss_src . '/illuminate/contracts/View/Factory.php',
    105104   'SolidWP\Performance\Illuminate\Contracts\Encryption\EncryptException' => $strauss_src . '/illuminate/contracts/Encryption/EncryptException.php',
     105   'SolidWP\Performance\Illuminate\Contracts\Encryption\StringEncrypter' => $strauss_src . '/illuminate/contracts/Encryption/StringEncrypter.php',
    106106   'SolidWP\Performance\Illuminate\Contracts\Encryption\Encrypter' => $strauss_src . '/illuminate/contracts/Encryption/Encrypter.php',
    107    'SolidWP\Performance\Illuminate\Contracts\Encryption\StringEncrypter' => $strauss_src . '/illuminate/contracts/Encryption/StringEncrypter.php',
    108107   'SolidWP\Performance\Illuminate\Contracts\Encryption\DecryptException' => $strauss_src . '/illuminate/contracts/Encryption/DecryptException.php',
    109    'SolidWP\Performance\Illuminate\Contracts\Config\Repository' => $strauss_src . '/illuminate/contracts/Config/Repository.php',
    110    'SolidWP\Performance\Illuminate\Contracts\View\Factory' => $strauss_src . '/illuminate/contracts/View/Factory.php',
    111    'SolidWP\Performance\Illuminate\Contracts\View\Engine' => $strauss_src . '/illuminate/contracts/View/Engine.php',
    112    'SolidWP\Performance\Illuminate\Contracts\View\View' => $strauss_src . '/illuminate/contracts/View/View.php',
    113    'SolidWP\Performance\Illuminate\Contracts\Session\Session' => $strauss_src . '/illuminate/contracts/Session/Session.php',
     108   'SolidWP\Performance\Illuminate\Contracts\Translation\Translator' => $strauss_src . '/illuminate/contracts/Translation/Translator.php',
     109   'SolidWP\Performance\Illuminate\Contracts\Translation\Loader' => $strauss_src . '/illuminate/contracts/Translation/Loader.php',
     110   'SolidWP\Performance\Illuminate\Contracts\Translation\HasLocalePreference' => $strauss_src . '/illuminate/contracts/Translation/HasLocalePreference.php',
     111   'SolidWP\Performance\Illuminate\Contracts\Pipeline\Hub' => $strauss_src . '/illuminate/contracts/Pipeline/Hub.php',
     112   'SolidWP\Performance\Illuminate\Contracts\Pipeline\Pipeline' => $strauss_src . '/illuminate/contracts/Pipeline/Pipeline.php',
     113   'SolidWP\Performance\Illuminate\Contracts\Support\Responsable' => $strauss_src . '/illuminate/contracts/Support/Responsable.php',
     114   'SolidWP\Performance\Illuminate\Contracts\Support\CanBeEscapedWhenCastToString' => $strauss_src . '/illuminate/contracts/Support/CanBeEscapedWhenCastToString.php',
     115   'SolidWP\Performance\Illuminate\Contracts\Support\MessageBag' => $strauss_src . '/illuminate/contracts/Support/MessageBag.php',
     116   'SolidWP\Performance\Illuminate\Contracts\Support\Jsonable' => $strauss_src . '/illuminate/contracts/Support/Jsonable.php',
     117   'SolidWP\Performance\Illuminate\Contracts\Support\ValidatedData' => $strauss_src . '/illuminate/contracts/Support/ValidatedData.php',
     118   'SolidWP\Performance\Illuminate\Contracts\Support\DeferrableProvider' => $strauss_src . '/illuminate/contracts/Support/DeferrableProvider.php',
     119   'SolidWP\Performance\Illuminate\Contracts\Support\Htmlable' => $strauss_src . '/illuminate/contracts/Support/Htmlable.php',
     120   'SolidWP\Performance\Illuminate\Contracts\Support\Renderable' => $strauss_src . '/illuminate/contracts/Support/Renderable.php',
     121   'SolidWP\Performance\Illuminate\Contracts\Support\Arrayable' => $strauss_src . '/illuminate/contracts/Support/Arrayable.php',
     122   'SolidWP\Performance\Illuminate\Contracts\Support\MessageProvider' => $strauss_src . '/illuminate/contracts/Support/MessageProvider.php',
     123   'SolidWP\Performance\Illuminate\Contracts\Support\DeferringDisplayableValue' => $strauss_src . '/illuminate/contracts/Support/DeferringDisplayableValue.php',
     124   'SolidWP\Performance\Illuminate\Contracts\Notifications\Dispatcher' => $strauss_src . '/illuminate/contracts/Notifications/Dispatcher.php',
     125   'SolidWP\Performance\Illuminate\Contracts\Notifications\Factory' => $strauss_src . '/illuminate/contracts/Notifications/Factory.php',
     126   'SolidWP\Performance\Illuminate\Contracts\Redis\Connection' => $strauss_src . '/illuminate/contracts/Redis/Connection.php',
     127   'SolidWP\Performance\Illuminate\Contracts\Redis\Connector' => $strauss_src . '/illuminate/contracts/Redis/Connector.php',
     128   'SolidWP\Performance\Illuminate\Contracts\Redis\Factory' => $strauss_src . '/illuminate/contracts/Redis/Factory.php',
     129   'SolidWP\Performance\Illuminate\Contracts\Redis\LimiterTimeoutException' => $strauss_src . '/illuminate/contracts/Redis/LimiterTimeoutException.php',
    114130   'SolidWP\Performance\Illuminate\Contracts\Console\Application' => $strauss_src . '/illuminate/contracts/Console/Application.php',
    115131   'SolidWP\Performance\Illuminate\Contracts\Console\Kernel' => $strauss_src . '/illuminate/contracts/Console/Kernel.php',
    116    'SolidWP\Performance\Illuminate\Contracts\Validation\Factory' => $strauss_src . '/illuminate/contracts/Validation/Factory.php',
    117    'SolidWP\Performance\Illuminate\Contracts\Validation\Validator' => $strauss_src . '/illuminate/contracts/Validation/Validator.php',
    118    'SolidWP\Performance\Illuminate\Contracts\Validation\Rule' => $strauss_src . '/illuminate/contracts/Validation/Rule.php',
    119    'SolidWP\Performance\Illuminate\Contracts\Validation\ValidatorAwareRule' => $strauss_src . '/illuminate/contracts/Validation/ValidatorAwareRule.php',
    120    'SolidWP\Performance\Illuminate\Contracts\Validation\ValidatesWhenResolved' => $strauss_src . '/illuminate/contracts/Validation/ValidatesWhenResolved.php',
    121    'SolidWP\Performance\Illuminate\Contracts\Validation\ImplicitRule' => $strauss_src . '/illuminate/contracts/Validation/ImplicitRule.php',
    122    'SolidWP\Performance\Illuminate\Contracts\Validation\UncompromisedVerifier' => $strauss_src . '/illuminate/contracts/Validation/UncompromisedVerifier.php',
    123    'SolidWP\Performance\Illuminate\Contracts\Validation\DataAwareRule' => $strauss_src . '/illuminate/contracts/Validation/DataAwareRule.php',
    124    'SolidWP\Performance\Illuminate\Contracts\Debug\ExceptionHandler' => $strauss_src . '/illuminate/contracts/Debug/ExceptionHandler.php',
    125    'SolidWP\Performance\Illuminate\Contracts\Support\DeferrableProvider' => $strauss_src . '/illuminate/contracts/Support/DeferrableProvider.php',
    126    'SolidWP\Performance\Illuminate\Contracts\Support\MessageBag' => $strauss_src . '/illuminate/contracts/Support/MessageBag.php',
    127    'SolidWP\Performance\Illuminate\Contracts\Support\ValidatedData' => $strauss_src . '/illuminate/contracts/Support/ValidatedData.php',
    128    'SolidWP\Performance\Illuminate\Contracts\Support\Htmlable' => $strauss_src . '/illuminate/contracts/Support/Htmlable.php',
    129    'SolidWP\Performance\Illuminate\Contracts\Support\Responsable' => $strauss_src . '/illuminate/contracts/Support/Responsable.php',
    130    'SolidWP\Performance\Illuminate\Contracts\Support\MessageProvider' => $strauss_src . '/illuminate/contracts/Support/MessageProvider.php',
    131    'SolidWP\Performance\Illuminate\Contracts\Support\Arrayable' => $strauss_src . '/illuminate/contracts/Support/Arrayable.php',
    132    'SolidWP\Performance\Illuminate\Contracts\Support\CanBeEscapedWhenCastToString' => $strauss_src . '/illuminate/contracts/Support/CanBeEscapedWhenCastToString.php',
    133    'SolidWP\Performance\Illuminate\Contracts\Support\Renderable' => $strauss_src . '/illuminate/contracts/Support/Renderable.php',
    134    'SolidWP\Performance\Illuminate\Contracts\Support\Jsonable' => $strauss_src . '/illuminate/contracts/Support/Jsonable.php',
    135    'SolidWP\Performance\Illuminate\Contracts\Support\DeferringDisplayableValue' => $strauss_src . '/illuminate/contracts/Support/DeferringDisplayableValue.php',
    136    'SolidWP\Performance\Illuminate\Contracts\Translation\Translator' => $strauss_src . '/illuminate/contracts/Translation/Translator.php',
    137    'SolidWP\Performance\Illuminate\Contracts\Translation\HasLocalePreference' => $strauss_src . '/illuminate/contracts/Translation/HasLocalePreference.php',
    138    'SolidWP\Performance\Illuminate\Contracts\Translation\Loader' => $strauss_src . '/illuminate/contracts/Translation/Loader.php',
    139    'SolidWP\Performance\Illuminate\Contracts\Pipeline\Hub' => $strauss_src . '/illuminate/contracts/Pipeline/Hub.php',
    140    'SolidWP\Performance\Illuminate\Contracts\Pipeline\Pipeline' => $strauss_src . '/illuminate/contracts/Pipeline/Pipeline.php',
    141    'SolidWP\Performance\Illuminate\Contracts\Http\Kernel' => $strauss_src . '/illuminate/contracts/Http/Kernel.php',
    142    'SolidWP\Performance\Illuminate\Contracts\Notifications\Factory' => $strauss_src . '/illuminate/contracts/Notifications/Factory.php',
    143    'SolidWP\Performance\Illuminate\Contracts\Notifications\Dispatcher' => $strauss_src . '/illuminate/contracts/Notifications/Dispatcher.php',
    144    'SolidWP\Performance\Illuminate\Contracts\Database\Events\MigrationEvent' => $strauss_src . '/illuminate/contracts/Database/Events/MigrationEvent.php',
    145132   'SolidWP\Performance\Illuminate\Contracts\Database\Eloquent\Castable' => $strauss_src . '/illuminate/contracts/Database/Eloquent/Castable.php',
    146133   'SolidWP\Performance\Illuminate\Contracts\Database\Eloquent\DeviatesCastableAttributes' => $strauss_src . '/illuminate/contracts/Database/Eloquent/DeviatesCastableAttributes.php',
    147134   'SolidWP\Performance\Illuminate\Contracts\Database\Eloquent\CastsInboundAttributes' => $strauss_src . '/illuminate/contracts/Database/Eloquent/CastsInboundAttributes.php',
     135   'SolidWP\Performance\Illuminate\Contracts\Database\Eloquent\SupportsPartialRelations' => $strauss_src . '/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php',
    148136   'SolidWP\Performance\Illuminate\Contracts\Database\Eloquent\CastsAttributes' => $strauss_src . '/illuminate/contracts/Database/Eloquent/CastsAttributes.php',
    149137   'SolidWP\Performance\Illuminate\Contracts\Database\Eloquent\SerializesCastableAttributes' => $strauss_src . '/illuminate/contracts/Database/Eloquent/SerializesCastableAttributes.php',
    150    'SolidWP\Performance\Illuminate\Contracts\Database\Eloquent\SupportsPartialRelations' => $strauss_src . '/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php',
    151138   'SolidWP\Performance\Illuminate\Contracts\Database\ModelIdentifier' => $strauss_src . '/illuminate/contracts/Database/ModelIdentifier.php',
    152    'SolidWP\Performance\Illuminate\Contracts\Redis\Factory' => $strauss_src . '/illuminate/contracts/Redis/Factory.php',
    153    'SolidWP\Performance\Illuminate\Contracts\Redis\LimiterTimeoutException' => $strauss_src . '/illuminate/contracts/Redis/LimiterTimeoutException.php',
    154    'SolidWP\Performance\Illuminate\Contracts\Redis\Connector' => $strauss_src . '/illuminate/contracts/Redis/Connector.php',
    155    'SolidWP\Performance\Illuminate\Contracts\Redis\Connection' => $strauss_src . '/illuminate/contracts/Redis/Connection.php',
    156    'SolidWP\Performance\Illuminate\Contracts\Mail\Factory' => $strauss_src . '/illuminate/contracts/Mail/Factory.php',
    157    'SolidWP\Performance\Illuminate\Contracts\Mail\Mailable' => $strauss_src . '/illuminate/contracts/Mail/Mailable.php',
    158    'SolidWP\Performance\Illuminate\Contracts\Mail\MailQueue' => $strauss_src . '/illuminate/contracts/Mail/MailQueue.php',
    159    'SolidWP\Performance\Illuminate\Contracts\Mail\Mailer' => $strauss_src . '/illuminate/contracts/Mail/Mailer.php',
    160    'SolidWP\Performance\Illuminate\Contracts\Hashing\Hasher' => $strauss_src . '/illuminate/contracts/Hashing/Hasher.php',
    161    'SolidWP\Performance\Illuminate\Contracts\Auth\Middleware\AuthenticatesRequests' => $strauss_src . '/illuminate/contracts/Auth/Middleware/AuthenticatesRequests.php',
    162    'SolidWP\Performance\Illuminate\Contracts\Auth\PasswordBrokerFactory' => $strauss_src . '/illuminate/contracts/Auth/PasswordBrokerFactory.php',
    163    'SolidWP\Performance\Illuminate\Contracts\Auth\Factory' => $strauss_src . '/illuminate/contracts/Auth/Factory.php',
    164    'SolidWP\Performance\Illuminate\Contracts\Auth\Guard' => $strauss_src . '/illuminate/contracts/Auth/Guard.php',
    165    'SolidWP\Performance\Illuminate\Contracts\Auth\Access\Gate' => $strauss_src . '/illuminate/contracts/Auth/Access/Gate.php',
    166    'SolidWP\Performance\Illuminate\Contracts\Auth\Access\Authorizable' => $strauss_src . '/illuminate/contracts/Auth/Access/Authorizable.php',
    167    'SolidWP\Performance\Illuminate\Contracts\Auth\StatefulGuard' => $strauss_src . '/illuminate/contracts/Auth/StatefulGuard.php',
    168    'SolidWP\Performance\Illuminate\Contracts\Auth\MustVerifyEmail' => $strauss_src . '/illuminate/contracts/Auth/MustVerifyEmail.php',
    169    'SolidWP\Performance\Illuminate\Contracts\Auth\UserProvider' => $strauss_src . '/illuminate/contracts/Auth/UserProvider.php',
    170    'SolidWP\Performance\Illuminate\Contracts\Auth\Authenticatable' => $strauss_src . '/illuminate/contracts/Auth/Authenticatable.php',
    171    'SolidWP\Performance\Illuminate\Contracts\Auth\SupportsBasicAuth' => $strauss_src . '/illuminate/contracts/Auth/SupportsBasicAuth.php',
    172    'SolidWP\Performance\Illuminate\Contracts\Auth\PasswordBroker' => $strauss_src . '/illuminate/contracts/Auth/PasswordBroker.php',
    173    'SolidWP\Performance\Illuminate\Contracts\Auth\CanResetPassword' => $strauss_src . '/illuminate/contracts/Auth/CanResetPassword.php',
    174    'SolidWP\Performance\Illuminate\Contracts\Bus\Dispatcher' => $strauss_src . '/illuminate/contracts/Bus/Dispatcher.php',
    175    'SolidWP\Performance\Illuminate\Contracts\Bus\QueueingDispatcher' => $strauss_src . '/illuminate/contracts/Bus/QueueingDispatcher.php',
    176    'SolidWP\Performance\Illuminate\Contracts\Filesystem\Factory' => $strauss_src . '/illuminate/contracts/Filesystem/Factory.php',
    177    'SolidWP\Performance\Illuminate\Contracts\Filesystem\LockTimeoutException' => $strauss_src . '/illuminate/contracts/Filesystem/LockTimeoutException.php',
     139   'SolidWP\Performance\Illuminate\Contracts\Database\Events\MigrationEvent' => $strauss_src . '/illuminate/contracts/Database/Events/MigrationEvent.php',
     140   'SolidWP\Performance\Illuminate\Contracts\Routing\UrlGenerator' => $strauss_src . '/illuminate/contracts/Routing/UrlGenerator.php',
     141   'SolidWP\Performance\Illuminate\Contracts\Routing\Registrar' => $strauss_src . '/illuminate/contracts/Routing/Registrar.php',
     142   'SolidWP\Performance\Illuminate\Contracts\Routing\ResponseFactory' => $strauss_src . '/illuminate/contracts/Routing/ResponseFactory.php',
     143   'SolidWP\Performance\Illuminate\Contracts\Routing\BindingRegistrar' => $strauss_src . '/illuminate/contracts/Routing/BindingRegistrar.php',
     144   'SolidWP\Performance\Illuminate\Contracts\Routing\UrlRoutable' => $strauss_src . '/illuminate/contracts/Routing/UrlRoutable.php',
     145   'SolidWP\Performance\Illuminate\Contracts\Http\Kernel' => $strauss_src . '/illuminate/contracts/Http/Kernel.php',
     146   'SolidWP\Performance\Illuminate\Contracts\Pagination\LengthAwarePaginator' => $strauss_src . '/illuminate/contracts/Pagination/LengthAwarePaginator.php',
     147   'SolidWP\Performance\Illuminate\Contracts\Pagination\Paginator' => $strauss_src . '/illuminate/contracts/Pagination/Paginator.php',
     148   'SolidWP\Performance\Illuminate\Contracts\Pagination\CursorPaginator' => $strauss_src . '/illuminate/contracts/Pagination/CursorPaginator.php',
     149   'SolidWP\Performance\Illuminate\Contracts\Session\Session' => $strauss_src . '/illuminate/contracts/Session/Session.php',
    178150   'SolidWP\Performance\Illuminate\Contracts\Filesystem\FileNotFoundException' => $strauss_src . '/illuminate/contracts/Filesystem/FileNotFoundException.php',
    179151   'SolidWP\Performance\Illuminate\Contracts\Filesystem\Filesystem' => $strauss_src . '/illuminate/contracts/Filesystem/Filesystem.php',
    180152   'SolidWP\Performance\Illuminate\Contracts\Filesystem\Cloud' => $strauss_src . '/illuminate/contracts/Filesystem/Cloud.php',
    181153   'SolidWP\Performance\Illuminate\Contracts\Filesystem\FileExistsException' => $strauss_src . '/illuminate/contracts/Filesystem/FileExistsException.php',
     154   'SolidWP\Performance\Illuminate\Contracts\Filesystem\Factory' => $strauss_src . '/illuminate/contracts/Filesystem/Factory.php',
     155   'SolidWP\Performance\Illuminate\Contracts\Filesystem\LockTimeoutException' => $strauss_src . '/illuminate/contracts/Filesystem/LockTimeoutException.php',
     156   'SolidWP\Performance\Illuminate\Contracts\Mail\Mailer' => $strauss_src . '/illuminate/contracts/Mail/Mailer.php',
     157   'SolidWP\Performance\Illuminate\Contracts\Mail\MailQueue' => $strauss_src . '/illuminate/contracts/Mail/MailQueue.php',
     158   'SolidWP\Performance\Illuminate\Contracts\Mail\Mailable' => $strauss_src . '/illuminate/contracts/Mail/Mailable.php',
     159   'SolidWP\Performance\Illuminate\Contracts\Mail\Factory' => $strauss_src . '/illuminate/contracts/Mail/Factory.php',
    182160   'SolidWP\Performance\Illuminate\Contracts\Cookie\Factory' => $strauss_src . '/illuminate/contracts/Cookie/Factory.php',
    183161   'SolidWP\Performance\Illuminate\Contracts\Cookie\QueueingFactory' => $strauss_src . '/illuminate/contracts/Cookie/QueueingFactory.php',
    184    'SolidWP\Performance\lucatume\DI52\ServiceProvider' => $strauss_src . '/lucatume/di52/src/ServiceProvider.php',
    185    'SolidWP\Performance\lucatume\DI52\ContainerException' => $strauss_src . '/lucatume/di52/src/ContainerException.php',
    186    'SolidWP\Performance\lucatume\DI52\App' => $strauss_src . '/lucatume/di52/src/App.php',
    187    'SolidWP\Performance\lucatume\DI52\NotFoundException' => $strauss_src . '/lucatume/di52/src/NotFoundException.php',
    188    'SolidWP\Performance\lucatume\DI52\Container' => $strauss_src . '/lucatume/di52/src/Container.php',
    189    'SolidWP\Performance\lucatume\DI52\NestedParseError' => $strauss_src . '/lucatume/di52/src/NestedParseError.php',
    190    'SolidWP\Performance\lucatume\DI52\Builders\ReinitializableBuilderInterface' => $strauss_src . '/lucatume/di52/src/Builders/ReinitializableBuilderInterface.php',
    191    'SolidWP\Performance\lucatume\DI52\Builders\Factory' => $strauss_src . '/lucatume/di52/src/Builders/Factory.php',
    192    'SolidWP\Performance\lucatume\DI52\Builders\Resolver' => $strauss_src . '/lucatume/di52/src/Builders/Resolver.php',
    193    'SolidWP\Performance\lucatume\DI52\Builders\ClassBuilder' => $strauss_src . '/lucatume/di52/src/Builders/ClassBuilder.php',
    194    'SolidWP\Performance\lucatume\DI52\Builders\ValueBuilder' => $strauss_src . '/lucatume/di52/src/Builders/ValueBuilder.php',
    195    'SolidWP\Performance\lucatume\DI52\Builders\BuilderInterface' => $strauss_src . '/lucatume/di52/src/Builders/BuilderInterface.php',
    196    'SolidWP\Performance\lucatume\DI52\Builders\ClosureBuilder' => $strauss_src . '/lucatume/di52/src/Builders/ClosureBuilder.php',
    197    'SolidWP\Performance\lucatume\DI52\Builders\CallableBuilder' => $strauss_src . '/lucatume/di52/src/Builders/CallableBuilder.php',
    198    'SolidWP\Performance\lucatume\DI52\Builders\Parameter' => $strauss_src . '/lucatume/di52/src/Builders/Parameter.php',
     162   'SolidWP\Performance\Illuminate\Contracts\Cache\LockProvider' => $strauss_src . '/illuminate/contracts/Cache/LockProvider.php',
     163   'SolidWP\Performance\Illuminate\Contracts\Cache\Factory' => $strauss_src . '/illuminate/contracts/Cache/Factory.php',
     164   'SolidWP\Performance\Illuminate\Contracts\Cache\Repository' => $strauss_src . '/illuminate/contracts/Cache/Repository.php',
     165   'SolidWP\Performance\Illuminate\Contracts\Cache\Store' => $strauss_src . '/illuminate/contracts/Cache/Store.php',
     166   'SolidWP\Performance\Illuminate\Contracts\Cache\Lock' => $strauss_src . '/illuminate/contracts/Cache/Lock.php',
     167   'SolidWP\Performance\Illuminate\Contracts\Cache\LockTimeoutException' => $strauss_src . '/illuminate/contracts/Cache/LockTimeoutException.php',
     168   'SolidWP\Performance\Illuminate\Contracts\Events\Dispatcher' => $strauss_src . '/illuminate/contracts/Events/Dispatcher.php',
     169   'SolidWP\Performance\Illuminate\Contracts\Queue\QueueableCollection' => $strauss_src . '/illuminate/contracts/Queue/QueueableCollection.php',
     170   'SolidWP\Performance\Illuminate\Contracts\Queue\Job' => $strauss_src . '/illuminate/contracts/Queue/Job.php',
     171   'SolidWP\Performance\Illuminate\Contracts\Queue\QueueableEntity' => $strauss_src . '/illuminate/contracts/Queue/QueueableEntity.php',
     172   'SolidWP\Performance\Illuminate\Contracts\Queue\ShouldQueue' => $strauss_src . '/illuminate/contracts/Queue/ShouldQueue.php',
     173   'SolidWP\Performance\Illuminate\Contracts\Queue\Queue' => $strauss_src . '/illuminate/contracts/Queue/Queue.php',
     174   'SolidWP\Performance\Illuminate\Contracts\Queue\ShouldBeUniqueUntilProcessing' => $strauss_src . '/illuminate/contracts/Queue/ShouldBeUniqueUntilProcessing.php',
     175   'SolidWP\Performance\Illuminate\Contracts\Queue\Factory' => $strauss_src . '/illuminate/contracts/Queue/Factory.php',
     176   'SolidWP\Performance\Illuminate\Contracts\Queue\ShouldBeEncrypted' => $strauss_src . '/illuminate/contracts/Queue/ShouldBeEncrypted.php',
     177   'SolidWP\Performance\Illuminate\Contracts\Queue\ShouldBeUnique' => $strauss_src . '/illuminate/contracts/Queue/ShouldBeUnique.php',
     178   'SolidWP\Performance\Illuminate\Contracts\Queue\ClearableQueue' => $strauss_src . '/illuminate/contracts/Queue/ClearableQueue.php',
     179   'SolidWP\Performance\Illuminate\Contracts\Queue\EntityResolver' => $strauss_src . '/illuminate/contracts/Queue/EntityResolver.php',
     180   'SolidWP\Performance\Illuminate\Contracts\Queue\Monitor' => $strauss_src . '/illuminate/contracts/Queue/Monitor.php',
     181   'SolidWP\Performance\Illuminate\Contracts\Queue\EntityNotFoundException' => $strauss_src . '/illuminate/contracts/Queue/EntityNotFoundException.php',
     182   'SolidWP\Performance\Illuminate\Contracts\Debug\ExceptionHandler' => $strauss_src . '/illuminate/contracts/Debug/ExceptionHandler.php',
     183   'SolidWP\Performance\Illuminate\Support\Enumerable' => $strauss_src . '/illuminate/collections/Enumerable.php',
     184   'SolidWP\Performance\Illuminate\Support\Collection' => $strauss_src . '/illuminate/collections/Collection.php',
     185   'SolidWP\Performance\Illuminate\Support\Arr' => $strauss_src . '/illuminate/collections/Arr.php',
     186   'SolidWP\Performance\Illuminate\Support\LazyCollection' => $strauss_src . '/illuminate/collections/LazyCollection.php',
     187   'SolidWP\Performance\Illuminate\Support\Traits\EnumeratesValues' => $strauss_src . '/illuminate/collections/Traits/EnumeratesValues.php',
     188   'SolidWP\Performance\Illuminate\Support\HigherOrderWhenProxy' => $strauss_src . '/illuminate/collections/HigherOrderWhenProxy.php',
     189   'SolidWP\Performance\Illuminate\Support\MultipleItemsFoundException' => $strauss_src . '/illuminate/collections/MultipleItemsFoundException.php',
     190   'SolidWP\Performance\Illuminate\Support\HigherOrderCollectionProxy' => $strauss_src . '/illuminate/collections/HigherOrderCollectionProxy.php',
     191   'SolidWP\Performance\Illuminate\Support\ItemNotFoundException' => $strauss_src . '/illuminate/collections/ItemNotFoundException.php',
     192   'SolidWP\Performance\Illuminate\Support\Traits\Macroable' => $strauss_src . '/illuminate/macroable/Traits/Macroable.php',
     193   'SolidWP\Performance\Psr\Container\NotFoundExceptionInterface' => $strauss_src . '/psr/container/src/NotFoundExceptionInterface.php',
     194   'SolidWP\Performance\Psr\Container\ContainerInterface' => $strauss_src . '/psr/container/src/ContainerInterface.php',
     195   'SolidWP\Performance\Psr\Container\ContainerExceptionInterface' => $strauss_src . '/psr/container/src/ContainerExceptionInterface.php',
     196   'SolidWP\Performance\Psr\SimpleCache\CacheInterface' => $strauss_src . '/psr/simple-cache/src/CacheInterface.php',
     197   'SolidWP\Performance\Psr\SimpleCache\CacheException' => $strauss_src . '/psr/simple-cache/src/CacheException.php',
     198   'SolidWP\Performance\Psr\SimpleCache\InvalidArgumentException' => $strauss_src . '/psr/simple-cache/src/InvalidArgumentException.php',
    199199);
Note: See TracChangeset for help on using the changeset viewer.