Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/oop] Zapisanie obiektu do bazy danych, ... nieobiektowej
jastu
post
Post #1





Grupa: Zarejestrowani
Postów: 382
Pomógł: 0
Dołączył: 29.11.2005
Skąd: :jestem();

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


Witam,
chciałlbym zapytać o sposób przechowywania i zapisywania danych do bazy przy obiektowej architekturze aplikacji. Problem polega na zapisaywaniu obiektu do bazy lub jego składowych (tworzenie obiektu może odbywać się przez przekazani ID obiektu do konstruktora klasy, a zapisywanie ?).

Sposób pierwszy : czy metoda zapisująca do bazy w klasie modelu powinna być metodą statyczną ?
  1. <?php
  2. mObjekt :: add($obj_name,$obj_value);
  3. ?>


Sposób drugi : medota niestatyczna === dodatkowa zmienna objektu
  1. <?php
  2. $objekt = new mObjekt()
  3. $objekt->add($obj_name,$obj_value);
  4. ?>


Inne rozwiązanie : czy może przechowywać obiekty razem z ich stanem zseraializowane w bazie (lub jako xml) tj. stworzyć objekt, przypisać składowe i zapisać.... jak wygląda wtedy kwestia bardziej złożonych zapytań (nie po ID objektu) ?

taki mam dylemat....może ktoś wykorzystuje coś bardziej przemyślanego.
Pozdrawiam

Naprawdę nie ma nikt nic do powiedzienia na ten temat ?


--------------------
Powyższy post wyraża jedynie opinię autora w dniu dzisiejszym. Nie może on służyć przeciwko niemu w dniu jutrzejszym. Ponadto autor zastrzega sobie prawo zmiany poglądów, bez podawania przyczyny.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
joebezucha
post
Post #2





Grupa: Zarejestrowani
Postów: 43
Pomógł: 1
Dołączył: 23.05.2007
Skąd: Gliwice

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


hmm ja wykorzystuje Propel... i nie mam takich dylematow;)

moze podejrzyj jak to tam jest rozwiązane.

W skrócie to dla jednej klasy obiektów tworzone są tak naprawdę dwie klasy (a tak naprawde to cztery ale to juz inna kwestia):
- klasa samego obiektu np. Auto
- klasa sluząca do pobierania obiektow klasy Auto - AutoPeer (zawiera statyczne metody)

aby zapisac zmiany w obiekcie klasy Auto:
oAuto->save();

aby stworzyc nowy obiekt:
newAuto = new Auto();

aby zapisac do bazy:
newAuto->save();

to tyle co moge w tym temacie napisac:)
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 - 19:52