Skip to content

Technical Plugin Cache

Daniel Neto edited this page Oct 29, 2026 · 1 revision

Technical: Cache plugin

Caches pages/data and processes expiration and queued invalidation.

Audience: developers, advanced administrators and AI-assisted diagnosis. Plugin catalog.

Source baseline

  • Review date: 2026-10-29. Method: static source analysis; runtime/provider behavior was not exercised.
  • Code ownership: AVideo Streamer repository.
  • Reported version: 10.0.
  • Source revision: 7d48f2dfc0289236718a3f9fba7c5ffecff4a37f.
  • Entry class file: Cache.php.

Confirm the installed plugin version independently of the Streamer version. Configuration defaults below are not a dump of this installation's saved settings.

Behavior and operational checks

Request-local SQL caching, persistent object/database caching and page caching are different layers. executeEveryMinute() processes scheduled invalidations. Check the Scheduler and the specific cache layer before interpreting stale data as a failed write.

Dependencies

Plugin Required by declaration Source reason
User_Location Optional Optional per-location cache variants

Literal runtime plugin references: User_Location. These calls do not mean every referenced plugin is mandatory.

Hook integration

Override Implementation
getTags() Cache.php:17
updateScript() Cache.php:44
getStart() Cache.php:145
getEnd() Cache.php:236
getPluginMenu() Cache.php:382
getFooterCode() Cache.php:389
executeEveryMinute() Cache.php:547

Configuration assignments

These are direct assignments inside getEmptyDataObject(), not evaluated effective defaults. Stored plugins.object_data, globals, structured values and conditional branches may alter runtime behavior. Private/default credential values are omitted.

Field Literal default or expression type Literal source label/help Evidence
enableCachePerUser false — source
enableCacheForLoggedUsers false — source
cacheTimeInSeconds 600 — source
cacheDir Computed/structured; inspect source — source
logPageLoadTime false — source
stopBotsFromNonCachedPages false — source
deleteStatisticsDaysOld 180 — source
maxCachePayloadSizeBytes Computed/structured; inspect source — source
cacheFallbackRetentionDays Computed/structured; inspect source — source
cacheDeleteBatchSize Computed/structured; inspect source — source
cacheDeleteMaxBatchesHttp Computed/structured; inspect source — source
cacheDeleteMaxBatchesCli Computed/structured; inspect source — source

Files and request surface

This inventory distinguishes implementation files from an API specification. Includes, templates, callbacks and CLI workers are not interchangeable HTTP endpoints. Request-field names below are direct source references, not a complete schema or permission declaration.

File Source role Direct request fields observed
Cache.php plugin entry class debug_cache, isInfiniteScroll
Objects/CacheDB.php class/helper implementation —
Objects/CacheLikeEscaper.php class/helper implementation —
Objects/Cache_schedule_delete.php class/helper implementation —
Objects/CachesInDB.php class/helper implementation —
Objects/CachesInDBMem.php class/helper implementation —
crontab.php PHP page/include/worker; inspect caller —
deleteStatistics.json.php JSON entry point; inspect caller and guard —
deleteVideo.json.php JSON entry point; inspect caller and guard —
install/install.sql schema/migration SQL —
install/memTable.sql schema/migration SQL —
install/updateV10.0.sql schema/migration SQL —
install/updateV3.0.sql schema/migration SQL —
install/updateV4.0.sql schema/migration SQL —
install/updateV5.0.sql schema/migration SQL —
install/updateV6.0.sql schema/migration SQL —
install/updateV7.0.sql schema/migration SQL —
install/updateV8.0.sql schema/migration SQL —
install/updateV9.0.sql schema/migration SQL —
pluginMenu.js browser/worker JavaScript; verify loader —

Data and migrations

Tables named in available CREATE TABLE statements: CachesInDB, CachesInDB_Blob, CachesInDB_Memory, cache_schedule_delete. Apply installation/update behavior through the owning plugin; this reference is not a script for running historical migrations manually.

Main-file named symbols

Visibility and implementation semantics must be checked in source. Nonempty string defaults are represented as . This is a symbol reference, not a stable public API promise.

Function or method Source
getPluginDependencies() 11
getTags() 17
getDescription() 24
getName() 32
getUUID() 36
getPluginVersion() 40
updateScript() 44
getEmptyDataObject() 58
getCacheDir($ignoreFirstPage = true) 77
getFileName() 111
isFirstPage() 140
getStart() 145
getEnd() 236
isREQUEST_URIWhitelisted() 286
isBlacklisted() 313
shouldSkipPageCacheForCurrentRequest() 319
start() 354
end($type = '<string>') 362
getPluginMenu() 382
getFooterCode() 389
getCacheMetaData() 396
_getCache($name, $ignoreMetadata = false) 422
_setCache($name, $value) 431
saveCache() 440
getCache($name, $lifetime = 60, $ignoreMetadata = false) 458
deleteCache($name) 511
deleteAllCache() 515
deleteFirstPageCache() 519
deleteCacheDir($prefix) 524
deleteOldCache($days, $limit = 5000) 530
executeEveryMinute() 547
sanitize_output($buffer) 582

