188 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			188 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * Class Modules.
 | 
						|
 *
 | 
						|
 * Used in Core to type hint the $mod variable. For example, this way any calls to
 | 
						|
 * \Smush\WP_Smush::get_instance()->core()->mod->settings will be typehinted as a call to Settings module.
 | 
						|
 *
 | 
						|
 * @package Smush\Core
 | 
						|
 */
 | 
						|
 | 
						|
namespace Smush\Core;
 | 
						|
 | 
						|
use Smush\Core\Backups\Backups_Controller;
 | 
						|
use Smush\Core\Media\Media_Item_Controller;
 | 
						|
use Smush\Core\Media_Library\Ajax_Media_Library_Scanner;
 | 
						|
use Smush\Core\Media_Library\Background_Media_Library_Scanner;
 | 
						|
use Smush\Core\Media_Library\Media_Library_Slice_Data_Fetcher;
 | 
						|
use Smush\Core\Media_Library\Media_Library_Watcher;
 | 
						|
use Smush\Core\Png2Jpg\Png2Jpg_Controller;
 | 
						|
use Smush\Core\Resize\Resize_Controller;
 | 
						|
use Smush\Core\S3\S3_Controller;
 | 
						|
use Smush\Core\Smush\Smush_Controller;
 | 
						|
use Smush\Core\Stats\Global_Stats_Controller;
 | 
						|
use Smush\Core\Webp\Webp_Controller;
 | 
						|
use Smush\Core\Photon\Photon_Controller;
 | 
						|
 | 
						|
if ( ! defined( 'WPINC' ) ) {
 | 
						|
	die;
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Class Modules
 | 
						|
 */
 | 
						|
class Modules {
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Directory Smush module.
 | 
						|
	 *
 | 
						|
	 * @var Modules\Dir
 | 
						|
	 */
 | 
						|
	public $dir;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Main Smush module.
 | 
						|
	 *
 | 
						|
	 * @var Modules\Smush
 | 
						|
	 */
 | 
						|
	public $smush;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Backup module.
 | 
						|
	 *
 | 
						|
	 * @var Modules\Backup
 | 
						|
	 */
 | 
						|
	public $backup;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * PNG 2 JPG module.
 | 
						|
	 *
 | 
						|
	 * @var Modules\Png2jpg
 | 
						|
	 */
 | 
						|
	public $png2jpg;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Resize module.
 | 
						|
	 *
 | 
						|
	 * @var Modules\Resize
 | 
						|
	 */
 | 
						|
	public $resize;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * CDN module.
 | 
						|
	 *
 | 
						|
	 * @var Modules\CDN
 | 
						|
	 */
 | 
						|
	public $cdn;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Image lazy load module.
 | 
						|
	 *
 | 
						|
	 * @since 3.2
 | 
						|
	 *
 | 
						|
	 * @var Modules\Lazy
 | 
						|
	 */
 | 
						|
	public $lazy;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Webp module.
 | 
						|
	 *
 | 
						|
	 * @var Modules\Webp
 | 
						|
	 */
 | 
						|
	public $webp;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Cache background optimization controller - Bulk_Smush_Controller
 | 
						|
	 *
 | 
						|
	 * @var Modules\Bulk\Background_Bulk_Smush
 | 
						|
	 */
 | 
						|
	public $bg_optimization;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @var Modules\Product_Analytics
 | 
						|
	 */
 | 
						|
	public $product_analytics;
 | 
						|
 | 
						|
	public $backward_compatibility;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Modules constructor.
 | 
						|
	 */
 | 
						|
	public function __construct() {
 | 
						|
		new Deprecated_Hooks();// Handle deprecated hooks.
 | 
						|
 | 
						|
		new Api\Hub(); // Init hub endpoints.
 | 
						|
 | 
						|
		new Modules\Resize_Detection();
 | 
						|
		new Rest();
 | 
						|
 | 
						|
		if ( is_admin() ) {
 | 
						|
			$this->dir = new Modules\Dir();
 | 
						|
		}
 | 
						|
 | 
						|
		$this->smush   = new Modules\Smush();
 | 
						|
		$this->backup  = new Modules\Backup();
 | 
						|
		$this->png2jpg = new Modules\Png2jpg();
 | 
						|
		$this->resize  = new Modules\Resize();
 | 
						|
 | 
						|
		$page_parser = new Modules\Helpers\Parser();
 | 
						|
		$page_parser->init();
 | 
						|
 | 
						|
		$this->cdn               = new Modules\CDN( $page_parser );
 | 
						|
		$this->webp              = new Modules\WebP();
 | 
						|
		$this->lazy              = new Modules\Lazy( $page_parser );
 | 
						|
		$this->product_analytics = new Modules\Product_Analytics();
 | 
						|
 | 
						|
		$this->bg_optimization = new Modules\Bulk\Background_Bulk_Smush();
 | 
						|
 | 
						|
		$smush_controller = new Smush_Controller();
 | 
						|
		$smush_controller->init();
 | 
						|
 | 
						|
		$png2jpg_controller = Png2Jpg_Controller::get_instance();
 | 
						|
		$png2jpg_controller->init();
 | 
						|
 | 
						|
		$webp_controller = new Webp_Controller();
 | 
						|
		$webp_controller->init();
 | 
						|
 | 
						|
		$resize_controller = new Resize_Controller();
 | 
						|
		$resize_controller->init();
 | 
						|
 | 
						|
		$s3_controller = new S3_Controller();
 | 
						|
		$s3_controller->init();
 | 
						|
 | 
						|
		$backups_controller = new Backups_Controller();
 | 
						|
		$backups_controller->init();
 | 
						|
 | 
						|
		$library_scanner = new Ajax_Media_Library_Scanner();
 | 
						|
		$library_scanner->init();
 | 
						|
 | 
						|
		$background_lib_scanner = Background_Media_Library_Scanner::get_instance();
 | 
						|
		$background_lib_scanner->init();
 | 
						|
 | 
						|
		$media_library_watcher = new Media_Library_Watcher();
 | 
						|
		$media_library_watcher->init();
 | 
						|
 | 
						|
		$global_stats_controller = new Global_Stats_Controller();
 | 
						|
		$global_stats_controller->init();
 | 
						|
 | 
						|
		$plugin_settings_watcher = new Plugin_Settings_Watcher();
 | 
						|
		$plugin_settings_watcher->init();
 | 
						|
 | 
						|
		$animated_status_controller = new Animated_Status_Controller();
 | 
						|
		$animated_status_controller->init();
 | 
						|
 | 
						|
		$media_library_slice_data_fetcher = new Media_Library_Slice_Data_Fetcher( is_multisite(), get_current_blog_id() );
 | 
						|
		$media_library_slice_data_fetcher->init();
 | 
						|
 | 
						|
		$media_item_controller = new Media_Item_Controller();
 | 
						|
		$media_item_controller->init();
 | 
						|
 | 
						|
		$optimization_controller = new Optimization_Controller();
 | 
						|
		$optimization_controller->init();
 | 
						|
 | 
						|
		$photon_controller = new Photon_Controller();
 | 
						|
		$photon_controller->init();
 | 
						|
	}
 | 
						|
 | 
						|
}
 |