Hi all,

I've been tinkering with caching a lot recently, so I have started a series of 
proposals to assist developers in integrating caching into their Zend Framework 
applications. To get the process going I have proposed two new Zend_Cache 
backends:

Zend_Cache_Backend_Static
http://framework.zend.com/wiki/pages/viewpage.action?pageId=8947732

A simple means of caching pages into static HTML files, and includes a tagging 
system to offset the major disadvantage of static caching which is of course 
expiring/invalidating the files without needing to manually track them all by 
hand. The power of a static file cache is that it is far faster than the 
current Page cache even with a memory backend. It also removes the need for a 
caching proxy like Squid. It's widely recognised as one of the fastest caching 
strategies possible for web applications since it completely avoids PHP and 
lets the HTTP server reach it maximum potential throughput by avoiding any 
unnecessary processing.

Zend_Cache_Backend_Database
http://framework.zend.com/wiki/pages/viewpage.action?pageId=9437191

Offers a nice database backed cache for data which requires longer term 
caching. This creates a persistent cache which does not rely on the filesystem, 
scales well, and which is not exposed to the volatility of memory caching 
(because then stuff vanishes mysteriously when you switch off machines :)). 
Database caching is obviously slow but there are a lot of precedents. Just for 
starters, have a look at where Zend_Openid can store time limited association 
data! Often a database cache is used as a more dependable secure cache which 
can be re-cached into memory (without fear of losing any of the data) for 
faster access as part of a layered cache system.

Future proposals will move towards an approach of expanding caching strategies 
available from the framework, and integrating those caches and easy to use APIs 
deeper into the framework through a mix of helpers and plugins. The goal is to 
minimise setup source code and development time, and offer a complete cache 
management subsystem available from all levels of the application.

I hope these first proposals meet with the community's approval and I invite 
any comments.

Thanks!

Paddy

 Pádraic Brady

http://blog.astrumfutura.com
http://www.survivethedeepend.com
OpenID Europe Foundation Irish Representative

Reply via email to