Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przykład obiektowo napisanej strony..., Gdzie możę znaleźć prosty przykład obiektowo zrobionej całej strony?
l05i3k
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 31.08.2006
Skąd: Stalowa Wola

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


Witam,
dopiero zaczynam przygodę z obiektowym php'em, a do tej pory tworzyłem stronki proceduralnie.

Przeczytałem kilka kursów, przejrzałem kilkadziesiąt stron książki do programowania obiektowego w php (http://helion.pl/ksiazki/php5zp.htm), ale w zasadzie oprócz poznania w miare dobrze pojęć mi nic to więcej nie dało.

Postanowiłem więc porpostu mniej więcej przygotowac sobie zarys aplikacji, którę chcę stworzyć i się za nią zabrać próboując zrobić to obiektowo. Jednak zatrzymałem się już na samym początku. Nie do końca wiem, jak zacząć clase. Dlatego chciałbym prosić o jakiś adres strony, na której znajduje się w miare prosty sposób wykonana jakaś strona obiektowo. Oczywiście mógłbym wziąć takie postnuke i analizować linijka po linijce, ale wątpie, abym tak szybko sie w tym połapał. Potrzebuję czegoś bardziej ludzkiego i prostrzego. Może ktoś ma gdzieś jakąś swoją starą stronę wykonaną obiektowo i zechciałby udostępnić jej kod źródłowy? (prosiłbym tylko, o to, aby w miare możliwości wykonana ona była w php5)

Lub, jeśli ktoś ma czas, aby podpowiedział jak rozwiącać taki przykładowy problem:
Załóżmy, że mamy jedną ogromną klasę "Tresci", a w niej chcecie umieścić podklasy Artykuły, Newsy, Recenzje itp. I teraz jak się do tego zabrać? Czy już w klasie "Tresci" do konstruktora wywalić polecenie pobrania z bazy pierwszego artykułu, badź news'a? Czy może robić to osobno w każdej podklasie? Jak wykonać konstruktor pobierający odrazu elementy z bazy danych? Łączyć się z bazą standardowo? Czy wykorzystać obiektowa bibliotekę mysqli? Czy tworzyc uchwyt w konstruktorze klasy Treści, czy zapisać metody obsługi bazy w innej klasie i włąnczyć go do bazy Tresci?

Bybym wdzięczny za wszelkie rady, lub delikatne sugestie.
Bardzo jednak bym prosił, o to, aby ktoś w miare możliwości udostępnił mi jakiś swój stary projekt strony zrobiony obiektowo w php5...

Z góry dziękuję.

Ten post edytował l05i3k 2.11.2007, 16:52:21
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
carbolymer
post
Post #2





Grupa: Zarejestrowani
Postów: 102
Pomógł: 12
Dołączył: 27.01.2007
Skąd: north              Poziom: 158                     Tytuł: Miszcz

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


Cytat
Zanim ja pojalem obiekty i cala reszte to minelo 4-5lat, tak ze jestes w lepszej sytuacji, masz internet, dostep do dobrych ksiazek itp, to po prostu trwa troche.

Heh, programowanie proceduralne to tak jakbym sie cofnął o 3 miesiące w czasie, teraz jak zaglądam do tamtejszego kodu to dziwię się jaki byłem niechluj i zastanawiam sie czemu nie korzystałem z php 5 (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Cytat( @ 3.11.2007, 15:50:00 ) *
poczytaj se o MVC (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
MVC to przyklad sposobu na "obiektowe napisanie strony"

pozniej przeczytaj sobie 2 rozdzial manuala symfony:
http://www.symfony-project.com/book/1_0/02...-Symfony-s-Code

jest tu opisane w praktyce jak sie stosuje mvc (jak symfony stosuje mvc)

MVC jak na początek przygody z programowaniem obiektowym to chyba trochę za wiele (IMG:http://forum.php.pl/style_emoticons/default/cool.gif)

Spróbuj zrobić tak żeby było wygodnie i z zachowaniem umiaru. Pamiętaj o zasadzie kapsułkowania (rozdzielania zadań do mniejszych podjednostek) i strzeż się od przedawkowania tejże zasady.

Ja bym zrobił to tak:
class DBDriver{}
Tutaj dajesz obsługę mysql - czyli przechwytywanie błędów, zabezpieczanie przed SQLInjection, wykonywanie kwerend, łączenie i rozłączanie.
class Contents {}
Ta klasa przechowuje referencję do DBDriver, obsługuje operacje wspólne dla klas dziedziczonych (czyli np. głosowanie, komentowanie)
class Article extends Contents {}
Ta klasa ma te metody, które nie mogą być użyte w klasie News
class News extends Contents() {}
Ta klasa ma te metody, które nie mogą być użyte w klasie Article

Spróbuj napisać swój kod jak najbardziej abstrachując (chyba tak sie to pisze (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ) - tworząc interfejsy, po których nie można poznać że używasz bazy danych.

Tak naprawdę proponowałbym ci nie dzielić dane na klasy, ale części aplikacji np. połączenie z bazą, operacje na newsach, wyświetlanie, śledzenie błędów.
Spróbuj może opisać jaśniej swój problem.

Ten post edytował carbolymer 10.11.2007, 19:47:49
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 17.10.2025 - 15:04