Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SF][SF3] Dynamiczne parametry
Forum PHP.pl > Forum > PHP > Frameworki
lukaskolista
Chciałbym się prosić Was o pomoc z frameworkiem Symfony 3. Potrzebuję ustawiać parametr dynamicznie, na podstawie zmiennej w sesji. Do tego celu chciałbym wykorzystać usługę "session", jednak nie jest ona dostępna w moim AppExtension w metodzie load. Wiecie może czy da się coś takiego zrobić i jak? Chodzi mi o zrobienie demo mojego skryptu, gdzie każdy użytkownik ma swoją dedykowaną bazę danych w sqlite, a plik z bazą jest tworzony w przypadku, w którym w sesji brak informacji o bazie przypisanej do użytkownika. Tutaj również chciałbym prosić o pomoc - jak się do tego zabrać w symfony 3?
marcio
Moglbys wykorzystac https://symfony.com/doc/current/reference/events.html
lukaskolista
Tylko że eventy są chyba uruchamiane po kompilacji kontenera, a do tego czasu powinienem mieć już poprawnie skonfigurowaną usługę doctrine. Jak konkretnie to zrobić na eventach?

Myślałem o compiler pass, ale nic konkretnego nie wymyśliłem w związku z tym.
ohm
A co rzuca Request::createFromGlobals(); ?

Swoją drogą, nie wygodniej przerzucić będzie do kernel.requesta w listenerze? Wtedy mógłbyś swobodnie zmodyfikować/dodać połączenie dla doctrine'a, coś mniej więcej jak tutaj http://www.jakelitwicki.com/2015/05/19/mul...rs-in-symfony2/ No chyba że nie masz innego wyjścia, więc nie było tematu wink.gif
lukaskolista
Wiele managerów nie wchodzi w grę niestety, bo nie jestem w stanie przewidzieć ilości baz danych.

Mam aplikację, która korzysta z 1 bazy danych i chcę zrobić demo tej aplikacji, gdzie każdy user ma swoją bazę w sqlite. Być może źle do tego podchodzę. Ostatecznością będzie przebudowa aplikacji tak, aby na 1 bazie obsłużyć wielu użytkowników.
Pyton_000
Tobie chodzi tylko w sumie o przełączenie usera po zalogowaniu do jego bazy. A w sumie to nawet i ustanowienie drugiego połączenia do user_db.

Do tego celu możesz użyć onKernelRequest i utworzyć dodatkowy manager.
lukaskolista
W sensie utworzyć manager "w locie"?

@python
Nie taki dodatkowy ten manager, aplikacja ma 1 bazę produkcyjną, a w trybie demo też ma mieć 1 bazę tylko że dedykowaną dla każdego usera osobno na sqlite (1 baza = 1 plik na dysku). Chodzi o to, żeby od początku defaultowy manager był skonfigurowany na dedykowaną bazę danych dla danego usera.
Spróbuję z eventami pokombinować.

Do tego cron, który usuwa bazy starsze niż godzina.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.