Czy możesz mi powiedzieć, jak prawidłowo korzystać z sesji w ZF2? Do tej pory mam ten kod:Sesje w ZF2
"session" =>
[
"remember_me_seconds" => 2419200,
"use_cookies" => true,
"cookie_httponly" => true
]
To jest konfiguracja sesji, którą skopiowałem z jakiegoś posta tutaj na stackoverflow. Teraz powinienem umieścić ten kod w module.config.php w każdym module, który używa sesji lub w module Application?
public function onBootstrap(EventInterface $Event)
{
$Config = $Event->getApplication()->getServiceManager()->get('Configuration');
$SessionConfig = new SessionConfig();
$SessionConfig->setOptions($Config['session']);
$SessionManager = new SessionManager($SessionConfig);
$SessionManager->start();
Container::setDefaultManager($SessionManager);
}
Ten sam problem z metodą onBootstrap() klasy Module. Czy ten kod powinien zostać umieszczony w klasie modułu każdego modułu, czy tylko raz w klasie modułu aplikacji?
W obu przypadkach próbowałem obu podejść i próbowałem nawet wstawić ten kod do obu modułów jednocześnie, ale jedyną rzeczą, którą udało mi się dokonać było ustawienie zmiennych sesji w konstruktorze kontrolera, a następnie odczytanie ich w akcjach/metodach . Nie byłem w stanie ustawić zmiennej sesji w jednym działaniu/metodzie, a następnie odczytać ją w innym. Jeśli usunę linie, w których ustawiam zmienne w konstruktorze kontrolera, nie zobaczę tych zmiennych w sesji. Sesja zachowuje się tak, jakby była tworzona i usuwana za każdym razem, gdy strona jest żądana.
Czy brakuje mi czegoś? Proszę nie łączyć mnie z żadnymi zasobami w Internecie, przeczytałem je wszystkie i nie są one naprawdę pomocne.
ta nie działa dla mnie. Czytałem twój artykuł wcześniej - powiedziałem, że przeczytałem wszystko w Internecie na ten temat. Mogę Ci również powiedzieć, że robisz '$ s = new Container (" User "); print_r ($ s); ' drukuje scaloną konfigurację wszystkich modułów w nieskończonej pętli while o.O – Zeimer
Dziwne. Działa to dla mnie za pomocą aplikacji [Skeleton Application] (https://github.com/zendframework/ZendSkeletonApplication). Czy oparłeś swoją aplikację na tym? – Andy0708
Tak, zrobiłem. Zmodyfikowałem go nieznacznie, zmieniając nazwę większości struktury folderów na CamelCase, jednak po wykonaniu tego nadal działał idealnie i byłem w stanie prawidłowo zaimplementować dla nich modele, kontrolery, widoki i testy jednostkowe - obejmuje to również operacje DB. Jedyne rzeczy, które nie działają dla mnie to sesje. Teraz sprawdzę, czy twój kod działa w niezmodyfikowanej aplikacji szkieletowej. – Zeimer