Funkce wp_using_ext_object_cache

V nedávno jsem se podrobněji zabýval mechanismem stojícím za funkcí wp_suspend_cache_addition – popisoval jsem použití statické proměnné.

Při pohledu do těla funkce wp_using_ext_object_cache ovšem na statickou proměnnou nenarazíme – je použita globální proměnná. Proč?

function wp_using_ext_object_cache( $using = null ) {
	global $_wp_using_ext_object_cache;
	$current_using = $_wp_using_ext_object_cache;
	if ( null !== $using )
		$_wp_using_ext_object_cache = $using;
	return $current_using;
}

Při hledání ve zdrojovém kódu WordPressu jsem nenarazil na místo, kde by bylo ke globální proměnné přistupováno a bylo třeba ji inicializovat jako globální, namísto statické.

Doufám, že jsem jen něco přehlédl a že to není dáno jen tím, že úroveň PHP vývojářů má klesající tendenci (funkce wp_suspend_cache_addition je o dva roky starší než zde diskutovaná funkce).

Za jakékoli tipy předem děkuji.

Externí Object Cache ve WordPressu

V případě, že bychom ze své instalace WordPressu na serveru, kde máme k dispozici trochu víc, než jen Apache s PHP a MySQL, chtěli vymáčknou trochu víc, je možné dosadit vlastní backend pro Object Cache a změnit její podstatu z Run-Time Cache na persistentní.

Pojďme se společně podívat na to, jak je možnost vlastního backendu pro Object Cache řešena v samotném WordPressu a jak si, trochu si zapřeháním, třeba napsat vlastní backend.

Continue reading Externí Object Cache ve WordPressu

Object Cache ve WordPressu

Detailní studium implementace Object Cache API v jádře WordPressu nám dokáže odpovědět na to, jak lze optimalizovat náš kód, a to ať již tvoříme plugin či šablonu. Pokud budeme vědět, co za nás WordPress na poli výkonu řeší a co nikoli, můžeme bez obav svobodně tvořit. Kód, který nás zajímá lze nalézt převážně v souboru wp-includes/cache.php.

Continue reading Object Cache ve WordPressu

Dočasné zablokování přidávání nových hodnot do Object Cache

Ne vždy je přidávání nových hodnot do Object Cache ve WordPressu žádoucí. Jsou operace generující velké množství cachovatelných dat, které nejsou při dalším zpracování třeba – typicky třeba větší importy dat.

Continue reading Dočasné zablokování přidávání nových hodnot do Object Cache