Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wykorzystanie wzorca iterator
Forum PHP.pl > Forum > Przedszkole
Pjotrek80
Pracuję nad galerią zdjęć. Galeria posiada panel użytkownika do wprowadzania zdjęć oraz front (gdzie zdjęcia są wyświetlane).
Zastanawiam się czy potrzeba jest do tego baza danych.
W tym momencie do pobierania zdjęć wykorzystuje DirectoryIterator, który przeszukuje katalog ze zdjęciami.
Czy takie rozwiązanie jest:
1. Bezpieczne?
2. Czy jest bardziej eleganckie od pobierania nazw zdjęć z bazy danych?
3. Czy to jest dobry przykład do wykorzystania wzorca Iterator?
ptq
Odczytywanie zawartości katalogu co uruchomienie skryptu nie jest zbyt optymalne, dodatkowo jesteś ograniczony co do ilości danych które możesz zapisać wraz ze zdjęciem.
Jeżeli nie chcesz wykorzystywać bazy danych, możesz ograniczyć się do pojedynczego pliku CSV z informacjami odnośnie zdjęć oraz trzymać w nim wiele dodatkowych informacji.

Odnośnie pytań:
1. To zależy od ciebie.
2. Olać elegancję, ma być wydajne i wygodne dla ciebie w przyszłości.
3. Jeżeli jest wydajne i nie ma możliwości zastąpić rozwiązania innym podobnym, to pewnie tak wink.gif
b4rt3kk
1. Nie ma nic niebezpiecznego w używaniu iteratora (tzn. jeszcze zależy w jaki sposób go używasz, użytkownik ma jakiś wpływ na ścieżkę? Ale generalnie nie ma się czego bać).

2. Pobieranie nazw zdjęć z bazy danych ma tę zaletę, że możesz np. przypisać zdjęcie do użytkownika, dodawać różnego rodzaju rangi (ten user widzi, inny nie widzi). Wszystko generalnie zależy od tego czemu i jak ta galeria służy. Jeśli iterator spełnia swoje zadanie, to nie potrzebujesz angażować do tego bazy danych.

3. Dobry.
Pjotrek80
Cytat(ptq @ 27.06.2013, 22:41:51 ) *
Odczytywanie zawartości katalogu co uruchomienie skryptu nie jest zbyt optymalne, dodatkowo jesteś ograniczony co do ilości danych które możesz zapisać wraz ze zdjęciem.
Jeżeli nie chcesz wykorzystywać bazy danych, możesz ograniczyć się do pojedynczego pliku CSV z informacjami odnośnie zdjęć oraz trzymać w nim wiele dodatkowych informacji.

Odnośnie pytań:
1. To zależy od ciebie.
2. Olać elegancję, ma być wydajne i wygodne dla ciebie w przyszłości.
3. Jeżeli jest wydajne i nie ma możliwości zastąpić rozwiązania innym podobnym, to pewnie tak wink.gif


Nie ma problemu - mogę skorzystać z bazy danych.

Czyli, jeżeli chodzi o wydajność to przeszukiwanie katalogu za pomocą DirectoryIterator jest mniej wydajne niż odczyt z bazy danych?

"...dodatkowo jesteś ograniczony co do ilości danych które możesz zapisać wraz ze zdjęciem." Nie rozumiem o jakie ograniczenie chodzi?

Cytat(b4rt3kk @ 27.06.2013, 22:44:55 ) *
1. Nie ma nic niebezpiecznego w używaniu iteratora (tzn. jeszcze zależy w jaki sposób go używasz, użytkownik ma jakiś wpływ na ścieżkę? Ale generalnie nie ma się czego bać).

2. Pobieranie nazw zdjęć z bazy danych ma tę zaletę, że możesz np. przypisać zdjęcie do użytkownika, dodawać różnego rodzaju rangi (ten user widzi, inny nie widzi). Wszystko generalnie zależy od tego czemu i jak ta galeria służy. Jeśli iterator spełnia swoje zadanie, to nie potrzebujesz angażować do tego bazy danych.

3. Dobry.

Nie - ścieżka jest zapisana w stałej.
Czyli rozwiązanie z iteratorem jest lepsze? tzn bardziej wydajne np?
b4rt3kk
Szczerze mówiąc nie mam pojęcia jak oba te rozwiązania różnią się wydajnością. Możesz to sprawdzić samemu.

  1. $time = microtime();
  2. // tutaj wstaw iterator bądź zapytanie sql
  3. $delay = microtime() - $time;
  4. echo $delay * 1000;


Porównaj wartość milisekund przy użyciu zapytania do bazy i przy użyciu iteratora. Które zwróci mniejszą liczbę jest szybsze, a co za tym idzie bardziej korzystne względem czasu wykonania.
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.