Supporting PHP declarations

These symbols are grouped by source file; inspect the class declaration and visibility before calling them.

Objects/CacheDB.php

Declared classes: CacheDB.

Named symbol Source
encodeContent($content) 16
deleteCacheStartingWith($name, $schedule=true) 21
deleteCacheWith($name) 40
deleteAllCache() 49
deleteCache($name) 58
getCache($name, $domain, $ishttps, $user_location, $loggedType, $ignoreMetadata = false) 67
setBulkCache($cacheArray, $metadata) 77

Objects/CacheLikeEscaper.php

Declared classes: CacheLikeEscaper.

Named symbol Source
escapeLikePrefix($value) 32

Objects/Cache_schedule_delete.php

Declared classes: Cache_schedule_delete.

Named symbol Source
getSearchFieldsNames() 9
getTableName() 13
setId($id) 17
setName($name) 21
getId() 26
getName() 30
insert($name) 34

Objects/CachesInDB.php

Declared classes: CachesInDB.

Named symbol Source
getSearchFieldsNames() 31
getTableName() 36
shouldThrottleLog($type, $windowSeconds = 30) 41
logSchemaEvent($event, $startTime = 0, $tableExists = false, $extra = []) 59
getCacheSetting($field, $default) 103
getDeleteBatchSize() 118
getDeleteMaxBatchesHttp() 123
getDeleteMaxBatchesCli() 128
getMaxPayloadBytes() 133
getFallbackRetentionDays() 138
escapeLikePrefix($value) 148
getCurrentDatabaseName() 153
cleanupLockKey($prefix) 175
acquireCleanupLock($prefix, $timeoutSeconds = null) 187
releaseCleanupLock($prefix) 211
tryAutoCreateMissingTable() 225
setId($id) 274
setContent($content) 279
setDomain($domain) 285
setIshttps($ishttps) 290
setLoggedType($loggedType) 295
setUser_location($user_location) 300
setExpires($expires) 305
setTimezone($timezone) 310
setName($name) 315
getId() 320
getContent() 325
getDomain() 331
getIshttps() 336
getLoggedType() 341
getUser_location() 346
getExpires() 351
getTimezone() 356
getName() 361
hashName($name) 366
_getCache($name, $domain, $ishttps, $user_location, $loggedType, $ignoreMetadata=false) 373
_setCache($name, $value, $domain, $ishttps, $user_location, $loggedType) 435
prepareCacheItem($name, $cache, $metadata, $tz, $time) 476
setBulkCache($cacheArray, $metadata, $batchSize = 50) 518
readUncomited($uncomited=true) 584
_deleteCache($name) 594
set_innodb_lock_wait_timeout($timeout = 10) 624
_deleteCacheStartingWith($name) 642
describeCaller() 774
deleteExpiredCache($batchSize = null, $maxBatches = null) 796
deleteStaleCacheWithoutExpiration($retentionDays = null, $batchSize = null, $maxBatches = null) 851
_deleteCacheWith($name) 906
_deleteAllCache() 936
encodeContent($content) 957
decodeContent($content) 971

Objects/CachesInDBMem.php

Declared classes: CachesInDBMem.

Named symbol Source
tryToCreateTables() 17
_getCache($name, $domain, $ishttps, $user_location, $loggedType, $ignoreMetadata = false) 27
setBulkCache($cacheArray, $metadata, $batchSize = 50) 83
_setCache($name, $content, $domain, $ishttps, $user_location, $loggedType) 99
_deleteCache($name) 154
_deleteCacheStartingWith($name) 174
_deleteCacheWith($name) 197
_deleteAllCache() 219

Diagnostics and validation

  1. Check the installed/enabled version and the dependencies/settings above.
  2. Identify the actual failing page, request, callback or worker and correlate its timestamp with the AVideo log.
  3. Follow the linked method and caller. Check business-state changes and output artifacts as well as HTTP status.
  4. Reproduce the relevant workflow in a test environment. External provider, Encoder, live-server, storage, payment and authenticated flows require their real integrations.

Related test filenames (name matches only; not executed by generation):

Shared diagnostic workflow. This page is not a security audit or a claim of end-to-end validation.

Clone this wiki locally