Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Abstrakty, klasy, Creole... itp, a po co to wszystko???
Aztech
post 23.11.2005, 00:19:15
Post #1





Grupa: Zarejestrowani
Postów: 276
Pomógł: 3
Dołączył: 22.10.2003
Skąd: Wrocław

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


Wcześniej pisałem swoje stronki zupełnie bez ładu i składu, przyszedł jednak czas potężnego projektu (prac dyplomowa biggrin.gif) i czas zrobić to porządnie. Mam zatem pytanie:
1) czy pisać właśną klasę obsługi bazy danych czy skorzystać z gotówców, jeśli tak to z jakich?
2) do czego tak na prawdę służa CREOLE, ADODB, PEAR i czy warto je stosować w momencie kiedy tylko bedą obsługiwać mysql?
3) czy może, ktoś z forumowiczów ma własną klasę obsługującą połączenia z bazą danych i chce, może ją udostępnić, tudzież, czy może dać wskazówki, rady czego się wystrzegać podczas pisania własnej klady?

Wiem, że pytania są naiwne i część z nich porozsiewana jest po forum php5, ale mimo przeczytania sporej ilości postów w dniu dzisiejszych nie jestem w stanie ogarnąć tego wszystkiego i w jakiś sensowny sposób poukładać sobie w głowie. Więć stąd moje pytania
Go to the top of the page
+Quote Post
mike
post 23.11.2005, 00:38:12
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(Aztech @ 2005-11-23 00:19:15)
1) czy pisać właśną klasę obsługi bazy danych czy skorzystać z gotówców, jeśli tak to z jakich?
Taki abstrakt, żeby był dobry potrzebuje sporego nakładu pracy co za tym idzie czasu pracy. A jest klika dobrych, więc po co wynajdywać koło po raz n-ty :?: No chyba że to bedzie pzredmiotem Twojej pracy.

Cytat(Aztech @ 2005-11-23 00:19:15)
2) do czego tak na prawdę służa CREOLE, ADODB, PEAR i czy warto je stosować w momencie kiedy tylko bedą obsługiwać mysql?
Abstrakt bazodanowy powinien w tej chwili oferować dwie podstawowe rzeczy:
1. Możliwość pisania pod dowolna bazę danych. Zawsze możesz emigrować na inną baze bez modyfikacji swojego kodu.
2. Ułatwienie korzystania z bazy, przy pomocy serii przydatnych funkcji oraz metod. Zwracanie wyników jako obiekty, statystyki, debugery, ..., co tylko zechesz. Uważam że warto, nawet jeśli nastawiasz się tylko na MySQL'a.
P.S. Creole, AdoDB owszem. Ale PEAR tutaj nie pasuje. Owszme jedną z bibliotek PEAR'a jest jakiś abstrakt, ale wywołanie go tu w całości to pomyłka.

Cytat(Aztech @ 2005-11-23 00:19:15)
3) czy może, ktoś z forumowiczów ma własną klasę obsługującą połączenia z bazą danych i chce, może ją udostępnić, tudzież, czy może dać wskazówki, rady czego się wystrzegać podczas pisania własnej klady?
Poszukaj, na pewno cos się znajdzie.
Ja osobiście polecam bardzo Creole'a oraz AdoDB. Obie są fajne, Creole podoba mi się bardziej, ale AdoDB ma więcej możliwości.



Temat wędruje na php, na php5 miejsca dla niego nie ma tongue.gif
Go to the top of the page
+Quote Post
Aztech
post 23.11.2005, 00:50:57
Post #3





Grupa: Zarejestrowani
Postów: 276
Pomógł: 3
Dołączył: 22.10.2003
Skąd: Wrocław

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


@mike_mech: dzieki za szybką odpowiedź
Pisanie samego abstraktu nie jest przedmiotem mojej pracy, ma on być tylko częścią całego systemu wspomagającego nauczanie na moim kierunku - taki właśnie system tworzę. Sam także wychodzę z założenia, że nie powinno się pisać coś co zostało już kiedyś przez kogoś stworzone, ale wolę popytać ludzi, którzy na codzień mają z tym styczność o opinie.

A tak przy okazji czy jest gdzieś jakiś polski kurs, manual Creola bo nie znalazłem (angielski mi nie przeszkadza, ale dłużej trwa jego przetwarzanie - czyt. zrozumienie)

