Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] obiektowosc i troche pytan, pytanie o podejscie i wasze doswiadczenia
kamiseq
post
Post #1





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 12.07.2005
Skąd: krakow

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


witam,
nie bede pytal jak stworzyc klase w php i czy wogole programowanie obiektowe ma sens, bo takie pytania sa nie na miejscu.

od poczatku.
chcialbym stworzyc np galerie zdjec i przy okazji pobawic sie troche php wykorzystujac obiekty. i tu rodzi sie wiele pytan.
1)galeria to zbior zdjec ktore same w sobie sa obiektami(maja jakas zawartosc, wymair, nazwe, itp). wiec moj obiekt bedzie czysto opisowy, bedzie niejako kopiowal to co juz jest zapisane w zdjeciu, dostarczal zebranych metod do odczytania tych informacji czy modyfikacji zdjecia.

a i tak koniec koncow celem nie jest utworzenie obiektu samego w sobie lecz stworzenia pliku HTML i zycie takiego obiektu sie konczy. tak czy siak sie zakonczy jak uzytkownik zamknie przegladarke.

dlatego uwazam ze uzywanie obiektow w php ma ograniczone zastosowanie.

widze tu 2 podejscia.
w momencie kiedy chce tylko pokazac zdjecia w przegladarce stosuje podejscie podstawowe lub wykorzystuje metody statyczne. kiedy uzytkonik bedzie chcial zmodyfikowac konkretne zdjecie - tworze obiekt i wykonuje operacje.

reasumujac
przy tworzeniu stron dzialamy na fizycznych obiektach(zdjecie, rekord tabeli z informacja o uzytkowniku, lista ksiazek) w wiekszosci przypadkow nie musimy nic z nimi robic a tylko je pokazac. dlatego stworzenie duzej ilosci obiektow przechowujacych pelna informacje mija sie z celem i jest malo wydajne.

chcialbym poznac wasza opinie na ten temat, bo mam male doswiadczenie w pisaniu obiektowym w php, a nie chce wywazac otwartych drzwi

pozdrawiam (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif)
Go to the top of the page
+Quote Post
sticker
post
Post #2





Grupa: Zarejestrowani
Postów: 611
Pomógł: 19
Dołączył: 28.02.2005
Skąd: Wrocław

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


wg mnie musisz wiedzieć jakiego rozmiaru masz projekt... to jest podstawowe kryterium stosowania obiektowości, bo po co wytaczać działa na domek z zapałek.. Zaraz zwolenicy programowania obiektowego będą mnie chcieli ukrzyżować ale osobiście twierdze że do małych prostych skrytów nie potrzebne jest budowanie obiektów bo to tylko będzie spowalniąc działanie skryptu (chociaż wydajność przy mały skrypcie i tak sie nie bedzie liczyć )
Musisz wykorzystać swoją intuicję kiedy stosować obiekty i kiedy je wykorzystywać. Jeżeli piszesz jakies oskryptowanie i wiesz że nigdzie Ci sie to nie przyda bo polega na prostym przeworzeniu formularza to nie ma sensu zaprzęgać całego mechanizmu obiektowego. Natomiast jeżeli korzystasz z jakiejś bazy i przechowujesz coś co symuluje "rzeczywistość" ( wiesz że coś spełnia kryteria by być obiektem obiektem i nie bedzie sie składał tylko z konstruktora getów i toString() ) to jak najbardziej warto zastosować podejście obiektowe.


---

Osobiście brałem udział w towrzeniu dwóch dużych portali muzycznych i mobilnych i tam bez obiektowoście nie można sie było obejść. Warstwa biznesowa wyszła dość skomplikowana i nie wiem kto by to ogarnął proceduralnym podejście (chyba tylko maniacy asemblera lub VHDLa )

Ten post edytował sticker 21.11.2006, 02:51:34
Go to the top of the page
+Quote Post
kamiseq
post
Post #3





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 12.07.2005
Skąd: krakow

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


moje pytanie dotyczy tez pewnej wydajnosci uzycia pamieci, itp
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #4





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Owszem - jeśli powołujesz obiekt, to wypadałoby, aby można zrobić z nim coś więcej niż tylko wyświetlić. Pamiętaj jednak, że nie zawsze powołanie obiektu musi być całkowite. Nie musisz wywoływać wszystkich jego metod, czy wypełniać wszystkich wartości. Po prostu konstruujesz obiekt etapowo, co zaoszczędza wiele czasu.

Używanie obiektów ma ograniczenia. Można jednak zawsze zserializować dane (obiekt), a to również oszczędza sporo czasu.
Zgadzam się do wypowiedzą stickera dotyczącej zastosowania oop, ale do galerii zdjęć polecam obiekty.

Pozdrawiam.
Go to the top of the page
+Quote Post
kamiseq
post
Post #5





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 12.07.2005
Skąd: krakow

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


Cytat(Cysiaczek @ 21.11.2006, 09:27:17 ) *
Pamiętaj jednak, że nie zawsze powołanie obiektu musi być całkowite. Nie musisz wywoływać wszystkich jego metod, czy wypełniać wszystkich wartości. Po prostu konstruujesz obiekt etapowo, co zaoszczędza wiele czasu.

co przez to rozumiesz? powolujac obiekt rezewujesz iles miejsca w pamieci i czas na to posiwecony jest staly(?) bez wzgledu czy wypelnisz go konkretnymi wartosciami. myle sie?
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #6





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Głowy nie dam, ale chyba się nie mylisz. Nie w tym jednak rzecz. Jest różnica pomiędzy obiektami tak konstruowanymi:
  1. <?php
  2. class obrazek{
  3. function __construct(){
  4. //pozyskanie danych
  5. }
  6. }
  7. ?>

a tak:
  1. <?php
  2. class obrazek{
  3. function __construct(){
  4. $this->getBaseData();
  5. }
  6.  
  7. function getBaseData(){
  8. //pozyskiwanie danych podstawowych
  9. }
  10.  
  11. function getContextData(){
  12. //pozyskiwanie danych zeleżnych od kontekstu
  13. }
  14. }
  15.  
  16. //i teraz zawsze
  17. $obrazek=new obrazek();
  18.  
  19. //ale już niekoniecznie, bo to zależy od użytkownika
  20. $obrazek->getContextData();
  21. ?>


Pomijając użyteczność przykładu... które rozwiązanie jest elastyczniejsze?
Jedyne, co się dzieje przy konstrukcji obiektu, to wczytanie niezbędnych danych, a reszta jest po prostu zadeklarowana.
php samo decyduje o przydzielanie pamięci w zależności od potrzeb.

Pozdrawiam.

Ten post edytował Cysiaczek 21.11.2006, 12:53:48
Go to the top of the page
+Quote Post

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: 23.08.2025 - 11:19