@startuml

interface SessionHandle{
    + getInitialTarget(): ?string {abstract}
    + getAccount(): ?Account {abstract}
}

interface MutableSessionHandle{
    + setInitialTarget(url:?string): void
    + setAccount(account:Account): void
    + destroy(): void
}

class PhpSessionHandle{
    + init(): self {static}
    + getAccount(): ?Account
    + getInitialTarget(): ?string
    + setAccount(account:Account): void
    + setInitialTarget(url:?string): void
    + destroy(): void
}


PhpSessionHandle ..|> MutableSessionHandle
MutableSessionHandle ..|> SessionHandle

@enduml