Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][database] Abstrakcje
Vengeance
post
Post #1





Grupa: Zarejestrowani
Postów: 657
Pomógł: 2
Dołączył: 15.08.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Rozmyslam nad pewną sprawą. Pewnie samym rozwiązaniem ameryki nie odkryłem, pewnie są już jakieś implementacje tego, jednak chodzi mi o to co o tym szanowne jury myśli ;]

Ostatnio popularny jest temat abstrakcji na bazy danych ;]
Jednak rozwiązanie w stylu
  1. <?php
  2. $db->connect();
  3. $db->query('SELECT * FROM talbe WHERE cos=1');
  4. ?>

jest dla mnie niesatysfakcjonujące. Dlaczego?
Jakbym chciał "przestawić" aplikację aby dane czerpała z plików txt, czy np. z SOAP ( blink.gif ) musialbum obsłużyć jakimiś pregami składnie SQL.

Mój pomysł jest taki
  1. <?php
  2. $db->connect();
  3. $db->query(new InsertQuery(<gdzie>, <co>));
  4. $db->query(new DeleteQuery(<gdzie>, <where>, <limit>));
  5. ?>

Itd. ;] Klasy xxxQuery przygotowywały by co trzeba, jak trzeba itp.
Tworzyłby by odpowiednie zapytania do MySQL czy PgSQL a potem byłby
to wykonywane. Jednak takim sposobem nie obsłużę takiego "złożonego"
zapytania jak np.
SELECT * FROM table LEFT JOIN cos ON cosik=2 LIMIT 4

Co w tym momencie ? Ano użytkownik (czyli ja) tworzył by sobie
własną klase xxxQuery której zadaniem byłoby obslużenie tego jednego konkretnego zapytania. Potem w skrypcie tylko
  1. <?php
  2. $db->query(new MyQuery(<mozeJakisParamter>));
  3. ?>

i wszystko by grało.

Teraz gdybym np. z MySQL chciał przejść do plików TXT wszystko polegalo by na przepisaniu podstawowych klas InsertQuery, SelectQuery, UpdateQuery itd.
by obsługiwały owe pliki teksowe oraz tych "własnych" klas xxxQuery.

Czy coś takiego ma jaki kolwiek sens ? Jakie są ewentualne wady a jakie zalety?
Proszę o pomoc smile.gif


--------------------
Go to the top of the page
+Quote Post

Posty w temacie
- Vengeance   [php][database] Abstrakcje   23.12.2004, 13:33:40
- - squid   ja robie cos takiego: [PHP] pobierz, plaintext ...   23.12.2004, 13:43:12
- - Vengeance   czyli to samo u mnie ;] tylko ze ja bym przekazywa...   23.12.2004, 13:54:44
- - squid   moj glowny select obsluguje cala skladnie selecta ...   23.12.2004, 13:59:56
- - Vengeance   a no to teraz rozumiem ;] skoro tak to nie sa ci p...   23.12.2004, 14:02:29
- - squid   no calego sql nie bylo potrzeby implementowac ale ...   23.12.2004, 14:11:31
- - Vengeance   nie no chodzilo mi oto ze user moze sobie jakby ...   23.12.2004, 14:27:13
- - hawk   Idea uniezależnienia się od źródła danych jest szc...   23.12.2004, 16:30:50
- - Vengeance   Czyli jak to "wykończyć". W takim getUse...   23.12.2004, 17:27:07
- - squid   Cytat(Vengeance @ 2004-12-23 18:27:07)Łatwiej...   23.12.2004, 21:37:08
- - Vengeance   hehe moze i jestem ;] ale serio latwiej mi zawsze ...   23.12.2004, 22:25:35
- - aleksander   Ja tu tak czytam, i czytałem coś podobnego w książ...   23.12.2004, 22:58:34
- - Vengeance   to jest standard. chodzi tylko o to ze gdy uzywasz...   23.12.2004, 23:34:58
- - DeyV   Cytatchęci przestawienia się na pliki TXT miałbym ...   23.12.2004, 23:36:18
- - Vengeance   a tak? [PHP] pobierz, plaintext <?php# plik db....   23.12.2004, 23:54:17
- - bela_666   @Vengeance mi sie w tym rozwiazaniu te statici nie...   24.12.2004, 00:01:12
- - aleksander   ja proponuję tak: (php5) [PHP] pobierz, plaintext ...   24.12.2004, 00:05:22
- - bela_666   a nie return new User{$type}(); ?   24.12.2004, 00:06:22
- - Vengeance   po 1. wlasnie chcialem zapytac. jaka jest roznica ...   24.12.2004, 00:06:34
- - bela_666   @Vengeance pisanie klas w ktorych sa same metody s...   24.12.2004, 00:11:06
- - aleksander   singleton jest wtedy gdy masz metode, która za każ...   24.12.2004, 00:13:07
- - Vengeance   "Singleton to jest wzorzec projektowy" i...   24.12.2004, 00:14:56
- - hawk   1) ad ostatni post Vengeance: Tak dla formalności,...   24.12.2004, 10:38:26
- - Vengeance   tego ze sie nie da wiem. choc przy prostrzych rzec...   24.12.2004, 13:23:53


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 08:21