Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> PDO i współpraca z własnymi klasami
Jawor
post
Post #1





Grupa: Zarejestrowani
Postów: 73
Pomógł: 2
Dołączył: 1.10.2003

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


Witam

Mam pytanie odnośnie współpracy PDO z własnymi klasami.

Ktory sposob powinno sie uzywac:

1. Polaczenie z baza poza klasa (wlasna) i przekazywanie do niej obiektu typu PDO. Wszystkie zapytania, operacje na danych z bazy odbywaja sie we wlasnej klasie.

2. Wszystkie operacje zwiazane z baza odbywaja sie poza wlasna klasa (zapytania, pobieranie danych), a do mojej klasy przekazuje juz np. pobrane z bazy dane.


Do tej pory caly czas pisalem strukturalnie, ale postanowilem to zmienic i oto pierwszy dylemat jaki napotkalem na swojej drodze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Jawor 9.11.2008, 16:27:35
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
LBO
post
Post #2





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Kto Ci powiedział, że obiekt kontekstu ma być wszędzie?

To ja napiszę tak i się powtórzę - singletony PRZECZĄ hermetyzacji. Idealna aplikacja powinna wyglądać tak, że ją odpalasz jakimś obiektem aplikacji i koniec, wszystko się dzieje wewnątrz, a ty nie masz do niczego dostępu, zarazem zachowując pełną kontrolę.

Niech szlak trafi ZF za rozpropagowanie tego cholernego wzorca. Zrobili zbiór klas, które działają tak luźno, że nie sposób nie korzystać z rejestru.

Nie po to w architekturze oprogramowania wymyśla się nieprzepuszczalne warstwy (czyli nie mówię tylko o MVC), żeby jakiś rejestr odstawił wszystko do lamusa. Weźmy na przykład aplikacje GUI, które trzymają się MVC - gdyby we frameworkach wspomagających tworzenie takiego oprogramowania warstwy by rzeczywiście na siebie nie zachodziły to by było super - a tak nadal się zdarza, że żółtodziub siada do klawy i zasysa dane bezpośrednio w akcji np. Button.onClick (co zasadniczo jest widokiem, a raczej szablonem jeżeli przerzucić to na myślenie WWW).

Rejestr to taki kontekst dla leniwych.
Go to the top of the page
+Quote Post
markac
post
Post #3





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 23.02.2005

Ostrzeżenie: (10%)
X----


Cytat(LBO @ 10.11.2008, 11:37:02 ) *
Kto Ci powiedział, że obiekt kontekstu ma być wszędzie?

To ja napiszę tak i się powtórzę - singletony PRZECZĄ hermetyzacji. Idealna aplikacja powinna wyglądać tak, że ją odpalasz jakimś obiektem aplikacji i koniec, wszystko się dzieje wewnątrz, a ty nie masz do niczego dostępu, zarazem zachowując pełną kontrolę.

Niech szlak trafi ZF za rozpropagowanie tego cholernego wzorca. Zrobili zbiór klas, które działają tak luźno, że nie sposób nie korzystać z rejestru.

Nie po to w architekturze oprogramowania wymyśla się nieprzepuszczalne warstwy (czyli nie mówię tylko o MVC), żeby jakiś rejestr odstawił wszystko do lamusa. Weźmy na przykład aplikacje GUI, które trzymają się MVC - gdyby we frameworkach wspomagających tworzenie takiego oprogramowania warstwy by rzeczywiście na siebie nie zachodziły to by było super - a tak nadal się zdarza, że żółtodziub siada do klawy i zasysa dane bezpośrednio w akcji np. Button.onClick (co zasadniczo jest widokiem, a raczej szablonem jeżeli przerzucić to na myślenie WWW).

Rejestr to taki kontekst dla leniwych.


