Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony]Przyjazne linki
Gribo
post 3.08.2009, 16:40:12
Post #1





Grupa: Zarejestrowani
Postów: 237
Pomógł: 17
Dołączył: 1.11.2007
Skąd: Zielona Góra

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


Witam mam zamiar zaimplementowac w swoim projekcie "przyjazne linki". Mianowicie chcę by zamiast takiego adresu mojestrona.com/artukuły/id było mojestrona.com/artukuły/tytuł_artykułu

znalazłem rozwiązanie w manualu do Symfony mianowicie chodzi mi o :
http://www.symfony-project.org/tutorial/1_2/my-first-project Dział Change the URL format

Jednak biorąc pod uwagę że w bazie będzie większa ilość artykułów to ten sposób wydaje się mało wydajny. Wiem że można tez zrobić to stosując Route Class no ale tu by trzeba oprócz tytułu dać przynajmniej id artykułu. I teraz moje pytanie jak optymalnie zrobić takie adresy jakie chcę ?
Przychodzi mi na myśl jakaś dodatkowa kolumna w tabeli która by zawierała slug z tytułu.

Jakie wy stosujecie rozwiązania ?

Ten post edytował Gribo 3.08.2009, 16:43:42


--------------------
Wyszukiwarka noclegów w Polsce i zagranicą.
Najlepszy katalog turystyczny wspomagający pozycjonowanie i promocje stron.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
destroyerr
post 3.08.2009, 19:17:02
Post #2





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

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


To co Ty nazywasz slug tam jest nazwane stripped title. Cała różnica, więc wydajność jest taka sama.

Jeśli chodzi o wydajność, to można optymalizować (oczywiście jeśli to konieczne) to w sposób następujący:
tworzysz w Twojej tabeli dodatkowe pole typu char, o długości np. 40. Do tego pola będzie trafiać tytuł potraktowany funkcją haszującą (np. sha1, stąd długość pola). Dalej już chyba wszystko jasne.
Go to the top of the page
+Quote Post
Gribo
post 3.08.2009, 20:07:38
Post #3





Grupa: Zarejestrowani
Postów: 237
Pomógł: 17
Dołączył: 1.11.2007
Skąd: Zielona Góra

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


A czy to jest dobre rozwiązanie te z dodawaniem wierszy stripped title do tabel gdzie potrzeba ? Czy może istnieje jescze jakieś wyjście ?


--------------------
Wyszukiwarka noclegów w Polsce i zagranicą.
Najlepszy katalog turystyczny wspomagający pozycjonowanie i promocje stron.
Go to the top of the page
+Quote Post
phpion
post 3.08.2009, 20:10:35
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Ja stosuję rozwiązanie pośrednie tj. linki postaci:
mojestrona.com/artukuły/123/tytuł_artykułu
gdzie 123 to id artykułu. Dodanie cyferek nie wpływa w dużym stopniu na wygląd adresu, a umożliwia wyszukiwanie artykułu bezpośrednio po kluczu głównym. Przy takim podejściu nie musisz nawet trzymać "tytul_artyukulu" w bazie danych - możesz go tworzyć na bieżąco. Jest tylko jeden drobny problem. Linki:
mojestrona.com/artukuły/123/tytuł_artykułu
mojestrona.com/artukuły/123/sraka_praptaka
zaprowadzą nas w to samo miejsce. Rozwiązaniem jest sprawdzenie czy "tytul_artykulu" faktycznie odpowiada odpowiednio przerobionemu "Tytuł artykułu".

Ten post edytował phpion 3.08.2009, 20:11:34
Go to the top of the page
+Quote Post
Gribo
post 3.08.2009, 20:16:03
Post #5





Grupa: Zarejestrowani
Postów: 237
Pomógł: 17
Dołączył: 1.11.2007
Skąd: Zielona Góra

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


w tej chwili korzystam z tej formy linków ale nie jest to zbyt dobre bo zaużmy chce zrobic taki link

strona.com/zielona_gora/aktualnosci/temat_wiadomosci/

i teraz by takie coś zrobić potrzebować będę 2 id , miasta i wiadomości co już nie ładnie wygląda. tym bardziej ze jak koles wykasuje przypuśćmy kawałek adresu i zostawi tylko strona.com/zielona_gora/ to już nie będzie działać


--------------------
Wyszukiwarka noclegów w Polsce i zagranicą.
Najlepszy katalog turystyczny wspomagający pozycjonowanie i promocje stron.
Go to the top of the page
+Quote Post
athabus
post 3.08.2009, 21:13:16
Post #6





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

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


Cytat(Gribo @ 3.08.2009, 21:16:03 ) *
w tej chwili korzystam z tej formy linków ale nie jest to zbyt dobre bo zaużmy chce zrobic taki link

Mam nadzieję, że to tylko palec ci się osunął ;-)

Co do tematu, to slug/stripped title (jak zwał tak zwał) przechowywany w bazie, to najlepsze wyjście w tej sytuacji.
Id w adresie ma jeden duży plus, tj. gdy zmieniasz tytuły, to link będzie zawsze działał. Oczywiście warto wtedy zrobić przekierowania na odpowiedni adres albo chociaż użyć odpowiedniego metatagu, żeby nie dostać DC od Googla. Z drugiej strony psuje jednak trochę wygląd adresu.

Ja często robię tak, że mam adres "slug_id" czyli np. produkt/nazwa-produktu_id i w kontrolerze szukam produktu po id i potem sprawdzam czy slug się zgadza. Jeśli nie to robię przekierowanie 301 na właściwy adres. Dzięki temu stare linki będą działały nawet po zmianie adresu.

Co do wydajności szukania po slugu, to o ile tych artykułów nie będzie naprawdę dużo (np. 50.000) to wydajnością nie ma sensu się przejmować. Wyszukiwanie po liczbach jest szybsze niż po słowach, ale przy małych zbiorach różnica jest niezauważalna.
Go to the top of the page
+Quote Post
Gribo
post 3.08.2009, 21:15:57
Post #7





Grupa: Zarejestrowani
Postów: 237
Pomógł: 17
Dołączył: 1.11.2007
Skąd: Zielona Góra

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


o to mi chodziło wielkie dzięki za upewnienie mnie co do tego rozwiązania


--------------------
Wyszukiwarka noclegów w Polsce i zagranicą.
Najlepszy katalog turystyczny wspomagający pozycjonowanie i promocje stron.
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: 14.08.2025 - 08:33