Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: AdoDB czy Creole?
Forum PHP.pl > Forum > PHP
eMartio
Co poleciacie pod php 5 jako abstrakcyjną warstwę bazy danych: AdoDB czy Creole?

Największą zaletą Creole jest to, że w całości została napisana w PHP5 - ładnie obiektowo, z interfejsami, wyjątkami, itp. Natomiast AdoDB ma cache'owanie zapytań i chyba żadnego atutu więcej...
Ociu
z Creole możesz połączyć propel'a, więc Creole smile.gif
hwao
z tego co wiem to PHP5 ma wlasny obiekt do obslugi baz danych... ;P

co creole sa modyfikacje pozwalajace uzywac cache, a adodb jest dosyc stara biblioteka, ale dzieki temu jest tez bardzo rozbudowana... wybor zalezy od tego co Ci dokladnie potrzeba.
NoiseMc
Creole nie ma debuggera do zapytań jak AdoDB ...
eMartio
Cytat
z tego co wiem to PHP5 ma wlasny obiekt do obslugi baz danych...


Tak, PEAR::DB i PEAR::MDB. Ale wolałbym jakąś abstrakcyjną warstę na PDO.

Cytat
co creole sa modyfikacje pozwalajace uzywac cache, a adodb jest dosyc stara biblioteka, ale dzieki temu jest tez bardzo rozbudowana... wybor zalezy od tego co Ci dokladnie potrzeba.


Potrzebuję wydajnej, szybkiej i najlepiej napisanej w PHP5 abstrakcji wartwy interfejsu bazy danych do podstawowych zapytań obsługującą transakcje oraz keszowanie zapytań.

hwao, mam ogromną prośbę: podaj mi link do wersji Creole z cache.
hwao
Wiesz nie chodzilo mi o PEAR ... :-P

http://www.cms.rk.edu.pl/PDO___interfejs_b...PHP5___195.html

Tu znalazlem polski tutek winksmiley.jpg

w google masz wiecej.


Nie moge znalesc tego linka, chyba to ktos na blogu pisal ze sam dopisal cache, jak znajde dam znac
sebbo
Możesz też zainteresować się:
http://www.symfony-project.com/

Jest to obiektowy framework w php 5

Do obsługi bazy masz właśnie creole i propel.

Oraz naprawdę imponujacą dokumentację.
I bardzo duże mozliwości konfiguracyjne.
Dodam jeszcze że jest to przeniesienie RoR na php.
Diwi
Z tego co pamiętam to Open Power Driver to nakładka na PDO która dodała możliwośc cachowania, więcej znajdziesz tutaj: http://www.openpb.net/

Pozdrawiam
SongoQ
@hwao
Cytat
Wiesz nie chodzilo mi o PEAR ... :-P
http://www.cms.rk.edu.pl/PDO___interfejs_b...PHP5___195.html
Tu znalazlem polski tutek


PDO nie jest abstraktem bazy danych, nie masz czegos takiego jak translacji zapytan, PDO to zbior klas ktore dostarcza wspolne API do kilku baz danych. Zadaniem Abstraktu bazodanowego jest stosowanie 1 zapytania ktore dziala pod wiele baz danych, ale jak wiadomo masz rozbierznosci.
MySQL - LIMIT x,y
PG - LIMIT OFFSET
ORACLE - nie ma limitu

Celem no ADoDB jest translacja tego rodzaju rozbierznosci, PDO nie posiada czegos takiego.
marcini82
Sugerujesz SongoQ, ze ADOdb automatycznie przetlumaczy odpowiednie elementy SQL dla potrzeb konkretnej bazy?
Byloby super, bo jest kilka roznic miedzy pgsql i mysql i nie wiem jak to pogodzic.
Jest np. roznica przy Insercie, kiedy mamy pole auto_increment (czy tez serial) - w pgsql wpisujemy w tym miejscu DEFAULT a w mysql wstawiamy pusta wartosc ''.

Ale w takim razie czy ma znaczenie, ktorej skladni sie uzyje?
Grzebalem ostatnio w dokumentacji bo przymierzam sie do wykorzystania ADOdb w pewnej aplikacji, ale na ten temat nic nie znalazlem.
Vengeance
W takiej sytuacji wg. mnie lepiej jest stworzyć wyspecjalizowane klasy np. wg wzorca Active Record... i dla każdej bazy oddzielne, wykorzystujące wszelkie możliwości bazy. Przynajmniej ja tak robię i uważam to za lepszy sposób niż pisanie/korzystanie z abstrakcji na baze danych.
Termit_
W AdoDB jest coś takiego:
  1. <?
  2. $record["firstname"] = "Bob"; 
  3. $record["lastname"] = "Smith"; 
  4. $record["created"] = time(); 
  5. $insertSQL = $conn->AutoExecute($rs, $record, 'INSERT'); 
  6. ?>
