SimpleCacheAPCu
This is an implementation of PSR-16 for
the APCu caching engine., (*1)
Two different classes are provided. The first just provides a PSR-16 compliant
interface to APCu and the second provides encryption of the cached data via
the libsodium extension., (*2)
Please refer to the files INSTALL.md
, USAGE.md
,
and SURVIVAL.md
for more information specific to
SimpleCacheAPCu., (*3)
For instructions specific to the encryption option, see the file
SODIUM.md
., (*4)
Please refer to the file LICENSE.md
for the terms of the MIT
License this software is released under., (*5)
About APCu Caching
APCu caches key => value
pairs in
the web server memory. The key
must be a string but the value
can be any
type that can be serialized., (*6)
Effective use of APCu can greatly improve the performance of your web
applications, reducing how often your web application needs to make database or
filesystem queries or process data from those queries., (*7)
The information can usually be retrieved straight from system memory already in
the form your web application needs it to be in, radically reducing server
response times to client queries., (*8)
APCu cache only lives in the web server memory. If you restart the web server
daemon, everything stored is gone. If the web server needs the memory for its
own uses, it will dump some or all of the key => value
pairs., (*9)
If you wish to have a more persistent cache than APCu provides, you should use
SimpleCacheRedis
instead., (*10)
When web applications need information that can be cached, a unique key for
that information that should be used. The web application then attempts to
fetch the needed information from the cache., (*11)
If it is there, the web application can then immediately use it resulting in
fast response times. When the information is not there (what is called a
âmissâ) the web application then fetches the information by another means (e.g.
database query with processing of the data) and then store it in the cache so
it is highly likely to be there the next time it is queried from the cache., (*12)
If you need a networked cache, APCu is not the best choice for you, see the
Redis link given earlier. However for local caching on the public facing
server, it is incredibly lightweight and fast., (*13)
About PHP-FIG and PSR-16
PHP-FIG is the PHP Framework Interop Group. They
exist largely to create standards that make it easier for different developers
around the world to create different projects that will work well with each
other. PHP-FIG was a driving force behind the PSR-0 and PSR-4 auto-load
standards for example that make it much much easier to integrate PHP class
libraries written by other people into your web applications., (*14)
The PHP-FIG previously released PSR-6 as a Caching Interface standard but the
interface requirements of PSR-6 are beyond the needs of many web application
developers. KISS - âKeep It Simple Sillyâ applies for many of us who do not
need some of the features PSR-6 requires., (*15)
To meet the needs of those of us who do not need what PSR-6 implements,
PSR-16 was developed and is now an
accepted standard., (*16)
When I read PSR-16, the defined interface it was not that different from my
own APCu caching class that I have personally been using for years. So I
decided to make my class meet the interface requirements, and this is the
result., (*17)
Coding Standard
The coding standard used is primarily
PSR-2 except with the closing ?>
allowed, and the addition of some
PHPDoc requirements largely but not
completely borrowed from the
PEAR standard., (*18)
The intent is switch PHPDoc standard to
PSR-5
if it ever becomes an accepted standard., (*19)
The phpcs
sniff rules being used: psr2.phpcs.xml, (*20)
About AWonderPHP
I may become homeless before the end of 2018. I do not know how to survive, I
try but what I try, it always seems to fail. This just is not a society people
like me are meant to be a part of., (*21)
If I do become homeless, I fear my mental health will deteriorate at an
accelerated rate and I do not want to witness that happening to myself., (*22)
AWonderPHP is my attempt to clean up and package a lot of the PHP classes I
personally use so that something of me will be left behind., (*23)
If you wish to help, please see the SURVIVAL.md file., (*24)
Thank you for your time., (*25)
EOF, (*26)