====== Caching ====== VuFind uses caching in several places to improve performance. ===== The Cache Manager and Its Caches ===== VuFind has a [[https://github.com/vufind-org/vufind/blob/dev/module/VuFind/src/VuFind/Cache/Manager.php|VuFind\Cache\Manager]] class which pre-configures [[development:architecture:laminas|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 [[https://github.com/vufind-org/vufind/blob/dev/config/application.config.php|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 [[https://github.com/vufind-org/vufind/blob/dev/module/VuFind/src/VuFind/Cover/Loader.php|cover loader]] to store downloaded image files. * language - stores parsed i18n language files; set up as part of [[https://github.com/vufind-org/vufind/blob/v3.0/module/VuFind/src/VuFind/Service/Factory.php#L883|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 [[https://github.com/vufind-org/vufind/blob/dev/module/VuFind/src/VuFind/Config/SearchSpecsReader.php|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