Chciałbyś zintegrować starszą aplikację z aplikacją Symfony 2 - zastępując coraz więcej części starej aplikacji komponentami Symfony. Podejście, które bym podjął, to użycie kontenera Symfony 2 w starszej aplikacji, aby uzyskać usługi, które są już skonfigurowane dla aplikacji Symfony 2. Pierwsze usługi, których chciałbym użyć, to sesja i kontekst bezpieczeństwa.Jak korzystać z kontenera Symfony 2 w starszej aplikacji?
Pytania:
- Czy to wykonalne?
- Jak uzyskać skonfigurowany kontener usługi?
Więcej informacji w starszej aplikacji: Typowy błąd PHP: Pojedyncze pliki PHP, jako "kontrolery" (sprawdzanie $ _GET i $ _POST dla różnych ścieżek wykonania). Każda strona zawiera init.php
, która ustawia automatyczne ładowanie, połączenie z bazą danych itp. Zarządzanie sesją ma swoją własną klasę (którą chciałbym zastąpić), dane są pobierane przez wywołania statycznych metod (!) Obiektów bazy danych.
Nie mogę powiedzieć, czy to możliwe, czy nie ... Oczywiście, że jest, ale czy warto? Aby zaimplementować kontener usług, weź pod uwagę, że będziesz musiał zaimplementować jądro Symfony2, czyli rdzeń ramy. – AlterPHP
Bez żadnych informacji na temat struktury starszej aplikacji nie można odpowiedzieć na to pytanie, z wyjątkiem tego, że prawdopodobnie nie jest możliwe użycie kodu innego niż OOP bez ważnego przepisania. – GordonM
Zrobiłem coś takiego. Użyłem zwykłego S2, aby uzyskać działanie kontrolera S2. Z kontrolera nazwałam mój stary kod inicjacyjny, a następnie nazwałam go kontrolerami. Bardzo hack, ale wszystko działało dobrze. Nie sądzę, że będziesz miał dużo szczęścia, otrzymując poprawnie skonfigurowany obiekt sesji S2, nie robiąc czegoś takiego. – Cerad