note 125057 added to book.apcu
| From: | boefje at hotmail dot com | Date: | Fri, 29 May 2020 10:55:24 +0000 |
| Subject: | note 125057 added to book.apcu | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-214692@lists.php.net to get a copy of this message | ||
To use apcu, the apcu extension has to be installed. You can find it here https://pecl.php.net/package/APCu
Note: apcu is not the same as apc!
APCu is the official replacement for the outdated APC extension. APC provided both opcode caching
(opcache) and object caching. As PHP versions 5.5 and above include their own opcache, APC was no
longer compatible, and its opcache functionality became useless. The developers of APC then created
APCu, which offers only the object caching (read "in memory data caching") functionality
(they removed the outdated opcache).
Wondering how to use apcu? The following example should give you a basic understanding.
<?php
date_default_timezone_set('Europe/Amsterdam');
$apcuAvailabe = function_exists('apcu_enabled') && apcu_enabled();
if($apcuAvailabe)
{
//apcu_clear_cache();
$test1 = apcu_fetch('test1');
$test2 = apcu_fetch('test2');
}
$test1[] = rand(1, 1000);
$test2[] = rand(1, 1000);
if($apcuAvailabe)
{
apcu_store('test1', $test1);
apcu_store('test2', $test2);
}
echo sprintf('current - value = %s<br/>', implode(' ,', $test1));
echo sprintf('current - value = %s<br/>', implode(' ,', $test2));
$aPCUIterator = new APCUIterator();
echo sprintf('totalCount = %s<br/>', $aPCUIterator->getTotalCount());
//echo sprintf('totalHits = %s<br/>', $aPCUIterator->getTotalHits()); // Not
implemneted/available?
echo sprintf('totalSize = %s<br/>', $aPCUIterator->getTotalSize());
echo '----------------------------------<br/>';
$aPCUIterator->rewind();
echo sprintf('key = %s<br/>', $aPCUIterator->key());
echoCurrent($aPCUIterator->current());
$aPCUIterator->next();
echo '----------------------------------<br/>';
echo sprintf('key = %s<br/>', $aPCUIterator->key());
echoCurrent($aPCUIterator->current());
echo sprintf('valid = %s<br/>', $aPCUIterator->valid() ? 'true' :
'false');
function echoCurrent($current)
{
echo sprintf('current - type = %s<br/>', $current['type']);
echo sprintf('current - key = %s<br/>', $current['key']);
echo sprintf('current - value = %s<br/>', implode(' ,',
$current['value']));
//echo sprintf('current - num_hits = %s<br/>', $current['num_hits']);
// Not implemneted/available?
echo sprintf('current - mtime = %s<br/>', date("d-m-Y H:i:s",
$current['mtime']));
echo sprintf('current - creation_time = %s<br/>', date("d-m-Y H:i:s",
$current['creation_time']));
echo sprintf('current - deletion_time = %s<br/>', date("d-m-Y H:i:s",
$current['deletion_time']));
echo sprintf('current - access_time = %s<br/>', date("d-m-Y H:i:s",
$current['access_time']));
//echo sprintf('current - ref_count = %s<br/>',
$current['ref_count']); // Not implemneted/available?
echo sprintf('current - mem_size = %s<br/>', $current['mem_size']);
//echo sprintf('current - ttl = %s<br/>', $current['ttl']); // Not
implemneted/available?
}
?>
----
Server IP: 45.112.84.4
Probable Submitter: 103.51.166.36 (proxied: 77.164.198.95)
----
Manual Page -- http://php.net/manual/en/book.apcu.php
Edit -- https://master.php.net/note/edit/125057
Del: integrated -- https://master.php.net/note/delete/125057/integrated
Del: useless -- https://master.php.net/note/delete/125057/useless
Del: bad code -- https://master.php.net/note/delete/125057/bad+code
Del: spam -- https://master.php.net/note/delete/125057/spam
Del: non-english -- https://master.php.net/note/delete/125057/non-english
Del: in docs -- https://master.php.net/note/delete/125057/in+docs
Del: other reasons-- https://master.php.net/note/delete/125057
Reject -- https://master.php.net/note/reject/125057
Search -- https://master.php.net/manage/user-notes.php