Kolego, nie bulwersuj się tak... nikt tu nie pisał, że kontekst ma być widoczny wszędzie, a dobrze by było aby uchwyt do bazy był. Co do idealnej aplikacji, to jeszcze taka nie powstała, więc zejdź na ziemię, bo popadasz w pewien wir, jak każdy, który dopiero co zachłysnął się wzorcami projektowymi. Aplikacja ma przede wszystkim działać i nie powinna być przekombinowana. Nie opowiadaj też o aplikacjach typowo desktopowych, bo mówimy o innym zastosowaniu. MVC nie powstał dla www! Nie da się w pełni zaimplementować wzorca MVC na potrzeby strony www! Na tą okoliczność powstał Model 2 i używajmy odpowiedniego nazewnictwa.

Cytat(LBO @ 10.11.2008, 09:51:13 ) *
No i w tym momencie masz z poziomu szablonu dostęp do bazy, o! A nie powiesz mi chyba, że to dobrze?
Zrobili to dla wygody tylko.

edit

Wynika to z architektury Mojavi, gdzie aplikacja jest uruchamiana z poziomu kontekstu, a ten trzeba jakoś pozyskać.


Znowu popadamy w obsesję? Wiadomym jest, że jeśli szablon jest wykonany w PHP to mamy dostęp do rożnych rzeczy, do których mieć byśmy nie chcieli, prawda? Przecież nic nie stoi na przeszkodzie, żebym utworzył np. nową instancję np. front controlla (o ile nie korzysta z singletona, których używania nie popierasz!). Co mnie przed tym powstrzyma? A co z innymi zmiennymi globalnymi i samym global? Jak się zabezpieczysz na tą okolicznosc, że coś nadpisze? Może w ogóle zrezygnować z szablonów w PHP i zrobić coś ala BBCode? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Powtarzam, nie ma idealnej aplikacji. KOMPROMIS KOMPROMIS KOMPROMIS.
Go to the top of the page
+Quote Post

