Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][OOP] Galeria objektowo, Jaki wzorzec?
Forum PHP.pl > Forum > Przedszkole
Quentino
Witam

Robie prosta galerię w PHP i MySQL.
Buduję ją obiektowo.
Jej struktura wygląda tak:

Klasa Photo dziedziczy z klasy genericObject
Klasa generictObject to chyba to samo, co activeRecord, ja swoją nazwę wziąłem z książki: PHP5 zaawansowane programowanie, (jeśli to nie jest to samo to proszę o wyjaśnienie).
Klasa genericObject reprezentuje jeden wiersz z tabeli (w tym przypadku jest to tabele Photos).
Mam też klasę genericObjectCollection, która w moim przypadku jest kolekcja klasy Photo i implementuje, jak to w książce nazwano ‘leniwą konkretyzacje’.
Klasa, która łączy te elementy w całość to klasa Galery, która posiada metody np. getPhotosByCategory(), getPhotosById(), getAllPhotos(), AddPhoto(), DeletePhoto(), MakeMiniPhoto().
Jest tez klasa uploader, która pozwala na załadowanie zdjęcia na serwer.

Przykład działania:
Za pomocą metod klasy uploader umieszczam zdjęcie w odpowiednim katalogu na serwerze.
Jeśli ta operacja się powiedzie tworzy się egzemplarz klasy Gallery, do którego przekazywana jest ścieżka pliku oraz dane z formularza takie jak opis, kategoria itp.
Klasa Gallery tworzy też miniaturkę zdjęcia i dopasowuje docelowe zdjęcie do zadanych parametrów (rozmiar, jakość kompresji).
Jeśli operacja dostosowania zdjęcia lub zapis informacji do bazy nie powiedzie się, to zostaje wygenerowany wyjątek, który oprócz komunikatu usuwa również plik zdjęcia z serwera.

Oprócz tego co napisałem są jeszcze klasy takie jak kategorie zdjęć itp.
Mam pytanie czy taka konstrukcja jak tu przedstawiłem ma sens?
W jaki sposób można tym jakoś elegancko zarządzać, żeby nie trzeba było używać np. switch ,które z zależności co jest przekazywane przez tablicę $_GET[] wykonuje odpowiednie działanie. Czy jest do tego jakiś wzorzec projektowy który by do tego pasował?
plisek
wzorzec to sposób myslenia, a nie gotowy kod. to jest pewiem sposób rozwiazania jakiegoś problemu, zatem musisz postawić sobie pytanie 'gdzie jest problem??" i do tego szukać odpowiedzi .

co sie tyczy Twojego rozumowania, to moim zdaniem mozna to oprogramować i powinno działać. Wszytsko zależy od tego jak to zrobisz tongue.gif
możesz wykorzystać wzorzec MVC, fabryki obserwatora i wiele innych, pytanie tylko dlaczego winksmiley.jpg

dobrym sposobem jest przyjrzenie się, już gotowym skryptom galerii i przesledzenie toku rozumowania ich autorów. np. 1 2

pozdr
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.