Mam skrypt, który wprowadza zmiany w konfiguracji Symfony2 i musi zostać powiadomiony o nowej konfiguracji, zanim przejdzie dalej (w szczególności dodawanie połączeń dbal). Czy istnieje sposób na wymuszenie przeładowania konfiguracji podczas wykonywania skryptu?Przeładuj konfigurację Force w Symfony2
Odpowiedz
Aktualizacja: Nie można przeładować konfigurację, ale można ustawić parametry on-the-fly, patrz drugi "Update" ustęp
To naprawdę nie jest to możliwe w Symfony2 to zrobić.
W trybie produkcyjnym, wszystko (nawet konfiguracja) jest buforowane, więc trzeba wyczyścić pamięć podręczną z
app/console cache:clear --env=prod --no-debug
(może następnie app/console cache:warmup --env=prod --no-debug
)
przeładować konfigurację. W trybie programowania możesz eksperymentować z shutdown()
, a następnie boot()
z Symfony\Component\HttpKernel\Kernel
lub może loadClassCache
- ale to wszystko nie jest to, czego chcesz.
Jakie dokładnie zmiany wprowadzono w plikach konfiguracyjnych? Może powinieneś użyć różnych plików dla różnych środowisk lub rozważyć jakąkolwiek inną metodę uzyskania tych zmian (za pomocą prostego Webservice lub nawet statycznego pliku odczytanego z kontrolera).
Aktualizacja:
zorientowali się, że może ustawić parametr konfiguracyjny kontenera on-the-fly poprzez
$container->setParameter('parameter', value);
Wystarczy popatrzeć na the Symfony2 documentation.
Tworzę dodatkowe połączenia z bazą danych w locie i dodaje je do pliku config.yml (jako część konfiguracji dla wielu dzierżawców). –
Właśnie zaktualizowałem moje pytanie. To może ci pomóc. – akluth
Moja odpowiedź prawdopodobnie przybywa bardzo późno, ale może być przydatna dla kogoś innego.
Pamięć podręczna Symfony dla środowiska "prod" jest przechowywana w folderze "app/cache/prod /" i zawiera wiele elementów (szablony Twig tłumaczone w PHP w podfolderze "twig /", adnotacje w podfolderze "adnotacje /", i. .. parametry konfiguracyjne, pliki aplikacji * ProjectContainer.php, między innymi).
Więc, co możesz zrobić, to: gdy skrypt konfiguracyjny zmienia parametry.yml, może również usunąć appProdProjectContainer.php. Następny użytkownik, który trafi w twoją aplikację Symfony, będzie miał nieco dłuższy czas reakcji, ale nowy parametr konfiguracyjny zostanie wzięty pod uwagę i zapisany w pamięci podręcznej.
- 1. Jak przedłużyć konfigurację innego pakietu w Symfony2?
- 2. jak wyłączyć konfigurację bazy danych w symfony2
- 3. Przeładuj moduł w Pythonie 3.4
- 4. force scrollbar w Safari
- 5. ostrzeżenie force w java
- 6. Automatycznie przeładuj pliki szablonów
- 7. Co robi "Force" w Unecrustify?
- 8. Przeładuj tabelę Wyświetl od AppDelegate
- 9. Jquery Bings Mapy Json przeładuj
- 10. Przeładuj ścieżkę w powłoce Power Shell
- 11. Przeładuj dane w programowo utworzonym tableView
- 12. "Przeładuj stronę, aby uzyskać źródło ..." w AJAX
- 13. Kontroler Yii Force HTTPS
- 14. Aktualizacja wiązania Force Silverlight
- 15. Wywołanie metody Force base
- 16. JavaFX force recompute binding
- 17. force download image base64
- 18. Force Pobierz plik CSV
- 19. Zagnieżdżone prototypy w konfiguracji Symfony2
- 20. force slf4j do drukowania logów w sekwencji
- 21. Ograniczanie ataków typu brute force w Django
- 22. Javascript - przeładuj stronę z innym QueryString
- 23. Odśwież/przeładuj mapy: Google maps API V2
- 24. Apache Posłuchaj konfigurację
- 25. jQuery Odśwież/przeładuj stronę Po sukcesie
- 26. D3 v4 Force Simulation "zgrupowane"
- 27. Odśwież/przeładuj zawartość Div używając jquery/ajax
- 28. FlowDocument Force a PageBreak (BreakPageBefore)
- 29. Android wake lock force close
- 30. YouTube iframe embed: force Flash?
nie jestem pewien, czy to możliwe, co w zasadzie oznacza, że musiałeś reinicjalizować cały Service Container podczas uruchamiania swojego skryptu, może zajrzyj do app.php, czy możesz zrestartować jądro podczas uruchamiania twojego skryptu? – Hannes