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 ( (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Vengeance
post
Post #2





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

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


po 1. wlasnie chcialem zapytac. jaka jest roznica (ale juz w php5) miedzy singletonem a 'static' ;] wydaje mi sie (pewnie zle) ze jesli cala klasa bedzie miala argumenty jak i metody okreslone jako static
to wykorzystywanie singletona nie ma sensu.

po 2. bela_666 w sumie to na jedno wychodzi ;] ja tam wole swoje nie wiem czemu. kazdy ma jakies fobie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) tym bardziej ze jak chcialbys to swoje przerobic na obsluge plikow txt, lub SOAP-a ?


---edit---
hmm no nie wiem olo. w kazdym sposobie jest ciut poprawnosci. jednak zauwaz ze zwalasz tu na uzytkownika implementacje obslugi sql, txt i innych. Mi chodzi o to aby mozna bylo szybko sobie wybrac czy chce pliki czy sql czy co innego. Cos jak adodb. Ty piszesz zapytania ustawiasz w confie z jakiej bazy korzystasz i gra (przynajmniej powinno). A nie piszesz po 6 rodzajow wywolania funkcji po jednym na kazda baze danych (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Vengeance 24.12.2004, 00:11:00
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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 22:09