initial
This commit is contained in:
+88
@@ -0,0 +1,88 @@
|
||||
<?php
|
||||
/**
|
||||
* Abstract Critical CSS provider class.
|
||||
*
|
||||
* @package automattic/jetpack-boost
|
||||
*/
|
||||
|
||||
namespace Automattic\Jetpack_Boost\Lib\Critical_CSS\Source_Providers\Providers;
|
||||
|
||||
/**
|
||||
* Class Provider
|
||||
*
|
||||
* @package Automattic\Jetpack_Boost\Modules\Critical_CSS\Providers
|
||||
*/
|
||||
abstract class Provider {
|
||||
|
||||
/**
|
||||
* The name of the provider.
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @access protected
|
||||
* @var string $name The name of the provider
|
||||
*/
|
||||
protected static $name;
|
||||
|
||||
/**
|
||||
* Each provider must return a list of URLs to generate CSS from.
|
||||
*
|
||||
* @param \WP_Post[] $context_posts The posts to generate CSS from.
|
||||
* @return array
|
||||
*/
|
||||
abstract public static function get_critical_source_urls( $context_posts = array() );
|
||||
|
||||
/**
|
||||
* What key should this provider look for during the current request?
|
||||
* Used in the front-end to determine where the CSS
|
||||
* might be stored for the current request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
abstract public static function get_current_storage_keys();
|
||||
|
||||
/**
|
||||
* Returns a list of all keys that this provider can provide, regardless
|
||||
* of the current URL.
|
||||
*/
|
||||
abstract public static function get_keys();
|
||||
|
||||
/**
|
||||
* Get a human-displayable string describing the given provider key.
|
||||
*
|
||||
* @param string $provider_key the key to describe.
|
||||
*/
|
||||
abstract public static function describe_key( $provider_key );
|
||||
|
||||
/**
|
||||
* Get the URL of the edit page for the given provider key.
|
||||
*
|
||||
* @param string $provider_key the key to edit.
|
||||
*/
|
||||
abstract public static function get_edit_url( $provider_key );
|
||||
|
||||
/**
|
||||
* Returns true if the key looks like it belongs to this provider.
|
||||
*
|
||||
* @param string $key The key.
|
||||
*/
|
||||
public static function owns_key( $key ) {
|
||||
return strncmp( static::$name, $key, strlen( static::$name ) ) === 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the name of the provider.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function get_provider_name() {
|
||||
return static::$name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the ratio of valid urls from the provider source urls
|
||||
* for the Critical CSS generation to be considered successful.
|
||||
*
|
||||
* @return float|int
|
||||
*/
|
||||
abstract public static function get_success_ratio();
|
||||
}
|
||||
Reference in New Issue
Block a user