WP_CLI
WpHttpCacheManager::filter_pre_http_request
short circuit wp http api with cached file
Method of the class: WpHttpCacheManager{}
No Hooks.
Returns
null. Nothing (null).
Usage
$WpHttpCacheManager = new WpHttpCacheManager(); $WpHttpCacheManager->filter_pre_http_request( $response, $args, $url );
- $response(required)
- .
- $args(required)
- .
- $url(required)
- .
WpHttpCacheManager::filter_pre_http_request() WpHttpCacheManager::filter pre http request code WP-CLI 2.13.0-alpha
public function filter_pre_http_request( $response, $args, $url ) {
// check if whitelisted
if ( ! isset( $this->whitelist[ $url ] ) ) {
return $response;
}
// check if downloading
if ( 'GET' !== $args['method'] || empty( $args['filename'] ) ) {
return $response;
}
// check cache and export to designated location
$filename = $this->cache->has( $this->whitelist[ $url ]['key'], $this->whitelist[ $url ]['ttl'] );
if ( $filename ) {
WP_CLI::log( sprintf( 'Using cached file \'%s\'...', $filename ) );
if ( copy( $filename, $args['filename'] ) ) {
// simulate successful download response
return [
'response' => [
'code' => 200,
'message' => 'OK',
],
'filename' => $args['filename'],
];
}
WP_CLI::error( sprintf( 'Error copying cached file %s to %s', $filename, $url ) );
}
return $response;
}