Posty w temacie
- Jawor   PDO i współpraca z własnymi klasami   9.11.2008, 16:26:41
- - LBO   Przekazuj obiekt PDO i wykorzystuj go w klasach sł...   9.11.2008, 16:37:47
- - Jawor   Cytat(LBO @ 9.11.2008, 18:37:47 ) S...   9.11.2008, 16:40:46
|- - Maciekbjw   Cytat(Jawor @ 9.11.2008, 16:40:46 ) R...   23.11.2008, 00:20:40
- - LBO   Cytat(Jawor @ 9.11.2008, 16:40:46 ) R...   9.11.2008, 16:47:15
- - Jawor   Ok. Dzieki za pomoc. Pozdrawiam   9.11.2008, 16:51:35
- - Black-Berry   Z ostatnich testów i odrobiony teoretyzowania wysz...   9.11.2008, 17:31:14
- - LBO   Prędzej [PHP] pobierz, plaintext <?php$context...   9.11.2008, 17:35:59
- - Black-Berry   A nie tak: [PHP] pobierz, plaintext <?php$conte...   9.11.2008, 17:43:27
- - LBO   Ja za stopkę aplikacji uważam na przykład ostatni ...   9.11.2008, 17:50:47
- - Black-Berry   Racja. Twoje rozwiązanie jest bardziej eleganckie....   9.11.2008, 17:57:49
- - markac   Dajcie już spokój z tymi kontekstami i kopiowaniem...   9.11.2008, 20:15:48
- - LBO   Rejestr to tylko niechlujność architektó...   9.11.2008, 20:21:05
- - Black-Berry   Singletony są złe. A poza tym działają wolniej niż...   10.11.2008, 09:45:02
- - phpion   @BlackBerry: A czy przypadkiem nie jest tak, że co...   10.11.2008, 09:48:23
- - LBO   No i w tym momencie masz z poziomu szablonu dost...   10.11.2008, 09:51:13
- - markac   Tak się składa, że obiekt bazy danych ma być dostę...   10.11.2008, 11:20:28
- - Black-Berry   Dlaczego na miłość Boga kontekst miałby być single...   10.11.2008, 11:23:43
- - LBO   Kto Ci powiedział, że obiekt kontekstu ma być wszę...   10.11.2008, 11:37:02
|- - markac   Cytat(LBO @ 10.11.2008, 11:37:02 ) Kt...   22.11.2008, 18:17:09
- - xmarcin   troche odgrzewam temat, ale przyznam, że cos mnie ...   22.11.2008, 16:26:45
- - LBO   Tak też można, jeżeli nie chcesz by...   22.11.2008, 17:12:06
|- - xmarcin   Cytat(LBO @ 22.11.2008, 17:12:06 ) Ta...   23.11.2008, 12:02:54
- - LBO   Cytat(markac @ 22.11.2008, 18:17:09 )...   22.11.2008, 19:05:02
- - wlamywacz   Dołączę się do tematu. Jak napisać obsługę DB tak ...   22.11.2008, 22:37:05
- - Mize   Przeczytaj cały wątek i potem swój kod. ...   23.11.2008, 00:34:31
- - Mize   To co Ci będzie potrzebne ? Skąd mamy wiedzieć co ...   24.11.2008, 14:10:57
- - xmarcin   fakt... troche nie sprecyzowalem... juz nie bede d...   24.11.2008, 23:31:24
- - wrzasq   Ot, i najlepiej jeszcze podciągnijcie pod to walkę...   28.11.2008, 04:50:52
- - Black-Berry   @wrzasq Zgadzam się z tobą. Co byś nei zrobił zaws...   28.11.2008, 17:09:42
- - orglee   Troszkę się zastanawiałem nad tą dyskusją i najpie...   3.12.2008, 03:06:31
- - dr_bonzo   [PHP] pobierz, plaintext <?php// Załaduj plik k...   3.12.2008, 03:24:30
- - orglee   Tak coś właśnie czułem że...   3.12.2008, 03:32:35
- - dr_bonzo   CytatChyba zapamiętasz rozmieszczenie katalogów, p...   3.12.2008, 03:50:18
- - orglee   Heh. Edytowałem post przy użyciu szybkie...   3.12.2008, 04:13:43
- - markac   Sorry orglee, ale ja już wolę __autoload. W system...   3.12.2008, 09:23:38
|- - orglee   Cytat(markac @ 3.12.2008, 09:23:38 ) ...   3.12.2008, 16:52:57
|- - markac   Cytat(orglee @ 3.12.2008, 16:52:57 ) ...   3.12.2008, 17:11:47
|- - Black-Berry   Cytat(orglee @ 3.12.2008, 16:52:57 ) ...   4.12.2008, 14:49:57
|- - markac   Cytat(Black-Berry @ 4.12.2008, 14:49...   4.12.2008, 18:52:32
|- - markac   Cytat(Black-Berry @ 4.12.2008, 14:49...   4.12.2008, 20:30:44
- - dr_bonzo   @orgle: ZS ma, eclipse nie ma, mi wystarczy jak na...   3.12.2008, 10:29:37
|- - mike   Cytat(dr_bonzo @ 3.12.2008, 10:29:37 ...   3.12.2008, 10:48:36
- - orglee   Uhh ależ mi dopiekłeś. Programuje w...   3.12.2008, 20:22:00
- - erix   CytatMoże i jest pomysłowe ale czy istni...   4.12.2008, 17:50:17
- - Black-Berry   Tak ale tam jest to rozwiązanie wbudowane a nie pa...   4.12.2008, 17:58:18
- - LBO   Klasyczny problem CytatTelefonistka dziedziczy po ...   4.12.2008, 20:04:03
- - Black-Berry   @markac Ja nie mam pojęcia o programowaniu obiekto...   4.12.2008, 20:06:14
- - Black-Berry   Tak, sory literówka. Dalej pisałem o Core_Object. ...   4.12.2008, 20:34:20
- - dr_bonzo   @mike CytatCytat@orgle: ZS ma, eclipse nie ma, (....   4.12.2008, 20:35:22
- - LBO   Cytat(Black-Berry @ 4.12.2008, 20:06...   4.12.2008, 20:40:57
- - Black-Berry   @LBO No tak, zgadzam się. Ja cały czas o czymś tak...   4.12.2008, 20:50:49


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: 1.01.2026 - 01:49