Temat: Url i pliki w projekcie (podstawy)

Problem polega na tym że chcę stworzyć taki system ogłoszeń http://www.fotosik.pl/pokaz_obrazek/pelny/a6657d76d5b5... Problem mam ze strukturą katalogów i plików.

Powiedzmy, że w index.php będę miał wyświetlone wszystkie ogłoszenia bez względu na kategorie wyświetlone po id malejąco, a teraz kiedy kliknę jakąś kategorię to wyświetli mi tylko ogłoszenia z tej kategorii.

Czy powinienem zrobić oddzielny plik np. ubrania.php i w nim kod który odpowie za wyświetlenie tylko ogłoszeń z ubraniami? Wtedy musiał bym stworzyć tyle plików ile kategorii. (stworzyć funkcję która pobierze to co będe chciał itp potrafię). Nie mam pojęcia jak to ogarnąć w plikach i url.

Jak rozwiązać ten problem?

EDIT:

Wymyśliłem coś takiego (pseudo kod)

if(isset($_GET['category'] == 'moto')){
include 'select.php';
}


a w pliku select.php np.

if(isset($_GET['category'] == 'moto')){
select * from advert where category = moto
}


i taki if dla każdej kategorii. Czy coś takiego jest dobre? A najlepiej jak jak bym zrobił żeby klikniętą nazwę kategorii wstawiało mi do zapytania select * from advert where category = $category

i url bedzie w stylu index.php?category=motoMateusz Zieliński edytował(a) ten post dnia 27.11.11 o godzinie 15:12

Temat: Url i pliki w projekcie (podstawy)

Mateusz Zieliński:
i url bedzie w stylu index.php?category=moto


Polecał bym zastosować tzw. przyjazne URl'e

lepiej będzie wyglądać np.

 /moto
niż
index.php?category=moto


do obsługi kategorii nie rób kilku plików, zrób jeden.

np.

categories.php

który przyjmuje parametry z GET nazwę kategorii oraz typ sortowania (malejąco lub rosnąco)

w tym pliku sprawdź sobie czy podana nazwa kategorii jest dobra czy ktoś sam jakiś śmieci nie powpisywał.

teraz w pliku .htaccess

wpisz regułkę aby zapytanie np.

/cat/moto-asc

zmieniło na

categories.php?cat=$1&sort=$2 [L]Paweł Srebniak edytował(a) ten post dnia 27.11.11 o godzinie 15:20
Krzysztof N.

Krzysztof N. CEO. Aplikacje
internetowe i
mobilne. Symfony,
Zend.

Temat: Url i pliki w projekcie (podstawy)

Mateusz Zieliński:
Problem polega na tym że chcę stworzyć taki system ogłoszeń http://www.fotosik.pl/pokaz_obrazek/pelny/a6657d76d5b5... Problem mam ze strukturą katalogów i plików.

Powiedzmy, że w index.php będę miał wyświetlone wszystkie ogłoszenia bez względu na kategorie wyświetlone po id malejąco, a teraz kiedy kliknę jakąś kategorię to wyświetli mi tylko ogłoszenia z tej kategorii.

Czy powinienem zrobić oddzielny plik np. ubrania.php i w nim kod który odpowie za wyświetlenie tylko ogłoszeń z ubraniami? Wtedy musiał bym stworzyć tyle plików ile kategorii. (stworzyć funkcję która pobierze to co będe chciał itp potrafię). Nie mam pojęcia jak to ogarnąć w plikach i url.

Jak rozwiązać ten problem?
Jedno z możliwych rozwiązań: użyj frameworka (Symfony, Zend, CakePHP, Kohana, Yii, inny). To rozwiąże Twój problem ze strukturą katalogów oraz przyjaznymi adresami. Automatycznie.
Maja Miarecki

Maja Miarecki Senior Frontend
Developer

Temat: Url i pliki w projekcie (podstawy)

Krzysztof N.:
Jedno z możliwych rozwiązań: użyj frameworka (Symfony, Zend, CakePHP, Kohana, Yii, inny). To rozwiąże Twój problem ze strukturą katalogów oraz przyjaznymi adresami. Automatycznie.

