Umieszczanie artykułów w sklepie. Adresy url

0

Witam. Jestem w trakcie tworzenia sklepu internetowego. Podglądałem inne sklepy. Zauważyłem w kilku sklepach, że na każdy produkt przypada osobny plik html tak jak tutaj:
http://margab.pl/

Zastanawiam się dlaczego projektanci tej strony na każdy produkt stworzyli odrębny plik html. Przecież chcąc coś zmienić muszą zmieniać każdy plik osobno a to dużo zbędnej roboty, czyż nie? Czy nie prościej byłoby stworzyć jeden plik np. produkty.php i napisać skrypt który w zależności od id produktu wyświetlałby odpowiednią zawartość? np. produkty.php?product=dysza_olejowa ?

Jak należałoby postąpić i dlaczego? Jakie są plusy i minusy takich rozwiązań?

0

Przecież oni tak robią. Po url wiedząc jaki produkt mają zaciągnąć z bazy, leci to do controllera, jakiś model obrabia dane(ew. encja na twarz i pchasz) i html się generuje. Z nazwy produktu mają zrobiony alias do url, według, którego szukają w bazie.

1

to jest zrobione na gotowcu SOTESHOP (jest w kodzie)

0

No ale np. na tej stronie którą podałem pliki ze stronami do produktów mają rozszerzenie html. Jak rozumiem aby "zaciągnąć" coś z bazy tudzież wygenerować html potrzebny jest skrypt, zapewne php. A żeby odpalić skrypt php wymagane jest aby plik miał rozszerzenie php - te pliki na tej stronie nie mają takiego rozserzenia bo mają rozszerzenie html więc nie można nic zaciągać ani generować. Dobrze myślę?

0

Źle myślisz. *php. jest na backendzie. Tam są popierane wszystkie dane, przetwarzane jak trzeba, wykonywane inne rzeczy, tak gotowe rzeczy przekazywane są do widoku, gdzie html jest generowany. Następnie do klienta leci gotowy html. Poczytaj o jakimś frameworku, MVC, routingu.

1

Mod rewrite

0

Czyli w przypadku tego serwisu który podałem np. taki adres url
http://margab.pl/category/czesci-zamienne-do-palnikow
Jest w pewnym sensie fikcyjny. Na serwerze tego serwisu nie istnieje katalog category/czesci-zamienne-do-palnikow, zostało to wprowadzone za pomocą wspomnianego powyżej mod rewrite i tak na dobrą sprawę wszystkie inne adresy url z kategorii prowadzą do tego samego pliku php, który generuje zawartość dynamicznie. Chodziło o to aby url'e były bardziej user i google friendly

W przypadku http://margab.pl/automat-dungs-dgau-aw-11.html zamieniono rozszerzenie pliku z zapewne php na html.

Dobrze myślę?

0

W uproszczeniu mamy 2 kontrolery. Product oraz category. W product masz metodę show, która przyjmuje jako parametr alias produktu. Przykładowo wchodząc na stronę margab.pl/czujnik-plomienia-siemens-qrc-1a1-103c27-360.html do metody zostaje przekazany alias "czujnik-plomienia-siemens-qrc-1a1-103c27-360.html". Kolejno w uproszczeniu metoda ta pobiera dane z bazy danych, odpowiednio je przerabia, a następnie obrobione dane przekazuje do widoku. W widoku generowana jest strona html i ona jest wysyłana do klienta.
Kontroler category również posiada metodę show, która przyjmuje jako parametr alias kategorii. Wchodząc na margab.pl/category/automaty-palnikowe-siemens-czujniki-plomienia-siemens-qrc do metody zostaje przekazany "automaty-palnikowe-siemens-czujniki-plomienia-siemens-qrc". W uproszczeniu robi się to samo co w kontrolerze product.

Można by użyć margab.pl/product/czujnik-plomienia-siemens-qrc-1a1-103c27-360.html jednak dzięki routingowi możemy ustawiać sobie tworzyć dowolne adresy. Ważne, aby jeden adres nie prowadził do dwóch różnych kontrolerów. Np margab.pl/czujnik-plomienia-siemens-qrc-1a1-103c27-360.html i margab.pl/automaty-palnikowe-siemens-czujniki-plomienia-siemens-qrc jest błędnym zapisem, gdyż serwer będzie prowadził do pierwszego pasującego wzory zdefiniowanego w routingu.

Wczoraj poradziłem tobie poczytać między innymi o routingu. Ponowie radzę przeczytać o tych rzeczach co podałem.

W przypadku http://margab.pl/automat-dungs-dgau-aw-11.html zamieniono rozszerzenie pliku z zapewne php na html.

Nie jest zmieniana php na html. W założeniach projektu PM wymyślił, aby widok produktu kończył się na html.

Chodziło o to aby url'e były bardziej user i google friendly
True.

zostało to wprowadzone za pomocą wspomnianego powyżej mod rewrite

Nigdy nie sprawdzałem, jak działa dokładnie routing w poszczególnych frameworkach php. Jednak tworząc stronę nie używasz mod rewrite, tylko odpowiednich metod w poszczególnych frameworkach.

0

No o.k Poczytałem co nieco na ten temat i wydaje mi się, że generalnie rozumiem tę ideę. Zastanawia mnie jednak co innego.

  1. Nad aplikacją pracuję sam. Wydaje mi się iż nie jest to aplikacja skomplikowana. Mały sklep internetowy. Pytanie : czy jest sens stosować wzorzec MVC? Jeżeli tak to czy warto chociażby w celach edukacyjnych napisać go samemu czy może wykorzystać gotowca? Czy samodzielne pisanie nie będzie zbyt czasochłonne?

  2. Polecacie jakiś gotowiec sklepu internetowego? Tak jak wspomniałem sklep nie jest duży - nie będzie tam sporego ruchu. Firma działa na lokalnym, powiatowym rynku.

A i jeszcze jedno. W nawiązaniu do wypowiedzi powyżej. Dlaczego miałyby być 2 kontrolery a nie jeden? Nie powinno być tak, że jeden kontroler rozpoznaje na podstawie alliasu adresu URL czego chce użytkownik i wtedy komunikuje się z modelem?

1 użytkowników online, w tym zalogowanych: 0, gości: 1