При разработке плагина WordPress нам необходимо использовать содержимое таблиц базы данных, не относящихся к WordPress. Прямой доступ к таблицам базы данных-самый быстрый способ, но он кажется слишком сложным. Поэтому мы решили использовать метод доступа к сервису RESTful для удаленного вызова данных. Еще одна проблема, возникшая в это время, заключается в том, что каждый раз, когда нам нужно получить удаленный доступ через HTTP-запросы, это будет влиять на производительность. Почему бы не сохранить удаленно полученные данные в memcache, что значительно экономит время HTTP-запросов.
Код выглядит следующим образом:
function getVarValue($var_name, $url) {
// Connect to Memcache
$memcache_obj = memcache_connect('localhost', 11211);
$obj_memcache = memcache_get($memcache_obj, $var_name);
if ($obj_memcache) {
// If a variable is found in memcache, it is directly fetched
$object = unserialize($obj_memcache);
} else {
// Getting variable content
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$str = curl_exec($curl);
curl_close($curl);
$object = json_decode($str);
// Store variable contents in Memcache
memcache_set($memcache_obj, $var_name, serialize($object), MEMCACHE_COMPRESSED);
}
return $object;
}При вызове вам нужно только:
$myValue = getVarValue('myVar', 'http://api.myserver.com/myval?param=value');Все в порядке.
На самом деле, чтобы вернуть страницу, для которой изначально требовалось 1200 миллисекунд, требуется всего 400 миллисекунд.