Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Klasa] TurDatabase 1.1
Forum PHP.pl > Inne > Oceny
Turgon
Witam!
Ostatnio przeszukując partycje Windowsową, znalazłem tą klasę smile.gif Odkurzyłem ją co nieco i postanowiłem dać do oceny biggrin.gif Proszę o konstruktywne opinie smile.gif, a nie, że API mi się nie podoba smile.gif Jej napisanie miało na celu ujednolicenie interfejsu dla różnych baz danych i systemów podłączania do nich. Obecnie jest tylko silnik mysql smile.gif W najbliższym czasie napiszę dla pgsql i sqlite z wersjami na PDO smile.gif

Wprowadziłem kosmetyczne zmiany smile.gif

Paczka .tar.gz
Paczka .zip

Zdravim
Łukasz
Ociu
Ogólnie ok. Brakuje tylko iteracji i cache.
Prph
Witam,

Brakuje sporo rzeczy. Chociazby:

1. tworzenia polaczenia stalego.
2. innej metody fetch (masz tylko assoc)
3. transacji
4. masz affected_rows, ale nie masz num_rows.

  1. <?php
  2. handleTurDriverException($e)
  3. ?>


Po co ta funkcja? Chyba nie jest potrzebna. Obsluga wyjatku to juz sprawa programisty.

BTW, nie deconnect, tylko disconnect winksmiley.jpg

Adrian.
Turgon
@Adrian, no tak, ale kiedyś dawno temu przyzwyczaiłem się do deconnect i tak już zostało. Zboczenie zawodowe winksmiley.jpg . Transacji ? Co to ma być ?
@Ociu: Interacja czego? Co do Cache w klasie jest napisane, że todo smile.gif
dr_bonzo
Cytat
Jej napisanie miało na celu ujednolicenie interfejsu dla różnych baz danych i systemów podłączania do nich (...) W najbliższym czasie napiszę dla pgsql i sqlite z wersjami na PDO


Czyzbym widzial wynajdywanie kola? Przeciez PDO to wspolny interfejs dostepu do baz.


Cytat
Proszę o konstruktywne opinie , a nie, że API mi się nie podoba

A czemu nie? Jesli API dla mnie bedzie trudne, niewygodne, nazwy metod nie beda oczywiste ("deconnect" biggrin.gif) to nie bede uzywal.

Patrz: API OpenGLa (przynajlniej dla C++, nie wiem jak jest w innych jezykach) dla kogos kto chce pisac w OOP.

Do kodu nie zagladalem.

No i jeszcze nazwa klasy mi sie nie podoba -- bo nic o niej nie mowi? Kierowca? Po co mi on?
Turgon
dr_bonzo: Nie wszędzie jest PDO, a chce mieć wygodny interfejs. Poprawię trochę te rzeczy i co do nazwy to zmienię tej metody, ale klasy może...
Riklaunim
Cytat(Turgon @ 18.01.2007, 22:03:21 ) *
dr_bonzo: Nie wszędzie jest PDO


Nie wszędzie jest PHP5, nie wszędzie safe mod jest na off. Przyjmując taką koncepcję powinieneś tworzyć pod php 4.0 na Krasnalu winksmiley.jpg Narzędzie tworzysz albo dla dzieci robiących stronki na darmowych hostach albo do użytku w profesjonalnych projektach. Jeżeli ktoś zleci ci wykonanie dużego serwisu to wybór wymagań leży po twojej stronie tak więc wybór konfiguracji php ułatwiającej wykonanie zadania to nie problem.

Poza tym obecnie na serwerach przeważa php 5.1 nad 5.0 (bezpieczeństwo itp.) i przynajmniej do SQLite interfejs jest dostępny. Poza tym jak płacę to wymagam.
Turgon
No ja też ;], generalnie smile.gif Nawet dla mnie jest to problem, że nie ma czegoś tam winksmiley.jpg
Ociu
Cytat(Turgon @ 18.01.2007, 19:48:34 ) *
@Ociu: Interacja czego? Co do Cache w klasie jest napisane, że todo smile.gif


Wyników zapytania.
Turgon
Masz na myśli implementacje interfejsów Iterator i Iterator Agregate ?
Strzałek
Zawsze jest Creole
Turgon
@Strzałek: Cóżto za bezczelna reklama ? Wynocha z nią biggrin.gif
Strzałek
Nie reklama.
Po co pisać coś odnowa? Kopiować gotowe rozwiązania? Też tak kiedyś robiłem, jednak doszedłem do wniosku że to po prostu nie ma sensu.