Zgadza sie. Natomiast nie nauczy, jak to zrobic samemu i nie ulatwi zrozumienia problemu. Stad pytanie, czy chodzi tylko o rozwiazanie problemu (tutaj najlepszy bedzie gotowy framework) czy chodzi o nauke i tutaj raczej polecam wgryzienie sie w MVC i pobawienie sie akcjami itp.

Temat: Url i pliki w projekcie (podstawy)

Maja Miarecka:
Krzysztof N.:
Jedno z możliwych rozwiązań: użyj frameworka (Symfony, Zend, CakePHP, Kohana, Yii, inny). To rozwiąże Twój problem ze strukturą katalogów oraz przyjaznymi adresami. Automatycznie.

Zgadza sie. Natomiast nie nauczy, jak to zrobic samemu i nie ulatwi zrozumienia problemu. Stad pytanie, czy chodzi tylko o rozwiazanie problemu (tutaj najlepszy bedzie gotowy framework) czy chodzi o nauke i tutaj raczej polecam wgryzienie sie w MVC i pobawienie sie akcjami itp.

Zdecydowanie chodzi o naukę. Akcje - ma Pani na myśli metody kontrolera?
Czyli muszę stworzyć jakiś system routingu itp?(ogólnie mówiąc stworzyć swój mały framework mvc?)
To znaczy że nie warto "bawić" się w takie rozwiązanie jakie podałem w pierwszym poście?Mateusz Zieliński edytował(a) ten post dnia 27.11.11 o godzinie 21:48

konto usunięte

Temat: Url i pliki w projekcie (podstawy)

Mateusz Zieliński:
To znaczy że nie warto "bawić" się w takie rozwiązanie jakie podałem w pierwszym poście?

a niby dlaczego, uczysz się szybciej poprawiając błędy
Sławomir Jach

Sławomir Jach Programista,
DreamLab

Temat: Url i pliki w projekcie (podstawy)

Możesz uczyć się poprzez wynajdowanie koła po raz kolejny, albo zacząć od jakiegoś frameworka, który rozwiąże wszystkie podstawowe problemy z automatu.

konto usunięte

Temat: Url i pliki w projekcie (podstawy)

Sławomir Jach:
Możesz uczyć się poprzez wynajdowanie koła po raz kolejny, albo zacząć od jakiegoś frameworka, który rozwiąże wszystkie podstawowe problemy z automatu.

"zanim zaczniesz biegać, naucz się chodzić"

więc sugestia o uczeniu się gotowego rozwiązania jest trochę z czapy bo nie uczy budowy, tylko obsługi
Maja Miarecki

Maja Miarecki Senior Frontend
Developer

Temat: Url i pliki w projekcie (podstawy)

Sławomir Jach:
Możesz uczyć się poprzez wynajdowanie koła po raz kolejny, albo zacząć od jakiegoś frameworka, który rozwiąże wszystkie podstawowe problemy z automatu.

Jak chcesz sie nauczyc, jak dziala MVC, jak budowac poprawny routing miedzy elementami aplikacji, jesli korzystasz z gotowego rozwiazania?

Gotowce sa OK, jesli juz wiesz o co chodzi lub jesli nauka Cie w ogole nie interesuje.
Maja Miarecki

Maja Miarecki Senior Frontend
Developer

Temat: Url i pliki w projekcie (podstawy)

Mateusz Zieliński:
Zdecydowanie chodzi o naukę. Akcje - ma Pani na myśli metody kontrolera?

Mozna powiedziec, ze akcje to api kontrolera :) To jest to co wystawiasz na zewnatrz, do czego odwoluje sie Twoja aplikacja jawnie lub inne aplikacje (np poprzez Ajax).
Czyli muszę stworzyć jakiś system routingu itp?(ogólnie mówiąc stworzyć swój mały framework mvc?)

