![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 362 Pomógł: 0 Dołączył: 18.02.2004 Skąd: Knurów Ostrzeżenie: (0%) ![]() ![]() |
Ze względu na mało kreatywnych tematów na forum php Pro proponuję taką dyskusję.
Które z rozwiązań wydaje wam się korzystniejsze: ORM Stricte mapowanie bazy danych do obiektów, które następnie można łatwo wykorzystać w php. Bardzo intuicyjne i wygodne, szczególnie jeśli zaimplementujemy rozwiązanie, które jest w stanie na bieżąco odwzorowywać zmiany w bazie danych (dodatkowe tabele, itd.). Dodawanie nowej klasy to po prostu stworzenie dodatkowej tabeli, nowy obiekt to rekord. Wadą jest brak pewnej unifikacji i kłopot z utworzeniem drzewa obiektów, ale myślę, że jest to do obejścia. Przykład takiego rozwiązania możemy znaleźć w Ruby on Rails. VFS Wirtualny system plików też jest ciekawym rozwiązaniem, wprowadzającym jakby dodatkową strukturę w bazie danych, która następnie jest odwzorowywana w postaci obiektów php. Rozwiązanie o tyle dobre, że automatycznie wprowadza nam pewną strukturę drzewiastą, w której mamy nasze obiekty i w jednej gałęzi mogą znajdować się różne obiekty, np. artykuły, komentarze, pliki, itd. Największą wadą jest to, że wprowadzamy dodatkową "warstwę" modelu, która musi te wszystkie elementy poskładać w całość i przedstawić w postaci obiektów i dodatkowych narzędzi do ich wyszukiwania/pobierania. Jest to nieco mniej intuicyjne, gdyż dodanie nowej klasy/obiektu wymaga znajomości pewnych założeń systemu plików i jeśli nie jest do tego udostępnione dodatkowe narzędzie to mamy problem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Przykładowe drzewo takiego systemu plików: http://www.binarychoice.pl/_images/p28/carbon-uml.gif Mam nadzieję Seth, że nie masz nic przeciwko (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Oba rozwiązania mają swoje minusy, ja planowałem zaimplementować w swoich projektach VFS, ale przyglądając się prezentacjom Ruby on Rails byłem mile zaskoczony prostotą ich ORM-a. Chyba najlepszym rozwiązaniem będzie jakieś połączenie obu rozwiązań. Cóż więcej mogę powiedzieć - do dyskusji koledzy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Gdyby tylko w php bylo wspierane programowanie Aspektowe (AOP) nie bylo by problemow (mozna bylo by z poziomu AOP mapowac klasy na dane w bazie), a tak najpierw trzeba robic struktury w bazie aby pozniej tworzyc dynamicznie klasy i obiekty, ktore beda sie przekladac na dane w bazie (mam nadzieje, ze to ne brzmi jak maslo maslane (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ).
Przy tamtej struktorze bazy zakladam, ze jest ona szkieletem, a zarazem dostawca danych (instancje obiektu) ale i tak i tak trzeba na jej podstawie wygenerowac klasy w php aby moc latwo sie do nich dobrac. P.S. Strukture ktoral podales matid raczej bym zakwalifikowal do ORM bo celem jej nie bylo stworzenie virtualnego systemu plikow. Ten post edytował Seth 8.02.2006, 17:46:26 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 0 Dołączył: 27.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Gdyby tylko w php bylo wspierane programowanie Aspektowe (AOP) nie bylo by problemow (mozna bylo by z poziomu AOP mapowac klasy na dane w bazie), Istnieją implementacje AOP dla php. Coś mi się obiło o uszy, że trwają pracę na rozszerzeniem implementującym AOP, co będzie szybsze. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 21:50 |