2014-03-26 43 views
1

遍布我们的代码,我们使用这行代码:为什么会话容器名称必须以字母开头?

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

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

+0

我假设你看容器实际上是一个对象的源代码,所以在PHP变量(在这种情况下为对象)名称必须以字母开头。 – AbraCadaver

回答

1

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

所以,一旦你有存储,您可以这样做:

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

$container = $storage->containerName; 

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

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

相关问题