Jak wykorzystać wzorzec projektowy MVC w Symfony2?

Chcąc stworzyć aplikację na wysokim poziomie nie możesz pozwolić sobie na jakiekolwiek zaniedbania. A co jest najczęstszym problemem? Co może zdecydować o tym, że Twoja praca nie będzie należała do przyjemnych? Oczywiście kod, a raczej jego błędna organizacja. Nie byłabym sobą gdybym nie doniosła Ci pośpiesznie, że już ktoś się z tym borykał i wymyślone zostały wzorce projektowe. Jednym z najpopularniejszych i najczęściej polecanych jest wzorzec MVC.

MVC

Czym jest wzorzec projektowy?

Za wzorzec projektowy uznać można powtarzalne rozwiązanie jakiegoś problemu. Oczywiste jest to, że jeżeli ktoś już coś wymyślił, w tym wypadku rozwiązanie zawiłości, to nie ma co odkrywać koła na nowo, należy po prostu skorzystać z tego co już jest. Pomyśl, że dzięki temu oszczędzasz dużo czasu i możesz znacznie przyspieszyć swoja pracę. Wzorzec projektowy odnosi się również do problemów, które w ogóle nie są takie proste w rozwiązaniu.

Wzorzec MVC...a na co to komu?

Pomyśl tylko, podczas pracy nad jakimś projektem piszesz kod który musi być przejrzysty i zrozumiały dla wszystkich, zatem rzeczą konieczną jest posiadanie porządku, panowanie nad wszystkim. Załóżmy, że mamy do zrealizowania spory projekt i podczas pracy nad nim podzielone zostały role Front-End Developera i Back-End Developera. Ktoś odpowiedzialny jest za html-a a ktoś pracuje nad Back-Endem i w tym momencie MVC daje nam tą przewagę, że praca może być rozdzielona.

Dzięki MVC z ogromną łatwością możesz testować swoje rozwiązania, które mogą się przecież przydać innym użytkownikom.

Głównym celem wzorca MVC jest podział aplikacji na części, są nimi model, widok i kontroler. Każda z tych części jest odpowiedzialna za konkretne działanie, wszystkie, wzajemnie się uzupełniają.

Sądzę iż na pewno interesują Cię konkrety, spójrzmy zatem na typowy przypadek działania MVC na przykładzie Symfony2.

1. Na początku musimy stwierdzić czy dany URL istnieje.

Pomoże nam w tym Routing, który występuje jako plik routing.jam. W przypadku Symfony jest to trochę bardziej skomplikowane. Routing może odnosić się do adnotacji więc ten plik może nam nie wskazać od razu jakie URLe które są zdefiniowane już posiadamy. Na początku należy wpisać w przeglądarce adres, może być to adres strony który był nam polecony. Jeżeli okaże się że taka ścieżka nie istnieje to wyświetlamy odpowiedni błąd.

2. Działanie Model - Kontroler - Widok.

Standardowo to Routing decyduje do jakiego Kontrolera przejść. Zadaniem Kontrolera jest dopytanie Modelu o konkretne dane.

W informacji zwrotnej Model przekazuje odpowiednie dane do Kontrolera. Dalszym zadaniem Kontrolera jest przesłanie posiadanych danych do Widoku, a ten te dane wyświetla.

W tym momencie widzimy ogromne zastosowanie wzorca projektowego. Mamy osoby które zajmują się początkiem działań, wychwytują błąd i błyskawicznie przekazują dane do Widoku. Osoba która pracuje nad projektem może te dane sobie wyświetlić i automatycznie działać zgodnie ze wskazówkami.

Routing Error...i co dalej?

"No route found for "GET/user/" - Pierwsza, bardzo ważna rzecz o której dużo osób zapomina. Jeżeli właśnie taki błąd nam wyskakuje tzn., że takiej ścieżki nie mamy w Routingu.

Co z tym teraz zrobić?

Na pewno nie tracić głowy...Na początku trzeba po prostu powiedzieć aplikacji, że taka ścieżka URL istnieje. Jeżeli nie istnieje to standardowo możemy wyświetlać renderowany widok Symfony bądź niestandardowo możemy sobie te widoki napisać.

Jak widzisz praca z wzorcem projektowym jest bardzo prosta i przyjemna. Wzorzec MVC to doskonały sposób na organizację pracy podczas tworzenia aplikacji, dzięki niemu możemy bardzo szybko rozwiązać jakiś problem. Nie ma nic lepszego niż działanie według planu, ustalonego schematu, wzoru, który ułatwi i przyspieszy Twoją pracę. Pamiętaj również, że zauważone przez Ciebie błędy i zaproponowane rozwiązania mogą pomóc w pracy komuś innemu.

Proponuję zapoznać się z resztą naszych tekstów, które pokazują proste i przyjazne rozwiązania dla programistów o których mogłeś nawet nie mieć pojęcia.