Jesli chcesz sie uczyc, to tak jest najlepiej. Poczytaj sobie o architekturze MVC i najlepiej o wzorcu fasada. To powinno wystarczyc na skromny poczatek.
To znaczy że nie warto "bawić" się w takie rozwiązanie jakie podałem w pierwszym poście?

Zawsze mozesz zaczac od czegos co dziala, a pozniej refaktoryzacja. Problem polega na tym, ze 90% moich znajomych poprzestalo na tym, co zadzialalo... Tak wiec ja osobiscie nie polecam tej metody, ale to juz zalezy od Ciebie.

konto usunięte

Temat: Url i pliki w projekcie (podstawy)

Sławomir Jach:
Możesz uczyć się poprzez wynajdowanie koła po raz kolejny, albo zacząć od jakiegoś frameworka, który rozwiąże wszystkie podstawowe problemy z automatu.

A potem wychodzą tacy artyści jak Ci od JavaScript. Mało znam ludzi którzy by naprawdę dobrze JS znali. Większość "zna jQuery" ale w surowym JS napisać dla nich coś to kosmos.
I tak taki ktoś jest dobry do momentu gdy jQuery ma wszystko co trzeba lub jest odpowiedni plugin...
Maja Miarecki

Maja Miarecki Senior Frontend
Developer

Temat: Url i pliki w projekcie (podstawy)

Dariusz Półtorak:
A potem wychodzą tacy artyści jak Ci od JavaScript. Mało znam ludzi którzy by naprawdę dobrze JS znali. Większość "zna jQuery" ale w surowym JS napisać dla nich coś to kosmos.
I tak taki ktoś jest dobry do momentu gdy jQuery ma wszystko co trzeba lub jest odpowiedni plugin...

Tutaj wcale do JS nie trzeba sie odwolywac... Ja znam specjalistow od Zenda, ktorzy sami zadnego wzorca projektowego nie umieja zaimplementowac w PHP...

JS wymaga zmiany podejscia, w stosunku do innych jezykow programowania i na prawde jestem w stanie zrozumiec, ze kogos to przerasta, ale jesli ktos okresla sie programista PHP, z bardzo dobra znajomoscia ZF a napisanie dekoratora czy fasady przerasta jego umiejetnosci programistyczne, to mi sie slabo robi :/
Waldemar Jonik

Waldemar Jonik właściciel,
webmaster,
programista, JW Web
Development

Temat: Url i pliki w projekcie (podstawy)

napisanie takiego routingu dla jednej reguły to łatwizna (wystarczy znajomość mod_rewrite - użycie .htaccess, znajomość wyrażeń regularnych). napisanie od zera dobrego uniwersalnego routingu nie jest proste i pisanie go od zera nie ma sensu.

jeśli ktoś nie chce od razu używać całego framework a szuka uniwersalnego rozwiązania to najłatwiej wyciąc sobie taki modulik z danego framework i dostosować do własnego cms. w takim kohana wycięcie routingu to max 1 dzień pracy - można to spokojnie dostosować do każdego autorskiego skryptu w którym można dalej bawić się w MVC lub nawet bez mvc.
Maja Miarecki

Maja Miarecki Senior Frontend
Developer

Temat: Url i pliki w projekcie (podstawy)

Waldemar Jonik:
napisanie takiego routingu dla jednej reguły to łatwizna (wystarczy znajomość mod_rewrite - użycie .htaccess, znajomość wyrażeń regularnych). napisanie od zera dobrego uniwersalnego routingu nie jest proste i pisanie go od zera nie ma sensu.

Ma sens, bo kolega napisal, ze chce sie uczyc. Wiec nie chodzi o sam efekt, tylko o to, jak go samodzielnie osiagnac.
jeśli ktoś nie chce od razu używać całego framework a szuka uniwersalnego rozwiązania to najłatwiej wyciąc sobie taki modulik z danego framework i dostosować do własnego cms. w takim kohana wycięcie routingu to max 1 dzień pracy - można to spokojnie dostosować do każdego autorskiego skryptu w którym można dalej bawić się w MVC lub nawet bez mvc.