@all: czekam na dalsze uwagi

Ten post edytował Aztech 23.11.2005, 00:52:29
Go to the top of the page
+Quote Post
ikioloak
post 23.11.2005, 01:00:33
Post #4





Grupa: Zarejestrowani
Postów: 416
Pomógł: 0
Dołączył: 8.01.2004

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


Ad 1. zdecydowanie polecam ADODB. Z CREOLE kontaktu nie mialem wiec nie moge sie wypowiedziec

Ad 2. ADODB bardzo ulatwia pisanie skryptow z wykorzystaniem bazy, dlatego warto wg mnie go uzyc nawet jesli korzystasz tylko z mysql. i tak jak mowi mike_mech - a nuz sie okaze ze konieczna jest przesiadka na inny serwer bazodanowy.

PEAR jest to zestaw klas wspomagajacych pisanie. Korzystam z Mail_mime przy wysylaniu maili i poza jednym mankamentem (niedawno pytalem sie o ten mankament na forum) bardzo jestem z niej zadowolony. Z innych paczek poki co nie mialem potrzeby ani okazji korzystac, choc prezentuja sie na tyle ciekawie ze uwazam ze warto poznac ich mozliwosci (np. klasa Image_Graph).

Ad 3. Wydaje mi sie ze w momencie kiedy istnieja ww systemy jak dla mnie jest to wywazanie otwartych drzwi
Go to the top of the page
+Quote Post
ActivePlayer
post 23.11.2005, 06:33:51
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

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


Cytat
Ad 2. ADODB bardzo ulatwia pisanie skryptow z wykorzystaniem bazy


No, to pochwal sie jakich featursów uzywasz... bo mi np. wystarcza GetArray();, GetRow();, GetOne(); i _ewentualnie_ EscapeArray();. Jak mozna sie domyslic, implementacja tych funkcji we wlasnym zakresie to okolo 50 linii kodu php. A adodb wazy nieporownywalnie wiecej.
Go to the top of the page
+Quote Post
ennics
post 23.11.2005, 10:46:14
Post #6





Grupa: Zarejestrowani
Postów: 312
Pomógł: 0
Dołączył: 29.12.2004

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


możesz zamiast istniejących już klas abstrakcji spróbować PDO jako nowe rozwiązanie
technologincze dla php, ewentualnie zdefiniować dla niego dodatkową
abstrakcję.


--------------------
Go to the top of the page
+Quote Post
Aztech
post 23.11.2005, 11:51:20
Post #7





Grupa: Zarejestrowani
Postów: 276
Pomógł: 3
Dołączył: 22.10.2003
Skąd: Wrocław

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


Zdecydowałem się na ADODB, z kilku powodów
1) ponieważ posiada polską dokumentację, przystępnie napisaną - być może ktoś będzię później modyfikował mój projekt, więc polska dokumentacja przyda się jak znalazł
2) jest w miarę przystępne, przykłady można łatwo znaleźć i istnieje już na rynku od dłuższego czasu, więc znane są jego wady/zalety/kłopoty i rozwiązania na różne bolączki
3) PDO moze się zmieniać, co jest wyraźnie zaznaczone w dokumentacji php i używać go można na własne ryzyko - a wiec nie jest w tym momencie rozwiązaniem przyszłościowym dla mnie, nie mogę bowiem pozwolić sobie na to, że w momencie, gdy na serwerze będzie inna wersja php 5.x.x niż ta pod, którą ja piszę, całość nie będzie działała (aczkolwiek sugestia co do PDO jest słuszna, zawsze można spróbować)
Go to the top of the page
+Quote Post
bela
post 23.11.2005, 12:03:34
Post #8


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


Abstrakt? Obrzydliwe słowo, jakoś wolę angielski odpowiednik ;]

Nie prawdą jest, że jeśli będziesz używać db layera to nie ma problemów w przeniesieniem na inne bazy aplikacji. Wspólne jest tylko API db layera a same zapytanie mogą się bardzo różnić.

Ja używam praktycznie wyłącznie PDO, bo w przyszłości (czytaj. php > 5.1) będzie domyślnie zainstalowe razem z obsługą bazy.


--------------------
Go to the top of the page
+Quote Post
Aztech
post 23.11.2005, 13:13:39
Post #9





Grupa: Zarejestrowani
Postów: 276
Pomógł: 3
Dołączył: 22.10.2003
Skąd: Wrocław

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


