Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Własny DAO dla MySQLa - zwracanie wyniku
Forum PHP.pl > Forum > PHP > Object-oriented programming
ShaXbee
Do pracy dyplomowej stworzyłem prosty DAO, który ma mi ułatwić życie i odciążyć od przepisywania w nieskończoność podobnych zapytań MySQL-a. Jego użycie polega na utworzeniu klasy MySqlList, załadowaniu konfiguracji danej tabeli (użyte pola, funkcje, pola z innych tabel) i pobraniu wyniku poprzez jedną z metod:
* getAll() - pobiera wszystkie wyniki
* get($id) - pobiera element o konkretnym ID
* getBy[Tu nazwa dowolnego z pól tabeli wg. którego szukamy, użyta funkcja __call()]

Do tej pory funkcja getAll i getBy zwracała wynik w postaci tablicy obiektów MySqlListItem, ale zastanawiam się czy jest to rozwiązanie sensowne. Myślę nad wprowadzeniem w klasie MySqlList publicznej zmiennej $result, która była by Iteratorem - przy okazji mógłbym w ten sposób pozbyć się metody get($id);

Czy macie jakieś inne rozwiązania - szukam czegoś możliwie intuicyjnego i sensownego.

PS. Używam PHP5
matid
Ja do obsługi MySQLa korzystam z Creole. Do tego można to połączyć z bardzo ciekawym rozwiązaniem, a mianowicie Propel
bela
Cytat(matid @ 2005-05-14 14:12:53)
Ja do obsługi MySQLa korzystam z Creole. Do tego można to połączyć z bardzo ciekawym rozwiązaniem, a mianowicie Propel

Ja aktualnie zabrałem się za pisanie czegoś ala Propel, aczkolwiek nie wykorzystuje Creole tylko PDO, i nie będzie tam Phinga który nie działa z php 5.1 smile.gif
Nievinny
OT
Sorry Bela, ale czego Ty nie robisz? tongue.gif
/OT

Ja miałem kiedyś mały prymitywny systemik, ale teraz używam Propela i na php5.1 (cvs) PDO i wystarcza
ShaXbee
Taa, ale tematem mojej dyplomówki jest właśnie napisanie własnego DAO, a nie użycie gotowca smile.gif
bela
Cytat(ShaXbee @ 2005-05-14 15:31:18)
Taa, ale tematem mojej dyplomówki jest właśnie napisanie własnego DAO, a nie użycie gotowca smile.gif

Tutaj masz mniej więcej wyglądać jak to będzie wyglądać :]
ShaXbee
Fajny pomysł z tym XMLem opisującym relacje itp. Ale dalej nie dostałem odpowiedzi na swoje pytanie: jaki sposób zwracania wyniku będzie najlepszy.
M4chu
Moze tak jak w Creole - obiekt ResultSet i z niego Iterator.
ShaXbee
Oki - spróbuję tak winksmiley.jpg BTW to się pochwale: jeżeli zrobimy coś takiego $item->pole = 'nowa wartość' to po wywołaniu $list->sync(); zostanie to zsynchronizowane z bazą (również wiele zmian naraz) smile.gif Jak skończę pracę nad klasą i opracuję ładowanie konfiguracji z .xml'a to postaram się Wam ją pokazać - może da się jakoś ją zoptymalizować smile.gif
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.