Как кэшировать запрос с phpFastCache без Composer?

Я пытаюсь использовать phpFastCache для всех нужд кэширования, но я действительно не понимаю, как его использовать. Я понимаю, что это примеры, и да, я попробовал их, и они успешны, но это не помогает мне с точки зрения того, что мне нужно делать.

Я пытаюсь кэшировать запрос (точнее, протокол исходного запроса Valve).

Вот результаты, также, я использую отдельный скрипт SourceQuery, и это только результаты (queryresults.php):

$serveroneip = "example.ip";
$serveroneport = "27015"$server = new SourceQuery($serveroneip, $serveroneport);
$infos  = $server->getInfos();

А затем просто добавьте это на страницу index.php:

<?php
include ("queryresults.php")
?>
<p>'.$infos['players'].' / '.$infos['places'].'</p>

Это просто напечатало бы текущее количество игроков и общее количество игроков на исходном сервере. Я в основном пытаюсь кэшировать этот запрос, потому что это помогает время загрузки страницы.

Если я звучу как полный нуб, мне очень жаль. Это всего лишь проблема, которая расстраивала меня последние несколько дней, и я выглядел здесь как последнее средство. Если вам нужна дополнительная информация, я с радостью предоставлю ее! Большое спасибо за помощь!

0

Решение

Начиная с Phpfastcache V5, библиотека соответствует PSR6 интерфейс

Так что в основном код будет довольно простым, а с помощью composer — еще проще:

composer require phpfastcache/phpfastcache

Если он не установлен глобально:

php composer.phar require phpfastcache/phpfastcache

Композитор.phar можно скачать здесь: https://getcomposer.org/composer.phar

Теперь код, с вашего случая:

use Phpfastcache\CacheManager;

/**
* You have two many ways...
* Via composer:
*/
require 'vendor/autoload.php';

/**
* Or if you have absolutely no choice, we provide a standalone autoloader
*/
// require 'phpfastcache/src/autoload.php';

/**
* We are using the default but most used driver: Files
* You can use redis/predis, etc but it's a bit more complexe
*/
$cachePool = CacheManager::getInstance('Files');
$cacheItem = $cachePool->getItem('mySteamServer');

/**
* Does we found something in cache ?
*/
if($cacheItem->isHit()){
/**
* Yes, let's use it
*/
$infos = $cacheItem->get();
}else{
/**
* Nahh, let's retrieve the server data and cache them
*/
$serveroneip = "example.ip";
$serveroneport = "27015";
$server = new SourceQuery($serveroneip, $serveroneport);
$infos  = $server->getInfos();
$cacheItem->set($infos)->expiresAfter(300);// The TTL in seconds, here is 5 minutes
$cachePool->save($cacheItem);// Persist the cache item
}

/**
* Rest of your code goes here
*/

В любом случае, я настоятельно рекомендую вам использовать композитора. Это облегчит управление вашими зависимостями и позволит вам полностью контролировать автоматическое обновление, управление конфликтами, автозагрузку кошмара и т. Д.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]