Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> obiekty w php, zeby za bardzo nie namieszac
Braszynka
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 29.12.2004

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


pisze system do obslugi biblioteki,chcialam zeby byl fajnie modularny,wiec podzielilam go na klasy i takie tam.i wszystko bylo dobrze,bo w sumie fajnie sie tworzy nowe dane za pomoca obiektow(tylko new i hop do tabeli za pomoca mysql_query),w ten sposob w klasie obslugujacej ksiazki mam dane o nich jako wlasciwosci oraz w tym momencie dwie funkcje - konstruktor i dodawanie,ale...zastanawiam sie jak w podobny sposob zrealizowac edycje i usuwanie i czy wogole sie oplaca.
myslalam zeby zrobic to tak,ze chce usunac ksiazke jakas tam z listy,no to tworze tyle obiektow ile ma lista,wyswietlam je,a nastepnie usuwam ten pasujacy do tego ktory chce usunac,no ale jak bede miec tysiac ksiazek a usuwac bede jedna to chyba ladna bzdura.no ale tylko w ten sposob moge korzystac z funkcji usuwania w klasie ksiazki.
i wlasnie nie wiem czy zrezygnowac z tego usuwania w klasie i zrobic poza klasa zwykle funkcje do usuwania ktorej argumentem bedzie jakies id ksiazki np? no ale czy to nie bedzie "mniej elegancko" niz na klasach?
jak myslicie?
Go to the top of the page
+Quote Post
Ludvik
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 698
Pomógł: 3
Dołączył: 28.03.2004
Skąd: Wrocław

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


Dobrym wyjściem jest stworzenie klasy pojedynczej książki oraz kontenera. Kontener by się zajmował pobieraniem listy książek, które ciebie interesują i przypisywaniu danych z bazy do obiektów. Jeden obiekt = jedna książka. Oczywiście klasa książka (powiedzmy, że tak ją nazwiemy) posiada wszystkie informacje. Wtedy jest sens dopisywania dwóch metod do klasy książka - do edycji i usuwania. Myślę, że to jest najbardziej eleganckie rozwiązanie. Mam nadzieję, że opisałem to w miare zrozumiale. Jeszcze można to przedstawić w formie interfejsów.
  1. <?php
  2.  
  3. interface Kontener
  4. {
  5. // Pobiera dane z bazy i tworzy obiekty.
  6. public function pobierzKsiazki($od, $ilosc);
  7. // Zwraca obiekt klasy Ksiazka.
  8. public function ksiazka($id);
  9. }
  10.  
  11. interface Ksiazka
  12. {
  13. // Przypisywaniu danych do zmienny nie przerabiam - kwestia zapotrzebowania.
  14. // Usuwa książkę.
  15. public function usun();
  16. // Poprawia poprzednie dane z bazy na nowe - przypisane do zmiennych wewn.
  17. public function zmien();
  18. }
  19.  
  20. ?>


Przynajmniej ja tak to widzę.


--------------------
Go to the top of the page
+Quote Post
Vengeance
post
Post #3





Grupa: Zarejestrowani
Postów: 657
Pomógł: 2
Dołączył: 15.08.2003
Skąd: Łódź

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


kiedys bodajrze @hawk w pewnej dyskusji na jakiś tam mój problem
stwierdził, że raczej usuwanie powinno być w kontenerze. Czemu?
Kod
$ksiazka = new Ksiazka($jakiesID)
$ksiazka->usun();


co w tym momencie reprezentuje obiekt $ksiazka? ;]


--------------------
Go to the top of the page
+Quote Post
Ludvik
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 698
Pomógł: 3
Dołączył: 28.03.2004
Skąd: Wrocław

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


Możesz wyzerować wartości przy usuwaniu i zwracać nulle przy dostępie do książki, ale masz rację, lepiej będzie w kontenerze usuwanie umieścić.


--------------------
Go to the top of the page
+Quote Post
Vengeance
post
Post #5





Grupa: Zarejestrowani
Postów: 657
Pomógł: 2
Dołączył: 15.08.2003
Skąd: Łódź

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


tak w ogóle polecam także autorowi wątku zainteresować się czymś co nazywają DAO


--------------------
Go to the top of the page
+Quote Post
Braszynka
post
Post #6





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 29.12.2004

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


mysle,ze rozumiem o co chodzi z tym kontenerem,ze tez sama na to nie wpadlam;)
co do dao to mi sie jakos niebezpieczenie z accessem kojarzy.tak czy inaczej dzieki:)
Go to the top of the page
+Quote Post
bela
post
Post #7


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


Cytat(Braszynka @ 2004-12-29 21:17:32)
mysle,ze rozumiem o co chodzi z tym kontenerem,ze tez sama na to nie wpadlam;)
co do dao to mi sie jakos niebezpieczenie z accessem kojarzy.tak czy inaczej dzieki:)

a mi jakos z Javą winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
hubertsk
post
Post #8





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 8.01.2004
Skąd: 3miasto

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


a ja bym polecił jakieś mapowanie O/R, np Propel
super fajna rzecz - tworzy za Ciebie obiekty odpowiadające obiektom w DB... masz też metody do szukania, dodawania, kasowania...
I mi to się kojarzy z Hibernate z Javy tongue.gif

Pozdrawiam


--------------------
Nie ma takiej bzdury, której nie da się uzasadnić modelem komputerowym.
Tools: Apache 2.0.53 || PHP 5.0.3 || MySQL 4.1.7 || Zend Studio 4 || Eclipse Platform || Dreamwea
Go to the top of the page
+Quote Post
hawk
post
Post #9





Grupa: Zarejestrowani
Postów: 521
Pomógł: 0
Dołączył: 3.11.2003
Skąd: 3city

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


No bez przesady. Między propel a hibernate jest cała przepaść. Hibernate dla php nie ma i pewnie nie będzie, chociaż na sitepoincie można zobaczyć ciekawe próby. Co innego hibernowanie w Javie raz na jakiś czas, a co innego w php setki? razy na sekundę.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 13:06