为什么会话容器名称必须以字母开头?

时间:2014-03-26 16:39:52

标签: php zend-framework2

我们的所有代码都使用以下代码:

$container = new Container(sha1($this->identity()->getEmail()));

不幸的是,ZF2只允许容器名称以字母开头。因此,对于某些电子邮件,这将失败。有这种限制的原因,如果是这样,为什么?我不认为散列电子邮件甚至是必要的,但我很好奇为什么我们不能。

1 个答案:

答案 0 :(得分:1)

会话容器和存储都扩展了Zend\Stdlib\ArrayObject类,允许条目作为属性访问(通过魔术!)。

所以,一旦你有了存储空间,你就可以做到:

$container = new Container('containerName');
$storage = $container->getManager()->getStorage();

$container = $storage->containerName;

因此,适用于PHP对象属性名称的所有限制都适用于会话容器名称。

不确定为什么相同的限制不适用于容器密钥本身。