Ale piszesz własny abstrakt dla PDO, czy też zostawiasz tak jak jest?
Co do zapytań to masz rację, ale wtedy i tak masz dużo mniej roboty niż gdyby trzeba było zmieniać wszystko (na marginesie prawdopodobieństwo, że kedykolwiek moja praca zostanie przeniesiona na Oracle jest jak 1:10000)

Mam jeszcze jedno pytanko: czy AdoDB + Smarty nie będą za bardzo razem zamulały?questionmark.gif

Ten post edytował Aztech 23.11.2005, 13:19:57
Go to the top of the page
+Quote Post
bela
post 23.11.2005, 13:51:20
Post #10


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


Do PDO dopisywałem tylko klasę MyPDO, która pobierała z konfiguracji dane: user, hasło, host i tworzyło obiekt, i z metodą getPDO(), która zwracała obiekt PDO, bo przecież konstruktor tego nie zwróci.

Smarty + AdoDB nie będzie zamulać ;]


--------------------
Go to the top of the page
+Quote Post
SongoQ
post 23.11.2005, 14:36:01
Post #11





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


@mike_mech
Cytat
Abstrakt bazodanowy powinien w tej chwili oferować dwie podstawowe rzeczy:
1. Możliwość pisania pod dowolna bazę danych. Zawsze możesz emigrować na inną baze bez modyfikacji swojego kodu.

I tu sie bardzo myslisz. Jesli nastawiamy sie na aplikacje dzialajace pod roznymi bazami danymi i zakladamy ze ten kod moze dzialac pod wszystkim to tak, wtedy od bazy oczekujemy tylko prostych zapytan, bez wykorzystania ich mozliwosci. Jesli stoworze sobie aplikacje np korzystajaca z funkcji plsql to powiedz mi jakim cudem uda mi sie ja przeniesc np ma mssqla czy mysqla? Bo ja jakos sobie nie wyobrazam. Dla mnie i tak najwazniejsza jest baza danych, bo tak naprawde dane sa przetwazane przez nia, a php tylko je prezentuje.

Tak naprawde nie da sie stworzyc wydajnej aplikacji z tym samym kodem pod kazda bazke. DB layer ma przedewszystkim sluzyc w latwosci wyciagania danych i zapominania o funkcjach typu pg_query, itd. Zakladanie ze jeden kod moze obsluzyc wiele baz jest bledym podejsciem, no chyba ze nie patrzysz na wydajnosc baz danych.


--------------------
Go to the top of the page
+Quote Post
mike
post 23.11.2005, 14:42:27
Post #12





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


@SongoQ, @bela_666 macie rację. Oczywiście.

Wiadomo, że specyfikacja SQL w różnych systemach bazodanowych jest różna i nie da się napisać uniwersjalnej aplikacji.

Można natomiast osiągnąć to dopóki używamy "uniwersalnych" możliwości bz danych i nie skupiamy się na specyficznych "bajerach".

Przy abstraktach IMO ważniejsze od przenośności (bo tak jak mówicie nie jest to tak naprawdę w 100% osiągalne), jest wygoda pracy i daoatkowe bajerki. Zliczanie zapytań, czasów zapytań, debugger, "plucie" wyjątkami, ...
Go to the top of the page
+Quote Post
SongoQ
post 23.11.2005, 14:50:17
Post #13





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Odnosnie PDO, jestem pod wrazeniem, przyznam sie nigdy nie korzystalem z tego ale z tego co http://www.oracle.com/technology/pub/artic...do_oracle5.html widze to jak dla ORACLE to bardzo polecam.


--------------------
Go to the top of the page
+Quote Post
ikioloak
post 23.11.2005, 14:51:46
Post #14





Grupa: Zarejestrowani
Postów: 416
Pomógł: 0
Dołączył: 8.01.2004

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


@ActivePlayer
Cytat
No, to pochwal sie jakich featursów uzywasz... bo mi np. wystarcza GetArray();, GetRow();, GetOne(); i _ewentualnie_ EscapeArray();. Jak mozna sie domyslic, implementacja tych funkcji we wlasnym zakresie to okolo 50 linii kodu php. A adodb wazy nieporownywalnie wiecej.

