Jestem nowy w symfony2. Zacząłem od kilku tutoriali, a następnie zacząłem budować SYMBLOG. Zrozumiałem to i jestem w stanie dodać lub zmienić funkcjonalność. Mam trochę zamieszania w obiegu pracy, mam na myśli to, jak pliki współdziałają, aby wyrenderować stronę lub wytworzyć wynik. Czy ktoś może wyjaśnić mi szczegółowo od samego początku, jak ten przepływ przebiega w symfony2. począwszy od żądania użytkownika, użytkownik wprowadza adres URL, aż wyniki symfony2 będą wyświetlane. proszę podać routing.yml w przepływie. ?Workflow with Symfony2?
Odpowiedz
Powinieneś sprawdzić ten link. Symfony - the big picture
Wyjaśnia szczegółowo wszystkie kroki związane z wprowadzeniem adresu URL w przeglądarce do renderowania strony.
Zasadniczo wszystkie żądania trafiają do kontrolera przedniego. Jego zadaniem jest kierowanie żądań do odpowiedniego kodu kontrolera. Robi to za pomocą tras zdefiniowanych w pliku app/config/routing.yml
. Kontrolery zdefiniowane w src/<BundleName>/Controller/<name>
wykonują pewną logikę biznesową, na przykład pobierają dane z Modelu (repozytorium) i wysyłają te informacje do widoku (szablony). Widoki są po prostu kodem HTML. Symfony używa mechanizmu szablonowego o nazwie Twig. Zamiast zawierać <?php ... ?>
bloków w kodzie HTML, Symfony przekazuje dane z kontrolera i może być z łatwością użyty wewnątrz widoku w blokach Twig {% %}
lub {{ }}
.
Mówiąc najprościej, jest tu workflow:
- Przeglądarka wysyła żądanie
- Zapytanie otrzymał w kontrolerze frontowym
web/app_dev.php
lub web/app.php- Front Controller sprawdza trasy zdefiniowane w
app/config/routing.yml
i wysyła żądanie do odpowiedniego kontrolera zdefiniowanego wsrc/<BundleName>/Controller/<controller_name>
- Kontroler przygotowuje zawartość potrzebną w HT ML (przykład - kwerendy bazy danych z
src/<BundleName>/Repository
) i wysyła informacje do widzenia -src/Resources/views/<twig file name>
- Widok tworzy kod HTML i wysyła go z powrotem do kontrolera
- Kontroler tworzy odpowiedź HTTP i wysyła go z powrotem do przeglądarki
są rzeczy takie jak aPP/AppKernel które wchodzą w między ale ja go pominąć.
Oto użyteczne fragmenty z linku podanego powyżej:
URL:
http://localhost/Symfony/web/app_dev.php/demo/hello/Fabien
Co tu się dzieje? Przeanalizujmy URL: app_dev.php: To jest kontroler frontowy. Jest to unikalny punkt wejścia aplikacji i odpowiada na wszystkie żądania użytkowników; /demo/hello/Fabien: Jest to wirtualna ścieżka do zasobu, do którego użytkownik chce uzyskać dostęp. Twoim obowiązkiem jako programisty jest napisanie kodu odwzorowującego żądanie użytkownika (/ demo/hello/Fabien) do zasobu z nim powiązanego (strona HTML Hello Fabien!).
Routing:
trasy Symfony2 wniosek do kodu, który obsługuje go, starając się dopasować żądany adres URL wobec niektórych skonfigurowanych wzorców. Domyślnie te wzorce (zwane trasami) są zdefiniowane w pliku konfiguracyjnym app/config/routing.yml. Gdy jesteś w środowisku programisty - wskazanym przez app_ dev front kontroler - również plik konfiguracyjny app/config/routing_dev.yml. W wersji standardowej, trasy do tych stron „demo” są umieszczone w tym pliku:
_welcome:
pattern:/
defaults: { _controller: AcmeDemoBundle:Welcome:index }
Kontroler:
Symfony2 wybiera kontroler na podstawie wartości _controller z routingiem konfiguracja: AcmeDemoBundle: Welcome: index. Ten ciąg jest kontrolerem nazwa logiczna, i odwołuje się do metody indexAction z klasy Acme \ DemoBundle \ Controller \ WelcomeController:
class WelcomeController extends Controller
{
public function indexAction()
{
return $this->render('AcmeDemoBundle:Welcome:index.html.twig');
}
}
Widok:
Kontroler renderuje SRC/Acme/DemoBundle/Resources/views/Demo/szablon hello.html.twig
{% extends "AcmeDemoBundle::layout.html.twig" %}
{% block title "Hello " ~ name %}
{% block content %}
<h1>Hello {{ name }}!</h1>
{% endblock %}
Możesz również sprawdzić Symfony2 architecture
- 1. Yeoman Workflow and Integration with Backend Scripts
- 2. svnmerge workflow
- 3. Workflow In Production Code
- 4. Jenkins Workflow Build Information
- 5. NodeJS + CoffeeScript Workflow
- 6. Doctrine 2 Migrations Workflow
- 7. Workflow Bower and Grunt
- 8. Git submodules workflow
- 9. Efficient Clojure workflow?
- 10. F # Async workflow
- 11. Dalvik JIT workflow
- 12. Generowanie poprawek workflow JBPM
- 13. Java Open Source Workflow Engines
- 14. Workflow Foundation for Scheduled Process
- 15. Newbie - eclipse workflow (rozwój PHP)
- 16. Który silnik workflow do wyboru?
- 17. Ionic Framework + Phonegap Build: workflow
- 18. workflow między Latex i R wkręca
- 19. wyłączenie formularza symfony2
- 20. Połączyć CTE "WITH" i "WITH XMLNAMESPACES ...." w SQL Server
- 21. Czy Microsoft Workflow Foundation jest naprawdę używany?
- 22. Błąd CRM 2011 Workflow "Nieprawidłowy wskaźnik"
- 23. Jaka jest różnica między UseCase a Workflow?
- 24. Wtrysk zależności/IoC w Workflow Foundation 4
- 25. Obsługa błędów Windows Workflow Foundation 4 (WF4)
- 26. jaka jest składnia "unarchive" wtyczki workflow Jnkins?
- 27. Wymagane oprogramowanie do edycji workflow - zalecenie
- 28. Workflow Foundation - Przypisywanie InArgument w Custom Designer
- 29. Znajdź źródło funkcji w Haskell (workflow)
- 30. Django Seler Workflow Chain Pause/Resume