upskill-event-manager/wordpress-dev/wordpress/wp-content/plugins/breeze/breeze.php
bengizmo d1509b3d60 feat(dev-env): implement backup-based development workflow
This commit introduces a more reliable and consistent approach to setting up
the development environment using backups:

- Add setup-from-backup.sh script for environment setup from existing backups
- Standardize script naming and organization
- Move obsolete scripts to bin/obsolete directory
- Update documentation with new workflow instructions
- Create migration guide for transitioning to new workflow
- Update Memory Bank with workflow improvements

The new workflow provides:
- More reliable environment setup
- Faster setup process
- Offline development capability
- Consistent development environments across team members

Breaking changes:
- setup-dev.sh is replaced by setup-from-backup.sh
- sync-and-setup.sh is replaced by separate scripts
- verify-with-wpcli.sh is no longer used

Migration path is documented in MIGRATION_GUIDE.md
2025-03-26 11:26:18 -03:00

271 lines
9.3 KiB
PHP

<?php
/**
* Plugin Name: Breeze
* Description: Breeze is a WordPress cache plugin with extensive options to speed up your website. All the options including Varnish Cache are compatible with Cloudways hosting.
* Version: 2.2.7
* Text Domain: breeze
* Domain Path: /languages
* Author: Cloudways
* Author URI: https://www.cloudways.com
* License: GPL2
* Network: true
*/
/**
* @copyright 2017 Cloudways https://www.cloudways.com
*
* This plugin is inspired from WP Speed of Light by JoomUnited.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
defined( 'ABSPATH' ) || die( 'No direct script access allowed!' );
if ( ! defined( 'BREEZE_PLUGIN_DIR' ) ) {
define( 'BREEZE_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
}
if ( ! defined( 'BREEZE_VERSION' ) ) {
define( 'BREEZE_VERSION', '2.2.7' );
}
if ( ! defined( 'BREEZE_SITEURL' ) ) {
define( 'BREEZE_SITEURL', get_site_url() );
}
if ( ! defined( 'BREEZE_MINIFICATION_CACHE' ) ) {
define( 'BREEZE_MINIFICATION_CACHE', WP_CONTENT_DIR . '/cache/breeze-minification/' );
}
if ( ! defined( 'BREEZE_CACHEFILE_PREFIX' ) ) {
define( 'BREEZE_CACHEFILE_PREFIX', 'breeze_' );
}
if ( ! defined( 'BREEZE_MINIFICATION_EXTRA' ) ) {
define( 'BREEZE_MINIFICATION_EXTRA', WP_CONTENT_DIR . '/cache/breeze-extra/' );
}
if ( ! defined( 'BREEZE_CACHE_CHILD_DIR' ) ) {
define( 'BREEZE_CACHE_CHILD_DIR', '/cache/breeze-minification/' );
}
if ( ! defined( 'BREEZE_WP_CONTENT_NAME' ) ) {
define( 'BREEZE_WP_CONTENT_NAME', '/' . wp_basename( WP_CONTENT_DIR ) );
}
if ( ! defined( 'BREEZE_BASENAME' ) ) {
define( 'BREEZE_BASENAME', plugin_basename( __FILE__ ) );
}
if ( ! defined( 'BREEZE_PLUGIN_URL' ) ) {
// Usage BREEZE_PLUGIN_URL . "some_image.png" from plugin folder
define( 'BREEZE_PLUGIN_URL', plugins_url() . '/' . dirname( plugin_basename( __FILE__ ) ) . '/' );
}
define( 'BREEZE_CACHE_DELAY', true );
define( 'BREEZE_CACHE_NOGZIP', true );
define( 'BREEZE_ROOT_DIR', str_replace( BREEZE_WP_CONTENT_NAME, '', WP_CONTENT_DIR ) );
// Options reader
require_once BREEZE_PLUGIN_DIR . 'inc/class-breeze-options-reader.php';
require_once BREEZE_PLUGIN_DIR . 'inc/class-breeze-cloudflare-helper.php';
// Compatibility checks
require_once BREEZE_PLUGIN_DIR . 'inc/plugin-incompatibility/class-breeze-incompatibility-plugins.php';
require_once BREEZE_PLUGIN_DIR . 'inc/plugin-incompatibility/class-breeze-woocs-compatibility.php';
// Check for if folder/files are writable.
require_once BREEZE_PLUGIN_DIR . 'inc/class-breeze-file-permissions.php';
// AMP compatibility.
require_once BREEZE_PLUGIN_DIR . 'inc/plugin-incompatibility/breeze-amp-compatibility.php';
// Helper functions.
require_once BREEZE_PLUGIN_DIR . 'inc/helpers.php';
require_once BREEZE_PLUGIN_DIR . 'inc/functions.php';
// Version Upgrade routines
require_once BREEZE_PLUGIN_DIR . 'inc/upgrade.php';
// Handle Heartbeat options.
require_once BREEZE_PLUGIN_DIR . 'inc/class-breeze-heartbeat-settings.php';
// action to purge cache
require_once BREEZE_PLUGIN_DIR . 'inc/cache/purge-varnish.php';
require_once BREEZE_PLUGIN_DIR . 'inc/cache/purge-cache.php';
require_once BREEZE_PLUGIN_DIR . 'inc/cache/purge-per-time.php';
require_once BREEZE_PLUGIN_DIR . 'inc/cache/class-purge-post-cache.php';
// Handle post exclude if shortcode.
require_once BREEZE_PLUGIN_DIR . 'inc/class-exclude-pages-by-shortcode.php';
// Handle the WP emoji library.
require_once BREEZE_PLUGIN_DIR . 'inc/class-breeze-disable-emoji-option.php';
// Prefetch URLs.
require_once BREEZE_PLUGIN_DIR . 'inc/class-breeze-dns-prefetch.php';
// Activate plugin hook
register_activation_hook( __FILE__, array( 'Breeze_Admin', 'plugin_active_hook' ) );
// Deactivate plugin hook
register_deactivation_hook( __FILE__, array( 'Breeze_Admin', 'plugin_deactive_hook' ) );
require_once BREEZE_PLUGIN_DIR . 'inc/breeze-admin.php';
require_once BREEZE_PLUGIN_DIR . 'inc/class-breeze-prefetch.php';
require_once BREEZE_PLUGIN_DIR . 'inc/class-breeze-preload-fonts.php';
// Load Store Local Files class.
require_once BREEZE_PLUGIN_DIR . 'inc/class-breeze-store-files-locally.php';
// Load Breeze Rollback Functionality.
if ( isset( $_GET['page'] ) && 'breeze-rollback' === $_GET['page'] ) {
require_once BREEZE_PLUGIN_DIR . 'inc/rollback/class-breeze-rollback.php';
}
// Include cronjobs (Gravatars curently(
require_once BREEZE_PLUGIN_DIR . 'inc/class-breeze-cache-cronjobs.php';
$gravatars_enabled = Breeze_Options_Reader::get_option_value( 'breeze-store-gravatars-locally' );
new Breeze_Cache_CronJobs( $gravatars_enabled );
if ( is_admin() || 'cli' === php_sapi_name() ) {
require_once BREEZE_PLUGIN_DIR . 'inc/breeze-configuration.php';
// config to cache
require_once BREEZE_PLUGIN_DIR . 'inc/cache/config-cache.php';
// cache when ecommerce installed
require_once BREEZE_PLUGIN_DIR . 'inc/cache/ecommerce-cache.php';
add_action(
'init',
function () {
new Breeze_Ecommerce_Cache();
Breeze_Query_Strings_Rules::when_woocommerce_settings_save();
},
0
);
} elseif ( ! empty( Breeze_Options_Reader::get_option_value( 'cdn-active' ) )
|| ! empty( Breeze_Options_Reader::get_option_value( 'breeze-minify-js' ) )
|| ! empty( Breeze_Options_Reader::get_option_value( 'breeze-minify-css' ) )
|| ! empty( Breeze_Options_Reader::get_option_value( 'breeze-minify-html' ) )
|| ! empty( Breeze_Options_Reader::get_option_value( 'breeze-defer-js' ) )
|| ! empty( Breeze_Options_Reader::get_option_value( 'breeze-move-to-footer-js' ) )
|| ! empty( Breeze_Options_Reader::get_option_value( 'breeze-delay-all-js' ) )
|| ! empty( Breeze_Options_Reader::get_option_value( 'breeze-enable-js-delay' ) )
) {
// Call back ob start
ob_start( 'breeze_ob_start_callback' );
}
// Breeze API
require_once BREEZE_PLUGIN_DIR . 'inc/class-breeze-api.php';
$api_enabled = Breeze_Options_Reader::get_option_value( 'breeze-enable-api' );
if ( $api_enabled ) {
$options = array(
'breeze-secure-api' => Breeze_Options_Reader::get_option_value( 'breeze-secure-api' ),
'breeze-api-token' => Breeze_Options_Reader::get_option_value( 'breeze-api-token' ),
);
new Breeze_Api_Handler( $options );
}
/**
* Store files locally, First buffer controller to occur in this plugin
*/
add_action(
'init',
function () {
ob_start( 'breeze_ob_start_localfiles_callback' );
},
5
);
// Compatibility with ShortPixel.
require_once BREEZE_PLUGIN_DIR . 'inc/compatibility/class-breeze-shortpixel-compatibility.php';
require_once BREEZE_PLUGIN_DIR . 'inc/compatibility/class-breeze-avada-cache.php';
require_once BREEZE_PLUGIN_DIR . 'inc/compatibility/class-breeze-elementor-template.php';
/**
* Buffer to work with the contents before any changes occured
*
* @param $buffer
*
* @return array|false|int|mixed|string|string[]
*/
function breeze_ob_start_localfiles_callback( $buffer ) {
// Store Files Locally
if ( class_exists( 'Breeze_Store_Files' ) ) {
$enabled_options = array();
$options = array(
'breeze-store-googlefonts-locally',
'breeze-store-googleanalytics-locally',
'breeze-store-facebookpixel-locally',
);
foreach ( $options as $option ) {
$enabled_options[ $option ] = Breeze_Options_Reader::get_option_value( $option );
}
$store_locally = new \Breeze_Store_Files();
$buffer = $store_locally->init( $buffer, $enabled_options );
}
// Return content
return $buffer;
}
// Call back ob start - stack
function breeze_ob_start_callback( $buffer ) {
if ( ! empty( $_SERVER ) && ! empty( $_SERVER['REQUEST_URI'] ) && strpos( $_SERVER['REQUEST_URI'], 'context=edit' ) ) {
return $buffer;
}
// Get buffer from minify
$buffer = apply_filters( 'breeze_minify_content_return', $buffer );
if ( ! empty( Breeze_Options_Reader::get_option_value( 'cdn-active' ) ) ) {
// Get buffer after remove query strings
$buffer = apply_filters( 'breeze_cdn_content_return', $buffer );
}
// Return content
return $buffer;
}
require_once BREEZE_PLUGIN_DIR . 'views/option-tabs-loader.php';
// Minify
require_once BREEZE_PLUGIN_DIR . 'inc/minification/breeze-minify-main.php';
require_once BREEZE_PLUGIN_DIR . 'inc/minification/breeze-minification-cache.php';
add_action(
'init',
function () {
new Breeze_Minify();
},
0
);
// CDN Integration
if ( ! class_exists( 'Breeze_CDN_Integration' ) ) {
require_once BREEZE_PLUGIN_DIR . 'inc/cdn-integration/breeze-cdn-integration.php';
require_once BREEZE_PLUGIN_DIR . 'inc/cdn-integration/breeze-cdn-rewrite.php';
add_action(
'init',
function () {
new Breeze_CDN_Integration();
},
0
);
}
// Refresh cache for ordered products.
require_once BREEZE_PLUGIN_DIR . 'inc/class-breeze-woocommerce-product-cache.php';
// WP-CLI commands
require_once BREEZE_PLUGIN_DIR . 'inc/wp-cli/class-breeze-wp-cli-core.php';
// Reset to default
add_action( 'breeze_reset_default', array( 'Breeze_Admin', 'plugin_deactive_hook' ), 80 );