При разработке плагина 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 миллисекунд.