我们的所有代码都使用以下代码:
$container = new Container(sha1($this->identity()->getEmail()));
不幸的是,ZF2只允许容器名称以字母开头。因此,对于某些电子邮件,这将失败。有这种限制的原因,如果是这样,为什么?我不认为散列电子邮件甚至是必要的,但我很好奇为什么我们不能。
答案 0 :(得分:1)
会话容器和存储都扩展了Zend\Stdlib\ArrayObject
类,允许条目作为属性访问(通过魔术!)。
所以,一旦你有了存储空间,你就可以做到:
$container = new Container('containerName');
$storage = $container->getManager()->getStorage();
$container = $storage->containerName;
因此,适用于PHP对象属性名称的所有限制都适用于会话容器名称。
不确定为什么相同的限制不适用于容器密钥本身。