PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more / 3.3.7
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more v3.3.7
4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 trunk 1.0.0 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.5.0 1.6.0 1.6.1 1.6.2 1.6.3 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.2.0 2.2.1 2.2.2 2.3.0 2.3.1 2.3.2 2.3.3 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.1.3 3.2.0 3.2.1 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.6.8 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 3.9.1 3.9.10 3.9.11 3.9.12 3.9.13 3.9.14 3.9.15 3.9.16 3.9.17 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9 4.0.0 4.0.1 4.0.10 4.0.11 4.0.12 4.0.13 4.0.14 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.0.9 4.1.0 4.1.1 4.1.10 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.2.0 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 4.2.9 4.3.0 4.3.1 4.4.0 4.4.1 4.4.10 4.4.11 4.4.2 4.4.3 4.4.4 4.4.5 4.4.6 4.4.7 4.4.8 4.4.9 4.5.0 4.5.1
embedpress / vendor / wpdevelopers / embera / src / Embera / Http / HttpClientCache.php
embedpress / vendor / wpdevelopers / embera / src / Embera / Http Last commit date
HttpClient.php 5 years ago HttpClientCache.php 5 years ago HttpClientInterface.php 5 years ago OembedClient.php 5 years ago
HttpClientCache.php
79 lines
1 <?php
2 /**
3 * HttpClientCache.php
4 *
5 * @package Embera
6 * @author Michael Pratt <yo@michael-pratt.com>
7 * @link http://www.michael-pratt.com/
8 *
9 * For the full copyright and license information, please view the LICENSE
10 * file that was distributed with this source code.
11 */
12
13 namespace Embera\Http;
14
15 use Embera\Cache\CacheInterface;
16
17 /**
18 * This Class is a Decorator of the HttpClient Class.
19 * Its main use is to wrap The Cache Class outside of the
20 * response.
21 */
22 class HttpClientCache implements HttpClientInterface
23 {
24 /** @var HttpClientInterface */
25 protected $httpClient;
26
27 /** @var CacheInterface */
28 protected $cachingEngine;
29
30 /**
31 * Construct
32 *
33 * @param HttpClientInterface $httpClient
34 * @return void
35 */
36 public function __construct(HttpClientInterface $httpClient)
37 {
38 $this->httpClient = $httpClient;
39 }
40
41 /**
42 * Sets the Caching Engine
43 *
44 * @param CacheInterface $engine
45 * @return void
46 */
47 public function setCachingEngine(CacheInterface $engine)
48 {
49 $this->cachingEngine = $engine;
50 }
51
52 /** inline {@inheritdoc} */
53 public function setConfig(array $config = [])
54 {
55 $this->httpClient->setConfig($config);
56 }
57
58 /** inline {@inheritdoc} */
59 public function fetch($url, array $params = [])
60 {
61 $key = md5(serialize([ 'url' => $url, 'params' => $params ]));
62 if ($cachedResponse = $this->cachingEngine->get($key)) {
63 return $cachedResponse;
64 }
65
66 try {
67
68 if ($response = $this->httpClient->fetch($url, $params)) {
69 $this->cachingEngine->set($key, $response);
70 return $response;
71 }
72
73 } catch (\Exception $e) {}
74
75 return false;
76 }
77
78 }
79