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 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 23.02.2005 Ostrzeżenie: (10%)
|
Sorry orglee, ale ja już wolę __autoload. W systemie nie powinny wystąpić klasy o tych samych nazwach i dlatego ryzyko kolidowania klas spada do minimum. Przykład:
Andrew: 03-Nov-2006 12:26
Mamy w ten sposób także uzupełnianie kodu w Eclipse, oczywiście jeśli zastosujemy odpowiednie tagi dokumentujące same klasy. Co do Registry, chyba Ty to napisałeś, że istnieje możliwość nadpisania? Mylisz się. W takich przypadkach nie stosuje się get() i set(), a odpowiednio nazwane metody, np. getPDO(), getSession(). Mamy w ten sposób załatwione także uzupełnianie kodu i wykluczenie możliwości nadpisania kodu. Samo zastosowanie get i set jest to po prostu lenistwem, niedoświadczeniem i posiadaniem złych nawyków, o dziwo, dotyczy tylko programistów PHP? Ten post edytował markac 3.12.2008, 09:27:06 |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%)
|
Sorry orglee, ale ja już wolę __autoload. W systemie nie powinny wystąpić klasy o tych samych nazwach i dlatego ryzyko kolidowania klas spada do minimum. Nie ma możliwości że wystąpią.Kod załaduje plik w katalogu "[projekt_root]/library/Template/Cache/Data/Package/Collection.php" ( wielkość liter nieprzypadkowa ) i utworzy obiekt klasy Template_Cache_Data_Package_Collection lub zwróci go z rejestru jeśli był już utworzony wcześniej. W zmiennych klasowych stosuję nazewnictwo rozróżniające czy dana zmienne jest obiektem czy prymitywem ( $this->counter - obiekt $this->_counter = integer / float / double / etc. ). Mimo to nie wyobrażam sobie żeby nie napisać PHPDoc'owego @var celem lepszej czytelności i przejrzystości. Co do Registry, chyba Ty to napisałeś, że istnieje możliwość nadpisania? Mylisz się. W takich przypadkach nie stosuje się get() i set(), a odpowiednio nazwane metody, np. getPDO(), getSession(). Mamy w ten sposób załatwione także uzupełnianie kodu i wykluczenie możliwości nadpisania kodu. Samo zastosowanie get i set jest to po prostu lenistwem, niedoświadczeniem i posiadaniem złych nawyków, o dziwo, dotyczy tylko programistów PHP? Stosowanie setterów i getterów dla poszczególnych obiektów moim zdaniem nie jest wygodnym rozwiązaniem bo kompletnie burzy intuicyjność frameworka. Jest to coś czego nienawidzę na przykład w Joomli. Różnica między zaproponowanym przez ciebie rozwiązaniem i Jomlowym jest taka, że Joomla ma statyczne gettery w swoim rejestrze. Nazywam to singleton overflow. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Ten post edytował orglee 3.12.2008, 16:56:43 |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%)
|
Stosowanie setterów i getterów dla poszczególnych obiektów moim zdaniem nie jest wygodnym rozwiązaniem bo kompletnie burzy intuicyjność frameworka. Jest to coś czego nienawidzę na przykład w Joomli. Różnica między zaproponowanym przez ciebie rozwiązaniem i Jomlowym jest taka, że Joomla ma statyczne gettery w swoim rejestrze. Nazywam to singleton overflow. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Sory trochę zgubiłem się w temacie ale czy stosowanie getterów i setterów jest takie niezbędne do rozwiązania kontekstowego? Przecież wszystko można oprzeć o jakieś dziedziczenie. Gdzieś już tutaj pisałem o tym razem z przykładowym kodem. Każdy obiekt dziedziczący po obiekcie klasy Core_Context automatycznie może ustawiać sobie obiekty wymagane. Jeśli już chcemy wszystko zautomatyzować to poprostu każdy obiekt w naszym frameworku traktujemy jako Core_Object i po krzyku. Takie coś:
Może i jest pomysłowe ale czy istnieje w jakimkolwiek poważnym oprogramowaniu? Wiem, że PHP można różnie traktować ale wydaje mi się że uniwersalne rozwiązania są najlepsze. Nawet jeśli nikt nie ma pracować w przyszłosci na Twoim kodzie tylko ty sam to trzeba dążyć do czegoś co akceptuje większość społeczności programistycznej nie tylko ta z PHP. (Sam mam jeszcze masę nietrafionych rozwiązań w swoim frameworku ale systematycznie je poprawiam. Nie piszę tutaj żeby komuś coś wytykać) Pozdrawiam. |
|
|
|
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 Cytat(orglee @ 3.12.2008, 16:52:57 ) ... 3.12.2008, 17:11:47 
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 ![]() ![]() |
|
Aktualny czas: 30.12.2025 - 21:10 |