I jak wytniesz ten routing (a zrobisz to tylko i wylacznie wtedy, gdy wiesz o czym mowisz i wiesz czego szukac) to czego sie nauczysz? W sumie to juz niczego, bo zeby wykonac taka operacje musisz dysponowac jakas wiedza w tym zakresie...

Zend i inne frameworki sa po to, zeby ulatwic prace, ale najlepiej czlowiek uczy sie obiektowosci i praw nia rzadzacych samodzielnie piszac kod, testujac go i debuggujac.
Krzysztof N.

Krzysztof N. CEO. Aplikacje
internetowe i
mobilne. Symfony,
Zend.

Temat: Url i pliki w projekcie (podstawy)

Maja Miarecka:
Zgadza sie. Natomiast nie nauczy, jak to zrobic samemu i nie ulatwi zrozumienia problemu. Stad pytanie, czy chodzi tylko o rozwiazanie problemu (tutaj najlepszy bedzie gotowy framework) czy chodzi o nauke i tutaj raczej polecam wgryzienie sie w MVC i pobawienie sie akcjami itp.
W porządku. Niemniej jednak zawsze można uczyć się analizując kod frameworków. Taki kod będzie (powinien być) poprawnie napisany. Poza tym, jak napisałem, to jedno z możliwych rozwiązań, ale nie jedyne słuszne ;)Krzysztof N. edytował(a) ten post dnia 28.11.11 o godzinie 14:09

konto usunięte

Temat: Url i pliki w projekcie (podstawy)

Żeby analizować, trzeba posiadać jakąś wiedzę.
Żeby posiadać wiedzę, trzeba się nauczyć.
Żeby się nauczyć, trzeba zrobić źle i poprawić.
Maja Miarecki

Maja Miarecki Senior Frontend
Developer

Temat: Url i pliki w projekcie (podstawy)

Krzysztof N.:
W porządku. Niemniej jednak zawsze można uczyć się analizując kod frameworków. Taki kod będzie (powinien być) poprawnie napisany. Poza tym, jak napisałem, to jedno z możliwych rozwiązań, a jedyne słuszne ;)

Widziales kod chociazby ZF? Jak myslisz do jakich wnioskow moze dojsc osoba, ktora na ten temat ma wiedze zadna lub prawie zadna?

Analiza kodu ma sens, jesli szukasz konkretnego rozwiazania o ktoryms cos juz wiesz, ale nie masz pomyslu jak to zrobic. To tez jest forma nauki, ale do niej potrzebujesz odpowiedniego backgroundu, zeby cokolwiek skorzystac...
Tomasz Zadora

Tomasz Zadora programuję

Temat: Url i pliki w projekcie (podstawy)

Michał Wachowski:
[...]
Żeby się nauczyć, trzeba zrobić źle i poprawić.

Tak najczęściej jest, jednak... można jeszcze uczyć się na cudzych błędach, albo od razu nauczyć się dobrze ;-)

Kiedy np. skaczesz ze spadochronem, to margines błędu jest raczej mały ;-)
Waldemar Jonik

Waldemar Jonik właściciel,
webmaster,
programista, JW Web
Development

Temat: Url i pliki w projekcie (podstawy)

Maja Miarecka:
Waldemar Jonik:
napisanie takiego routingu dla jednej reguły to łatwizna (wystarczy znajomość mod_rewrite - użycie .htaccess, znajomość wyrażeń regularnych). napisanie od zera dobrego uniwersalnego routingu nie jest proste i pisanie go od zera nie ma sensu.

Ma sens, bo kolega napisal, ze chce sie uczyc. Wiec nie chodzi o sam efekt, tylko o to, jak go samodzielnie osiagnac.


ma sens napisanie tego w sposób mało uniwersalny - tak jak wspomiałem to proste zadanie do nauki. typowo uniwersalne rozwiązanie nadające się do produkcyjnego użycia jest trudne nie tylko z samej zasady działania routingu tylko ze szczegółów wyrażeń regularnych i kłopotów z różnymi ścieżkami, zmiennymi serwerowymi itp - nie da się tego wykonać dobrze w "domowych warunkach"
jeśli ktoś nie chce od razu używać całego framework a szuka uniwersalnego rozwiązania to najłatwiej wyciąc sobie taki modulik z danego framework i dostosować do własnego cms. w takim kohana wycięcie routingu to max 1 dzień pracy - można to spokojnie dostosować do każdego autorskiego skryptu w którym można dalej bawić się w MVC lub nawet bez mvc.

