Documentation

Session extends AbstractAdapter
in package

Session adapter cache class

Tags
category

Pop

author

Nick Sagona, III nick@popphp.org

copyright

Copyright (c) 2009-2026 Nick Sagona, III

license

https://www.popphp.org/license New BSD License

version
5.0.0

Table of Contents

Properties

$clock  : ClockInterface
Clock used to resolve the current time
$namespace  : string
Cache namespace
$ttl  : int
Global time-to-live

Methods

__construct()  : mixed
Constructor
clear()  : Session
Clear all stored values from cache
decrementItem()  : int
Atomically decrement a counter in cache, creating it at $initial if it doesn't exist
deleteItem()  : Session
Delete a value in cache
destroy()  : Session
Destroy cache resource
getItem()  : mixed
Get an item from cache
getItemTtl()  : int
Get the time-to-live for an item in cache
getTtl()  : int
Get the global time-to-live for the cache object
hasItem()  : bool
Determine if the item exist in cache
incrementItem()  : int
Atomically increment a counter in cache, creating it at $initial if it doesn't exist
saveItem()  : Session
Save an item to cache
setTtl()  : AbstractAdapter
Set the global time-to-live for the cache adapter
isFresh()  : bool
Determine if a cache envelope (with 'start'/'ttl' keys) is still within its time-to-live
key()  : string
Build the namespaced storage key for an item id

Properties

$namespace

Cache namespace

protected string $namespace = 'pop_cache'

Methods

__construct()

Constructor

public __construct([int $ttl = 0 ][, string $namespace = 'pop_cache' ][, ClockInterface $clock = new ClockSystemClock() ]) : mixed

Instantiate the cache session object

Parameters
$ttl : int = 0
$namespace : string = 'pop_cache'
$clock : ClockInterface = new ClockSystemClock()

decrementItem()

Atomically decrement a counter in cache, creating it at $initial if it doesn't exist

public decrementItem(string $id[, int $amount = 1 ][, int $initial = 0 ][, int|null $ttl = null ]) : int

Non-atomic read-modify-write through the same start/ttl/value envelope used by saveItem()/getItem() — Session has no native atomic primitive, so a counter here is an ordinary cached integer, fully interoperable with getItem()/hasItem()/deleteItem().

Parameters
$id : string
$amount : int = 1
$initial : int = 0
$ttl : int|null = null
Tags
throws
Exception
Return values
int

deleteItem()

Delete a value in cache

public deleteItem(string $id) : Session
Parameters
$id : string
Return values
Session

getItem()

Get an item from cache

public getItem(string $id[, mixed $default = false ]) : mixed
Parameters
$id : string
$default : mixed = false

getItemTtl()

Get the time-to-live for an item in cache

public getItemTtl(string $id[, int $default = 0 ]) : int
Parameters
$id : string
$default : int = 0
Return values
int

getTtl()

Get the global time-to-live for the cache object

public getTtl() : int
Return values
int

hasItem()

Determine if the item exist in cache

public hasItem(string $id) : bool
Parameters
$id : string
Return values
bool

incrementItem()

Atomically increment a counter in cache, creating it at $initial if it doesn't exist

public incrementItem(string $id[, int $amount = 1 ][, int $initial = 0 ][, int|null $ttl = null ]) : int

Non-atomic read-modify-write through the same start/ttl/value envelope used by saveItem()/getItem() — Session has no native atomic primitive, so a counter here is an ordinary cached integer, fully interoperable with getItem()/hasItem()/deleteItem().

Parameters
$id : string
$amount : int = 1
$initial : int = 0
$ttl : int|null = null
Tags
throws
Exception
Return values
int

saveItem()

Save an item to cache

public saveItem(string $id, mixed $value[, int|null $ttl = null ]) : Session
Parameters
$id : string
$value : mixed
$ttl : int|null = null
Return values
Session

isFresh()

Determine if a cache envelope (with 'start'/'ttl' keys) is still within its time-to-live

protected isFresh(array<string|int, mixed> $envelope) : bool
Parameters
$envelope : array<string|int, mixed>
Return values
bool

key()

Build the namespaced storage key for an item id

protected key(string $id) : string

Unlike Apc/Memcached/Redis, this adapter's clear() deletes matching keys directly by prefix (a plain PHP array can be enumerated and filtered cheaply) rather than via generational versioning, so this key has no version segment — there's no backend-scan limitation here to work around.

Parameters
$id : string
Return values
string

        
On this page

Search results