2014-03-26 69 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對象屬性名稱的所有限制適用於會話的容器名稱。

不知道爲什麼相同的限制本身不適用於容器密鑰本身。

相關問題