I jak wytniesz ten routing (a zrobisz to tylko i wylacznie wtedy, gdy wiesz o czym mowisz i wiesz czego szukac) to czego sie nauczysz? W sumie to juz niczego, bo zeby wykonac taka operacje musisz dysponowac jakas wiedza w tym zakresie...

zakładam, że siadając do frameworka siada się też do jego dokumentacji :)
zakladam, że jak ktoś coś programuje to najpierw czyta teorię :)
a w przypadku kilku frameworków sama dokumentacja to niezły podręcznik MVC

ja tak się tego uczyłem - 1. kilka ogólnych artykułów, 2. dokumentacja i rozkładanie wielu frameworków na czynniki pierwsze aż zrozumiem "jak to działa" a potem przerobie pod moje potrzeby

jeśli ktoś zupełnie zaczyna z php to zamiast kohana, zend itp lepiej - najpierw trochę teorii, potem przeglądanie przykładowego kodu np http://kissmvc.com/php_mvc_framework a potem pisanie czegoś o podobnym działaniu
Maja Miarecki

Maja Miarecki Senior Frontend
Developer

Temat: Url i pliki w projekcie (podstawy)

Waldemar Jonik:
zakładam, że siadając do frameworka siada się też do jego dokumentacji :)
zakladam, że jak ktoś coś programuje to najpierw czyta teorię :)

O to to... Najpierw nauczmy sie teorii. Z tego co zdazylam zauwazyc, zalozyciel watku cos tam o MVC slyszal.
a w przypadku kilku frameworków sama dokumentacja to niezły podręcznik MVC
ja tak się tego uczyłem - 1. kilka ogólnych artykułów, 2. dokumentacja i rozkładanie wielu frameworków na czynniki pierwsze aż zrozumiem "jak to działa" a potem przerobie pod moje potrzeby

No widzisz, a ja sie uczylam inaczej (chocby dlatego, ze wtedy pojecie framework kojarzylo sie raczej z Java niz PHP :P). Stosujac pewne, nauczone w teorii, zasady w swoim wlasnym kodzie tez mozesz sie nauczyc poprawnego programowania. I zawsze zaczyna sie od prostego kodu, jakas strona z kilkoma akcjami, jakies dane do zapisania/wyciagniecia z bazy danych. I juz masz kilka wzorcow projektowych. I troche wlasnego doswiadczenia, ktore mozesz zaczac konfrontowac z reszta swiata.
jeśli ktoś zupełnie zaczyna z php to zamiast kohana, zend itp lepiej - najpierw trochę teorii, potem przeglądanie przykładowego kodu np http://kissmvc.com/php_mvc_framework a potem pisanie czegoś o podobnym działaniu

Ja raczej obstwiam teorie, wlasne proby i dopiero pozniej konfrontacja z czyms co istnieje, bo tylko w ten sposob mozna zauwazyc swoje bledy w rozumieniu pewnych rzeczy. Jesli od samego poczatku bazujesz na kodzie stworzonym przez kogos innego nie masz mozliwosci krytycznego spojrzenia na wlasna produkcje, ktora jest wiernym odzwierciedleniem tego jak pojmujesz dane zagadnienie.

I tak sie zastanawiam, skoro mamy bazowac na rozwiazaniach dostarczonych nam przez innych, to kiedy mamy tworzyc swoje wlasne? Kiedy mamy sie uczyc i przekraczac wlasne ograniczenia? Moment nauki jest najlepszym na swiecie momentem do wlasnych eksperymentow, bo wtedy jest czas na to, zeby tetsowac i bawic sie kodem.

Następna dyskusja:

Skrypt php - Dział pliki




Wyślij zaproszenie do