(Zaczerpnięte z dokumentacji).
Myślę, że problem pustych wartości również został rozwiązany.
splatch
Polecam Creole. Jest to biblioteka pisana pod PHP5 (chociaż port do 4 też są). Jest mniejsza od Ado, przez co obsuguje mniejszą ilość baz. Nie mniej jest to cena, którą można ponieść.. czy ktoś korzysta z czegoś innego niż mysql, mssql, postgres, oracle? SQL Lite? A po co przy tym dodatkowa warstwa? winksmiley.jpg

To co przemawia do mnie najbardziej przy Creole to idea, wzorowanie na JDBC, a więc utrartym standardzie, który dominuje w Javie, jest ponieką domyślnym interfejsem do komunikowania się z bazami w javie. Jest to bardzo pożyteczne ponieważ nie ma problemów z tym, że do jakiejś bazy nie ma sterownika, dostarcza go zwykle sam producent oprogramowania. Twórcy php dopiero to zrozumieli i zaczęli tworzyć PDO
SongoQ
@marcini82
Cytat
Sugerujesz SongoQ, ze ADOdb automatycznie przetlumaczy odpowiednie elementy SQL dla potrzeb konkretnej bazy?
Byloby super, bo jest kilka roznic miedzy pgsql i mysql i nie wiem jak to pogodzic.

Moze nie dokladnie 1 zapytanie i zrobi Ci translacje lecz dostarcza Ci specjalnych metod, przyklad ktory podalem wyzej z LIMIT. Jak wiadomo sa niektore rzeczy tak skaplikowaze ze sie nie da. To wtedy tak jak pisal @Vengeance przygotowujesz odobne klasy dla odpowiednich baz. Tyczy sie to z odpowiednim SQLem, mozna wykorzystac zaproponowany wzorzec Active Record lecz rowniez on ma swoje ograniczenia. Jesli masz bardzo zaawansowany projekt jesli chodzi o DB to i tak musisz wyjsc poza przytoczone mechanizmy i musisz "pisac SQLem".

@Vengeance
Cytat
wg wzorca Active Record... i dla każdej bazy oddzielne, wykorzystujące wszelkie możliwości bazy. Przynajmniej ja tak robię i uważam to za lepszy sposób niż pisanie/korzystanie z abstrakcji na baze danych.
Zalezy do czego, oczywiscie prosciej jest podana przez Ciebie metoda, sam tak stosuje ale dla pewnych projektow nie da sie. Bo zapytania sa tak zamieszane ze trudno do tego zrobic automat.

@splatch
Cytat
Twórcy php dopiero to zrozumieli i zaczęli tworzyć PDO
He he he nie tylko tworcy php. Rozniez ORACLE od jakiegos czasu supportuje PDO wedlug mnie to jest krok w przyszlosc (wspolne API). Piszesz oprogramowanie w 3 bazkach musisz znac 100 roznych funkcji do tych baz, a tak wystarczy ze poznasz 20 bardzo dobrze i mozesz pisac w kazdej (pomijajac rozbierznosci SQLa)
eMartio
A wracając do tematu, to przeanalizowałem sobie obie abstrakcje i chyba jednak AdoDB ma nieco większą przewagę. Wprawdzie jest wolniejsze od Creole i brzydko napisane w PHP4, to posiada nieporównywalnie większą funkcjonalność! Keszowanie zapytań, stronicowanie danych, generowanie menu i tabel, funkcje AutoExecute(), gdzie mozna dane do INSERTa czy UPDATE przekazac poprzez tablice i w dowonej kolejnosci. Moze kiedys AdoDB zostanie przepisane na PHP5, a wtedy bedzie to bezsprzecznie numer 1!
Aztech
Też swego czasu pytałem o to samo w ty wątku. Poczytaj, może Ci coś pomoże.
Dodam tylko od siebie, że po początkowej przygodzie z AdoDB przesiadłem się jednak na PDO. Korzystałem z wzorca ActiveRecord w swoim projekcie i przesiadka z Ado do PDO odbyła się paktycznie bezboleśnie.
Z własnego doświadczenia podpowiem Ci, abyś się dokładnie, bardzo dokładnie zastawnowił, czego tak naprawdę potrzebujesz. Pamietaj, że aby wbić mały gwózdek lepszy jest mały młoteczek a nie potężny kafar (taka metafora biggrin.gif)
SongoQ
Z PDO jest jeszcze taki problem ze wielu firmach jeszcze nie jest zainstalowane, wiec trafic na dobry hosting z PDO jest problem.
eMartio
Cytat(SongoQ @ 2006-03-29 13:05:49)
Z PDO jest jeszcze taki problem ze wielu firmach jeszcze nie jest zainstalowane, wiec trafic na dobry hosting z PDO jest problem.

Chyba nie... Home.pl ma php 5.1.2 i co za tym idzie PDO. Hosting jest na prawde dobry, śmiem nawet twierdzić, że najlepszy w Polsce! Chodzi stabilnie i szybko. Nie ma problemów jak przy tanich, kiepskich hostach. A w tym tygodniu dodatkowo dodali obsługę mod_rewrite winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.