nie zamierzam ci tutaj nic wymieniac, ale AdoDB oferuje jeszcze inne ciekawe metody o ktorych nie wspomniales.
Pewnie ze mozna sobie samemu napisac. Wszystko mozna samemu napisac. Ale po co? nie twierdze ze trzeba leciec na samych gotowcach bo to tez jest bzdura, ale generalnie nalezy sobie ulatwiac zycie.
Nie twierdze tez ze AdoDB jest najlepszym wyjsciem - innych klas nie mialem potrzeby testowac.
I podsumowujac, to ze AdoDB wazy zdecydowanie wiecej niz 50 linijek kodu nie neguje tego ze ulatwia pisanie
Go to the top of the page
+Quote Post
Aztech
post 23.11.2005, 15:36:42
Post #15





Grupa: Zarejestrowani
Postów: 276
Pomógł: 3
Dołączył: 22.10.2003
Skąd: Wrocław

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


Przyznam się szczerze, że zapytałem właśnie o AdoDB, Creole właśnie z paru powodów, które tu zostały wymienione, a w zasadzie z jednego głównego:
po co tworzyć coś, co już ktoś kiedyś napisał, co jest dobre, sprawdzone. Powiem szczerze, że bardzo ułatwi mi to pracę, bo teraz mogę się skncentrować na najważniejszej czesci mojej pracy dyplomowej nie przejmując się obsługą bazy danych i zapytaniami (a konkretnie ich prawidłową implementacją).

Mam jednak jeszcze jedno dodatkowe pytanie: mam rozumieć, że wszelkie problemy związane z bezpieczeństwem są w ADODB oraz Creole rozwiązane wzorowo?questionmark.gif?
Go to the top of the page
+Quote Post
NoiseMc
post 23.11.2005, 15:56:21
Post #16





Grupa: Zarejestrowani
Postów: 398
Pomógł: 10
Dołączył: 24.11.2004
Skąd: Łódź

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


I właśnie tu nie jestem pewien co do ADODB jak mam wyłączone magic_quotes_gpc to nie slashuje mi automatycznie danych (nie wiem jak z PreparedStatement) z formularza muszę je ręcznie przygotowywać.
Z tego co wiem to twórcy Creole inspirowali się JDBC a tam podobno poziom zabezpieczenia przed SQL Injection jest dość wysoki.

Ten post edytował NoiseMc 23.11.2005, 16:03:23


--------------------
Go to the top of the page
+Quote Post
NuLL
post 23.11.2005, 16:06:14
Post #17





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


Ja powiem tylko jedno. Widziałem w firmie projekt - jakiś programista forsował Creole - tyleże dla 82 tabel w ktorych niektore mialy po 25 kolumn. Ilosc wygenerowanego kodu krotko mowiac przerazala.

EDIT:

Uppps - Bela_666 - ma racje pomylilem Creole z Propelem.


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
SongoQ
post 23.11.2005, 17:31:36
Post #18





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Cytat
Ilosc wygenerowanego kodu krotko mowiac przerazala.

Kodu SQL?


--------------------
Go to the top of the page
+Quote Post
bregovic
post 23.11.2005, 17:53:05
Post #19





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

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


Creole to szajs, równie koszmarny co jakakolwiek konfiguracja w xml'u. ADODB jest uzyteczne dla dużych projektów, które potrzebują dużej ilości niestandardowych możliwości.

Dla prostej aplikacji znacznie łatwiej i szybciej (IMO) napisać własną małą klasę.


--------------------
Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica
Go to the top of the page
+Quote Post
mike
post 23.11.2005, 18:10:37
Post #20





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(bregovic @ 2005-11-23 17:53:05)
Creole to szajs, (...)

Twoją opinię już znamy, a mógłbyś ją uzasadnić :?:

Ja uważam że Creole jest bardzo fajny. Bardzo lekka i przejrzysta klasa, nadająca się do małych oraz średnich projektów.
Ma bardzo przejrzysty kod napisany pod php5.

Jedyne wady/braki jakie w niej znalazłem, to:
1. Brak debugera (takiego jak w AdoDB), choć przy zastosowaniach małych i średnich nie jest to takie straszne.
2. Zły kod błędu w SQLException (...), ale można to bardzo łatwo poprawić (zaleta dobrego kodu);

Ale już niedługo IMO Creole zostanie wyparte prze PDO
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 Wersja Lo-Fi Aktualny czas: 14.07.2025 - 09:54