![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Jakiś czas temu wpadł mi do głowy pomysł aby stworzyć stronę www, na której użytkownicy będą zdobywać punkty, a potem kupować za nie różne przedmioty w sklepiku. Zacząłem prace, wszystko pisałem proceduralne i jakoś to szło, do czasu... Gdy kod się rozbudował ciężko było cokolwiek zmodyfikować(np. http://wklejaj.pl/8j2dt ). Ta sytuacja skłoniła mnie do zagłębienia się w programowanie obiektowe. Przeczytałem parę artykułów, itp. i zdobyłem podstawowe informacje o programowaniu obiektowym. Tutaj jest przykład klas, które stworzyłem: http://wklejaj.pl/05ngc http://wklejaj.pl/m8iqa Na razie skromnie to wygląda, jeszcze nie do końca rozumiem to zagadnienie, muszę poćwiczyć. Mam problem, bo nie wiem jak rozplanować taką stronę. Nie do końca wiem co ma być klasą, a co nie, ile ma ich być i jak je podzielić... Szukam jakiegoś schematu jak to wszystko rozplanować. Jak myślicie z czego można skorzystać przy tworzeniu tej strony? Do tej pory miałem jeden plik z wszystkimi funkcjami i wywoływałem je w określonych podstronach. Teraz trzeba to rozdzielić jakoś na klasy i tutaj mam problem. Mogę stworzyć np. jedną klasę User odpowiedzialną za logowanie i dalszą współpracę z użytkownikiem (wyświetlanie, zmienianie danych, itp.) ale czy np. dla funkcji ,,zapomniałem hasła" też pasowałoby zrobić klasę? Na swojej stronie przewiduję mieć: rejestrację, logowanie na sesjach, zapomniałem hasła, aktywację użytkowników przez maila, captchę, newsy, sklepik, logi(np. kiedy ktoś i z jakiego IP próbował się logować na konto danego użytkownika), itp. Prosiłbym o jakieś sugestie. Pozdrawiam! |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 246 Pomógł: 31 Dołączył: 13.11.2006 Skąd: się znamy? Ostrzeżenie: (0%) ![]() ![]() |
Przede wszystkim programowanie proceduralne wcale nie jest winne nieczytelności Twojego kodu ale to jak programujesz. Da się programować proceduralnie i mieć porządek. Oczywiście dzięki obiektówce jest to bardziej naturalne i niejako wymusza pewną separację (choć niektórzy uparcie temu przeczą
![]() To o co pytasz to wzorce projektowe (Design pattern). Ten który będzie Cię szczególnie interesował to MVC. Na wortalu są artykuły które mogą stanowić dla Ciebie niezłą bazę. Powodzenia! -------------------- Goldenline: Łukasz Rodziewicz
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 597 Pomógł: 30 Dołączył: 19.02.2003 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Chyba każdy kto zaczynał poznawać MVC starał się przeglądać frameworki, które są na rynku. Zobacz jak to wygląda u innych, a może zaczniesz od używania gotowych struktur i znich będziesz budował aplikacje? Gdy już poznasz 2-3 takie sytemy na pewno łatwiej będzie coś tworzyć własnego.. o ile wyda Ci się to konieczne. Zauważ, że w wielu firmach korzystają z gotowych frameworków dostępnych za rynku.
Ten post edytował sf 30.10.2008, 13:42:11 -------------------- Zapraszam na mój php blog, tworzenie stron.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź!
Przede wszystkim programowanie proceduralne wcale nie jest winne nieczytelności Twojego kodu ale to jak programujesz. Da się programować proceduralnie i mieć porządek. Oczywiście dzięki obiektówce jest to bardziej naturalne i niejako wymusza pewną separację (choć niektórzy uparcie temu przeczą ![]() To o co pytasz to wzorce projektowe (Design pattern). Ten który będzie Cię szczególnie interesował to MVC. Na wortalu są artykuły które mogą stanowić dla Ciebie niezłą bazę. Powodzenia! Co do programowania proceduralnego masz rację. Wiem, że mój kod = chaos, mimo że starałem się to jakoś poukładać ![]() Chyba każdy kto zaczynał poznawać MVC starał się przeglądać frameworki, które są na rynku. Zobacz jak to wygląda u innych, a może zaczniesz od używania gotowych struktur i znich będziesz budował aplikacje? Gdy już poznasz 2-3 takie sytemy na pewno łatwiej będzie coś tworzyć własnego.. o ile wyda Ci się to konieczne. Zauważ, że w wielu firmach korzystają z gotowych frameworków dostępnych za rynku. Dzięki za radę. Trochę już u nich co nieco podpatrzyłem i coś się już w głowie klaruje. Na pewno korzystanie z gotowych to oszczędność czasu i wysiłku ale zagłębienie się w programowaniu obiektowym to pójście do przodu i zdobycie nowych doświadczeń. Na razie zabieram się za czytanie i naukę, jeśli coś wykombinuję na pewno tu wrócę. Pozdrawiam! |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 23.02.2005 Ostrzeżenie: (10%) ![]() ![]() |
Nie ma to jak wciskanie frameworka i wzorca MVC osobie, która wyraźnie napisała, że dopiero zaczyna przygodę z OOP... Mało tego, padł nawet pomysł napisania go od podstaw! W jakim celu pytam? Zamiast pisać 30-ty framework może warto dołączyć się do jakiegoś projektu, jeśli widzimy, że są w nim rzeczy, które możemy poprawić?
Wracając do tematu. W Twoim przypadku problem polega na tym, że trzymasz kod html i php w jednym pliku. Spróbuj rozdzielić warstwę logiki biznesowej od warstwy prezentacji. Mimo, że już wyrosłem ze Smarty, to polecam Ci go do tworzenia szablonów. Unikniesz w ten sposób mieszania tych warstw. Staraj się używać najprostszych operacji wyświetlania danych itp. wzbraniając się przed ich modyfikacją (nie mylić z formatowaniem), bo z prostego szablonu można zrobić kolejny plik z kodem, a w Smarty jest to niestety możliwe. Programowania OOP nie unikniesz. Wszelkie biblioteki jak np. Smarty są udostępniane jako klasy. W przyszłości możesz poczytać o architekturze Model 2 (zmodyfikowany MVC na potrzeby www) i zacząć używać gotowych rozwiązań. Na początek możesz poczytać o CakePHP, Code Igniter, Kohana. Potem możesz nauczyć się modelowania w UML, wzorcach projektowych, ale nie popadaj w zachwyt jak większość tu ![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 113 Pomógł: 5 Dołączył: 12.09.2006 Skąd: Pruszków/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Skad to uwielbienie dla Smartow to nie mam pojecia. Rzecz archaiczna, pisana w PHP 4 i baaaaardzo wolna. Po co stosowac polowiczne rozwiazania? Jakos nie widze obecnie w ogloszeniach o pracy potrzeby znajomosci Smarty czy innego systemu szablonow, za to frameworkow chce kazdy. Dlaczego? Ano bo raz, ze wymuszaja porzadek, dwa, ze sa obecnie uzywane powszechnie do tworzenia aplikacji.
Jesli kolega zaczyna dopiero przygode z OOP niech wezmie sobie wlasnie od razu jakis framework (najlepiej Symphony bo ma maaaaaase tutoriali/przykladow na sieci) i tam sie wszystkiego wyuczyc. I niech nikt nie mowi, ze to trudne, ja sie uczylem OOP na Zend Framework w wersji 1.0.1 bodajze i jakos wyszlo mi to na dobre. -------------------- "Człowiek dążący do swego celu może być skuteczny tylko w przypadku, jeśli każdą minutę swego życia wykorzysta z maksymalną korzyścią dla osiągnięcia zaplanowanego celu. Jeśli stworzył dla siebie system kar i karze sam siebie za każdą zmarnowaną minutę. Człowiekowi w zupełności wystarczą 3-4 godziny snu, cały pozostały czas może być wykorzystany dla osiągnięcia upragnionego celu." -- Wiktor Suworow
Java devBlog KulturalnyChlebik |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jestem jak najbardziej początkującym, znam jakieś tam podstawy. Obiektowego PHP chcę się nauczyć, żeby potem w miarę sprawnie pisać aplikacje www. Na razie chciałem skrobnąć w miarę nieskomplikowany kod uwzględniający dane z pierwszego postu. Mam już część gotowych funkcji i teraz pasowałoby to sensownie poukładać w klasy. Ostatnio trochę z tym kombinuję. Co do tych wszystkich Smartów, itd. to myślałem nad stworzeniem osobnej klasy zajmującej się prezentacją danych.
Cytat(chlebik) framework (najlepiej Symphony bo ma maaaaaase tutoriali/przykladow na sieci) i tam sie wszystkiego wyuczyc. Masz na myśli podglądanie jak to robią profesjonaliści? Pozdrawiam! |
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Mam już część gotowych funkcji i teraz pasowałoby to sensownie poukładać w klasy. To nie tak ![]() ![]() Pozdrawiam! -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
To nie tak ![]() ![]() Pozdrawiam! Czy tak na bank załapie to nie wiem... Wykombinowałem coś takiego: http://wklejaj.pl/dxvl2 (wcześniej zrobiłem: http://wklejaj.pl/05ngc )? Reszty nie kończyłem bo nie wiem czy o to chodzi. Pod jakim hasłem mam szukać tych artykułów? Ten post edytował Ziem 11.11.2008, 16:28:12 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
Witaj!
Taka mała uwaga ![]() Pozdrawiam! -------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ok, to już załatwiłem. A reszta?
Co z "die ..", mam tego używać w tej klasie? Pozdrawiam! |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 23.02.2005 Ostrzeżenie: (10%) ![]() ![]() |
Ok, to już załatwiłem. A reszta? Co z "die ..", mam tego używać w tej klasie? Pozdrawiam! Nie. Masz używać throw zamiast die(), czyli:
A potem:
W ogóle to radzę skorzystać z dostępnej w PHP klasy PDO, zamiast tworzyć swoją ![]() O wyjątkach: http://pl2.php.net/exceptions Ten post edytował markac 11.11.2008, 22:28:04 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 30.06.2025 - 08:11 |