Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [inne]Symfony2 - generowanie URL
kosmos
post 17.07.2014, 18:59:21
Post #1





Grupa: Zarejestrowani
Postów: 367
Pomógł: 17
Dołączył: 4.03.2008

Ostrzeżenie: (0%)
-----


Witam,
Czytam dokumentację i niestety na rozdziale o generowaniu ścieżek URL wyrosła przede mną betonowa ściana!
Nie miałem nigdy styczności z taką funkcjonalnością i brakuje mi wiedzy, zrozumienia zasady działania.

Przytoczę tu przykład z dokumentacji:

  1. class MainController extends Controller
  2. {
  3. public function showAction($slug)
  4. {
  5. // ...
  6.  
  7. $url = $this->get('router')->generate('blog_show', array('slug' => 'my-blog-post'));
  8. }
  9. }


1. Do czego służy generowanie URL w kontrolerze?
2. Jeśli w tym przypadku adres siedzi w zmiennej $url to jak mogę go wykorzystać?
3. Przydałby mi się jakiś prosty przykład ...

Pomożecie?

EDIT:
zrobiłem swój własny przykład w którym w poprzez Response wyświetliłem sobie identyczny adres strony jaki mam w url ale wydaje mi się to bez sensu smile.gif
w drugim przypadku po wejściu z przykładowego adresu: http://localhost/Symfony/web/app_dev.php/abc/link1/4
wygenerowałem sobie taki adres: http://localhost/Symfony/web/app_dev.php/abc/link1/strona

Pozostaje pytanie: do czego taką funkcjonalność można wykorzystać?

Ten post edytował kosmos 17.07.2014, 19:25:22
Go to the top of the page
+Quote Post
by_ikar
post 17.07.2014, 20:05:56
Post #2





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


No raz to url generator sprawdzi poprawność parametrów które podajesz. Dwa to poda adres do tego linku tak, że będziesz mógł aplikacje przenieść do katalog wyżej (lub kilku) a adres wciąż będzie poprawny (poprostu uwzględni pathinfo). Po trzecie, to przy adresach bez parametrów, będziesz mógł je zmienić na poziomi routingu i w obrębie całej aplikacji adres będzie zmieniony.
Go to the top of the page
+Quote Post
kosmos
post 17.07.2014, 20:08:45
Post #3





Grupa: Zarejestrowani
Postów: 367
Pomógł: 17
Dołączył: 4.03.2008

Ostrzeżenie: (0%)
-----


Dzięki za nakierowanie na temat.
Zapewne w trakcie pracy z Symfony2, kiedy przyjdzie mi korzystać z tego rozwiązania, praktyka będzie najlepszym nauczycielem.

Pozdr.
Go to the top of the page
+Quote Post
by_ikar
post 17.07.2014, 20:16:35
Post #4





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


Jasne, jeżeli twój kontroler dziedziczy Symfony\Bundle\FrameworkBundle\Controller\Controller to możesz to zapisać prościej:

  1. class MainController extends Controller
  2. {
  3. public function showAction($slug)
  4. {
  5. // ...
  6.  
  7. $url = $this->generateUrl('blog_show', array('slug' => 'my-blog-post'));
  8. }
  9. }


Co zresztą masz trochę niżej (jak dobrze pamiętam) pokazane.
Go to the top of the page
+Quote Post
pedro84
post 17.07.2014, 23:50:44
Post #5





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

Ostrzeżenie: (0%)
-----


Cytat(kosmos @ 17.07.2014, 19:59:21 ) *
1. Do czego służy generowanie URL w kontrolerze?

Chociażby do przekierować. Jeśli zmienisz jakąś trasę, nie musisz grzebać w kodzie, bo wygenerowany URL będzie zawsze aktualny. Za wyjątkiem sytuacji, w której dodasz bądź zmienisz jakiś parametr.

Cytat(kosmos @ 17.07.2014, 19:59:21 ) *
2. Jeśli w tym przypadku adres siedzi w zmiennej $url to jak mogę go wykorzystać?

Na przykład do przekierowania

Cytat(kosmos @ 17.07.2014, 19:59:21 ) *
3. Przydałby mi się jakiś prosty przykład ...

  1. $url = $this->generateUrl('my_route_name', array('name' => 'Kinga'));
  2.  
  3. return new RedirectResponse($url);


--------------------
Google knows the answer...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 03:57