ShaXbee
14.05.2005, 09:23:45
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
14.05.2005, 13: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
bela
14.05.2005, 13:36:46
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
PropelJa 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
Nievinny
14.05.2005, 13:39:04
OT
Sorry Bela, ale czego Ty nie robisz?

/OT
Ja miałem kiedyś mały prymitywny systemik, ale teraz używam Propela i na php5.1 (cvs) PDO i wystarcza
ShaXbee
14.05.2005, 14:31:18
Taa, ale tematem mojej dyplomówki jest właśnie napisanie własnego DAO, a nie użycie gotowca
bela
14.05.2005, 14:35:37
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

Tutaj masz mniej więcej wyglądać jak to będzie wyglądać :]
ShaXbee
14.05.2005, 21:52:39
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
15.05.2005, 09:54:48
Moze tak jak w Creole - obiekt ResultSet i z niego Iterator.
ShaXbee
15.05.2005, 10:04:23
Oki - spróbuję tak

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)

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ć