I tak nic lepszego od Creole nie napiszesz, więc pytanie po co?
Koniec offtopicku.
Turgon
Jakieś Creole i Propel mnie tylko denerwują.
Dodałem repo online http://repository.turgon.pl.
Bastion
Nic specjalnego. Biorąc pod uwagę,

- jeden silnik

- zły nawyk wyciszania błędów za pomocą @

- tylko fetchAssoc

- mało intuicyjne API

- w kilku miejscach nie przemyślane returny, które nigdy nie wystąpią np :

Kod
        public function insertId(){
                if(is_resource($this->hDB)){
                        return mysql_insert_id($this->hDB);
                }
                else{
                        return false;
                }
                return;
        }


- poćwicz warunki bo zwracając return mysql_insert_id($this->hDB), gdy id = 0
wyjdą klocki w stylu if ($id = $obj -> insert_id()) { } . Podobnie jest z innymi
metodami, które mogą zwrócić wynik 0 a nie FALSE

- brak współdzielenia połączeń przez obiekty TurDatabas

- brak cache

- czasochłonne określenie co chcemy z bazy uzyskać

- brak mapowania STMT

- brak escape

- brak transacji

- po co po instrukcji wyrzucenia wyjątku dajesz return false?
Riklaunim
Cytat(Turgon @ 23.01.2007, 13:52:03 ) *
Jakieś Creole i Propel mnie tylko denerwują.


tyle że one działają, są rozwijane przez profesjonalistów i są dzięki temu stabilne i dojrzałe dzięki czemu winksmiley.jpg są stosowane w produkcyjnych rozwiązaniach. Tworząc publiczny kod trzeba się zastanowić po co się go tworzy ? Jeżeli ktoś ma z niego korzystać to owy kod musi spełniać pewne wymagania. Jeżeli tworzyć tylko dla siebie czy też dla script txt_kiddies to inna sprawa ale powinieneś to "wyraźnie" zaznaczyć.
Turgon
Piszę coś, co mi będzie wygodnie używać choć i tak np. w przypadku tych silników, można podpiąć zawsze jakiś tam własny skrypt.
Bastion
Daleko temu od :

- wygody
- intuicyjności
- poprawności
- sensu korzystania
Turgon
Dla ciebie smile.gif Co do klasy, to i tak ulegnie kolejnej przebudowie jak wszystko co do tej pory napisałem ;]
Prph
Najlepsze jest to, ze to juz wersja 1.1 biggrin.gif

Adrian.
Turgon
To drugie wydanie wogóle tongue.gif Ja rozpoczynam zawsze numerację od 1.0 .
Prph
Cytat(Turgon @ 24.01.2007, 13:59:27 ) *
To drugie wydanie wogóle tongue.gif Ja rozpoczynam zawsze numerację od 1.0 .


To sie naucz numerować. Albo nie numeruj.

Adrian.
nasty
Turgon: Numerek 1.0 przypada pierwszej stabilnej i ukonczonej wesji.
Jezeli Twoja klasa jeszcze nie jest w koncowym stadium to numerek powinnien byc 0.x albo 1.0 [beta/alfa/pre-alfa/...]
Turgon
nasty_psycho: Nie robię jak nie którzy cud w stylu 0.1 a następnie 0.0.2 :] Sorry, ale ja wolę tak numerować.
Bastion
OMG smile.gif

Pierwszy raz widze wersje rozwojwa oznaczoną 1.0.0, a juz kompetna nowoscia dla mnie jest
ze 0.0.2 jest po 0.1 laugh.gif laugh.gif
NuLL
Cytat(Turgon @ 24.01.2007, 18:01:49 ) *
nasty_psycho: Nie robię jak nie którzy cud w stylu 0.1 a następnie 0.0.2 :] Sorry, ale ja wolę tak numerować.

A gdzie to tak jest ? ROTFL biggrin.gif party.gif

@EDIT - no jesli Athlan wyznacza trendy w programowaniu to ja ide robic co innego biggrin.gif
Turgon
Athlan takie cudo zrobił.
Zamknąć temat, bo to spamowisko.
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.