The namespace and the driver in Stash\Interface\PoolInterface are not immutable but they are not delegated to the underlying Stash\Interface\ItemInterface. Changing the driver or the namespace lead to a inconsistency between Pool and Item.
Solution 1: setDriver and setNamespace MUST be removed
Solution 2: Driver and Namespace changes MUST be propagated down to all Items. This would mean, that the state of the item would be invalid. Therefore it MUST be fully reloaded or instantiated.
The easiest and cleanest part would be Solution 1
The namespace and the driver in
Stash\Interface\PoolInterfaceare not immutable but they are not delegated to the underlyingStash\Interface\ItemInterface. Changing the driver or the namespace lead to a inconsistency between Pool and Item.Solution 1:
setDriverandsetNamespaceMUST be removedSolution 2: Driver and Namespace changes MUST be propagated down to all Items. This would mean, that the state of the item would be invalid. Therefore it MUST be fully reloaded or instantiated.
The easiest and cleanest part would be Solution 1