add wp-rocket

This commit is contained in:
nguyen dung
2022-02-18 19:09:35 +07:00
parent 39b8cb3612
commit 3110d00ee7
927 changed files with 271703 additions and 2 deletions

View File

@@ -0,0 +1,100 @@
<?php
namespace WP_Rocket\Engine\Activation;
use WP_Rocket\Engine\Container\Container;
use WP_Rocket\ThirdParty\Hostings\HostResolver;
/**
* Plugin activation controller
*
* @since 3.6.3
*/
class Activation {
/**
* Aliases in the container for each class that needs to call its activate method
*
* @var array
*/
private static $activators = [
'advanced_cache',
'capabilities_manager',
'wp_cache',
];
/**
* Performs these actions during the plugin activation
*
* @return void
*/
public static function activate_plugin() {
$container = new Container();
$container->add( 'template_path', WP_ROCKET_PATH . 'views' );
$container->addServiceProvider( 'WP_Rocket\Engine\Activation\ServiceProvider' );
$container->addServiceProvider( 'WP_Rocket\ThirdParty\Hostings\ServiceProvider' );
$host_type = HostResolver::get_host_service();
if ( ! empty( $host_type ) ) {
array_unshift( self::$activators, $host_type );
}
foreach ( self::$activators as $activator ) {
$container->get( $activator );
}
// Last constants.
define( 'WP_ROCKET_PLUGIN_NAME', 'WP Rocket' );
define( 'WP_ROCKET_PLUGIN_SLUG', sanitize_key( WP_ROCKET_PLUGIN_NAME ) );
if ( defined( 'SUNRISE' ) && SUNRISE === 'on' && function_exists( 'domain_mapping_siteurl' ) ) {
require WP_ROCKET_INC_PATH . 'domain-mapping.php';
}
require WP_ROCKET_FUNCTIONS_PATH . 'options.php';
require WP_ROCKET_FUNCTIONS_PATH . 'formatting.php';
require WP_ROCKET_FUNCTIONS_PATH . 'i18n.php';
require WP_ROCKET_FUNCTIONS_PATH . 'htaccess.php';
if ( class_exists( 'WPaaS\Plugin' ) ) {
require WP_ROCKET_3RD_PARTY_PATH . 'hosting/godaddy.php';
}
/**
* WP Rocket activation.
*
* @since 3.1.5
*/
do_action( 'rocket_activation' );
if ( rocket_valid_key() ) {
// Add All WP Rocket rules of the .htaccess file.
flush_rocket_htaccess();
}
// Create the cache folders (wp-rocket & min).
rocket_init_cache_dir();
// Create the config folder (wp-rocket-config).
rocket_init_config_dir();
// Update customer key & licence.
wp_remote_get(
WP_ROCKET_WEB_API . 'activate-licence.php',
[
'blocking' => false,
]
);
wp_remote_get(
home_url(),
[
'timeout' => 0.01,
'blocking' => false,
'user-agent' => 'WP Rocket/Homepage Preload',
'sslverify' => apply_filters( 'https_local_ssl_verify', false ), // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
]
);
}
}

View File

@@ -0,0 +1,12 @@
<?php
namespace WP_Rocket\Engine\Activation;
interface ActivationInterface {
/**
* Executes this method on plugin activation
*
* @return void
*/
public function activate();
}

View File

@@ -0,0 +1,53 @@
<?php
namespace WP_Rocket\Engine\Activation;
use WP_Rocket\Engine\Container\ServiceProvider\AbstractServiceProvider;
use WP_Rocket\Engine\Container\ServiceProvider\BootableServiceProviderInterface;
/**
* Service Provider for the activation process.
*
* @since 3.6.3
*/
class ServiceProvider extends AbstractServiceProvider implements BootableServiceProviderInterface {
/**
* The provides array is a way to let the container
* know that a service is provided by this service
* provider. Every service that is registered via
* this service provider must have an alias added
* to this array or it will be ignored.
*
* @var array
*/
protected $provides = [
'advanced_cache',
'capabilities_manager',
'wp_cache',
];
/**
* Executes this method when the service provider is registered
*
* @return void
*/
public function boot() {
$this->getContainer()
->inflector( 'WP_Rocket\Engine\Activation\ActivationInterface' )
->invokeMethod( 'activate', [] );
}
/**
* Registers the option array in the container.
*/
public function register() {
$filesystem = rocket_direct_filesystem();
$this->getContainer()->add( 'advanced_cache', 'WP_Rocket\Engine\Cache\AdvancedCache' )
->withArgument( $this->getContainer()->get( 'template_path' ) . '/cache/' )
->withArgument( $filesystem );
$this->getContainer()->add( 'capabilities_manager', 'WP_Rocket\Engine\Capabilities\Manager' );
$this->getContainer()->add( 'wp_cache', 'WP_Rocket\Engine\Cache\WPCache' )
->withArgument( $filesystem );
}
}