Cachování: Použití memcached místo memcache
- venus
- Člen | 14
Navrhoval bych upravit třídu MemcachedStorage tak, aby používala rozšíření memcached místo memcache? Hlavním důvodem je to, že memcached nepotřebuje PEAR.
Další variantou (z důvodu zpětné kompatibility) by bylo přidat možnost výběru, zda se použije memcache nebo memcached.
Memcached vyžaduje PHP 5.2.0 nebo novější (stejně jako Nette) takže zde by problém být neměl.
Předem děkuji.
- Panda
- Člen | 569
A proč je to vlastně potřeba?
A jakou cestou chceš jít? Upravit stávající
MemcachedStorage
, nebo k němu vytvořit alternativu? První
varianta je poměrně neprůchodná (jak David psal, rozšíření memcache tu
bylo dřív a je větší šance, že na něj člověk narazí), u druhé mi
připadá zbytečné mít 2 drivery na totéž. Asi nejlepší cestou se mi
zdá přepsat stávající MemcachedStorage
tak, aby byl schopen
použít obě rozšíření.
- Panda
- Člen | 569
Spíš udělej autodetekci s tím, že preferováno by bylo staré
memcache
. Mělo by stačit na konec souboru s
MemcacheStorage
dát něco na způsob:
if (!extension_loaded('memcache') && extension_loaded('memcached')) {
class Memcache extends \Nette\Object
{
private $memcached;
public function __construct()
{
$this->memcached = new \Memcached();
}
public function connect($host, $port)
{
$m->addServer($host, $port);
}
// ...
}
}
Tím zajistíš dodefinování třídy Memcache
, která bude
sloužit jako obálka nad Memcached
v případě, že nebude
načtené rozšíření memcache
.
Editoval Panda (31. 12. 2010 21:01)
- raketoplan2005
- Člen | 147
+1
Rád bych tento požadavek podpořil, potože např. můj poskytovatel hostingu
použití memcached narozdíl od memcache umožňuje.
Editoval raketoplan2005 (5. 1. 2011 12:18)