Symfony - tworzenie pierwszych prostych stron i przekierowań

Stronę tą wyświetlono już: 138 razy

Routing czyli przekierowania są formą przejścia z starego zapisu danych sterujących zawartością strony do nowego bardziej przejrzystego sposobu tworzenia linków. Co ważniejsze przeglądarki takie jak Google nie chcą już indeksować stron korzystających np z takiego adresowania: http://www.obliczeniowo.com.pl&value=1000 i z tego też względu również należy pozbyć się starego sposobu linkowania strony na rzecz nowego. Na szczęście w Symfony przekierowania można obsłużyć w bardzo prosty i przystępny sposób. Zanim jednak omówię ten temat chciałbym poświęcić trochę czasu na jakże zacne wydarzenie albowiem aż dziw bierze, ale po raz pierwszy Microsoft zrobił coś działającego pod systemem Linux. I to działającego dość sprawnie i użytecznie. Czym jest to coś? Ano jest to program Visual Studio Code, którym ta firma uraczyła również użytkowników innych systemów operacyjnych.

Program Visual Studio Code działający pod Linuxem
Rys. 1
Program Visual Studio Code działający pod Linuxem

Warto zainstalować to oprogramowanie i z niego korzystać, albowiem bardzo usprawnia pracę, pozwala na przeglądanie plików i folderów w projekcie zawartych. Koloruje i uzupełnia kod, a także umożliwia jego weryfikację.

W moim przypadku po wskazaniu folderu ostatnio utworzonego projektu strony mogę rozpocząć pracę nad dodaniem pierwszych podstron z wykorzystaniem mechanizmu routingu (przekierowania) utworzonego przez Symfony. W tym jakże zacnym celu konieczne jest przejście do folderu: src/Controller, gdzie utworzyć należy plik o nazwie DefaultController.php. W pliku tym utworzyć klasę o tej samej nazwie (co jest bardzo ważne, jeżeli chcesz, aby strona się uruchomiła). Oto podstawowy przykładowy kod PHP:

Listing 1
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Component\HttpFoundation\Response;
  4. use Symfony\Component\RoutingAnnotation\Route;
  5. class DefaultController
  6. {
  7. /**
  8. * @Route("/first/page")
  9. */
  10. public function myFirstPageEver()
  11. {
  12. return new Response(
  13. '<html><body>My first Symfony page ever!</body></html>'
  14. );
  15. }
  16. }
  17. ?>

Cóż pozostało do zrobienia, jak nie sprawdzenie czy to działa poprzez wpisanie w adresie przeglądarki: localhost:8000/first/page

Symfony - pierwsza stona!
Rys. 2
Symfony - pierwsza stona!

Tada! Magia działa! Prawie zaskakująco dobrze jak sztuczka Jocker-a z ołówkiem. No, może nie jest to najpiękniejsza strona, jaką w życiu zrobiłem, może jest brzydka jak Angela Merkel, ale pamiętajmy, że początki bywają trudne. I w odróżnieniu od Angeli Merkel twoja strona może się stać tak piękna, jak tylko potrafisz sobie to wyobrazić!

Jak to działa? Skrótowo rzecz ujmując Symfony bierze kawałek kodu:

Listing 2
  1. /**
  2. * @Route("/first/page")
  3. */

i zamienia to co jest podane jako parametr Route w ścieżkę dostępu. Gdy więc wpiszesz w przeglądarce localhost:8000/first/page wykona się kod podpięty pod tą stronę. Tym kodem oczywiście jest metoda klasy DefaultController o nazwie firstPageAction.

Takich metod można utworzyć od groma i jeszcze trochę, dla przykładu w poniższym kodzie dodałem jeszcze jedną metodę secondPageAction:

Listing 3
  1. <?php
  2. namespace AppController;
  3. use SymfonyComponentHttpFoundationResponse;
  4. use SymfonyComponentRoutingAnnotationRoute;
  5. class DefaultController
  6. {
  7. /**
  8. * @Route("/first/page")
  9. */
  10. public function firstPageAction()
  11. {
  12. return new Response(
  13. '<html><body>My first Symfony page ever!</body></html>'
  14. );
  15. }
  16. /**
  17. * @Route("/second/page")
  18. */
  19. public function secondPageAction()
  20. {
  21. return new Response(
  22. '<html><body>My second Symfony page ever!</body></html>'
  23. );
  24. }
  25. }
  26. ?>

Tym razem (możesz mi wierzyć lub nie) gdy wpiszesz w przeglądarce localhost:8000/second/page twoja ulubiona przeglądarka pokaże ci nowiusieńką własnoręcznie utworzoną stronę.

Komentarze