lukaskolista
16.07.2017, 20:07:43
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
17.07.2017, 11:56:29
lukaskolista
17.07.2017, 18:31:53
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.
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
lukaskolista
18.07.2017, 06:41:14
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
18.07.2017, 07:11:20
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
18.07.2017, 07:32:59
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.