About Features Downloads Getting Started Documentation Events Support GitHub

Site Tools


development:architecture:caching

Caching

VuFind uses caching in several places to improve performance.

The Cache Manager and Its Caches

VuFind has a VuFind\Cache\Manager class which pre-configures Laminas cache objects and/or directory locations for several named caches. Each of these caches is used slightly differently.

  • config - stores top-level Laminas configurations; manually set up in application.config.php but included in the cache manager to assist with automated cache clearing in the admin panel.
  • cover - stores cover images; used by the cover loader to store downloaded image files.
  • language - stores parsed i18n language files; set up as part of i18n initialization.
  • object - stores serialized PHP objects; this is the most general-purpose cache in VuFind, shared by several different consumers. If you want to cache data of your own, this is a good place to put it, as long as you name your cache keys with appropriate uniqueness.
  • searchspecs - stores parsed/processed YAML search specification configurations; used by the SearchSpecsReader.

Cache Locations

The location of the cache may vary depending on various environment variables, your VuFind version, and whether you are running code through Apache or from the command line. See VuFind\Cache\Manager::getCacheDir for the rules that apply in your particular version of VuFind.

Consumers of the Object Cache

As noted above, VuFind's object cache is the best general-purpose place for storing data, as long as you use cache keys that do not conflict with other VuFind components. Here is a list of current keys reserved in the object cache (current as of VuFind 3.0):

  • alephTranslator - used by VuFind\ILS\Driver\Aleph
  • edsAuthenticationToken - used by VuFindSearch\Backend\EDS\Backend
  • solrSearchAdvancedFacets*, solrSearchHomeFacets* - used by VuFind\Controller\SearchController
  • summonSearchAdvancedFacets - used by VuFind\Controller\SummonController
  • VoyagerRestful-* - used by VuFind\ILS\Driver\VoyagerRestful
development/architecture/caching.txt · Last modified: 2020/09/22 13:54 by demiankatz