2012-01-09 15 views
6

My question is fairly clear, i Naprawdę chciałbym usłyszeć niektóre powody odpowiedzi.Czy można zawinąć PDO lub rozszerzyć go?

Dodatkowe informacje:

  • Nie używam żadnego rodzaju frameworkiem.
  • PHP> 5.3.

Aktualizacja:

Teraz nie mam wiele ograniczeń wokół mojego projektu, jest to projekt jednego człowieka jeszcze i ciężko pracowali, aby wszystko jak stracić sprzężone i modułowa jako możliwy. tak jak mi powiedziano, nie podobało mi się API PDO po zabawie z nim przez jakiś czas, ale to nie jest duży problem, jeśli trzymanie się jego publicznego API da mi większą elastyczność lub jest uważane za dobrą praktykę.

Moje pytanie brzmi: Co zyskasz i utracisz, używając składu lub dziedziczenia, biorąc pod uwagę przedmiot, o którym mowa, to sama warstwa abstrakcji, w tym przypadku PDO,?

tl; dr: Jeden projekt człowiek stara się być Modular, jak to możliwe, Skład lub dziedziczenia dla użyciem 3rd party warstwę abstrakcji (PDO konkretnie)?

Uwaga: jeśli nie jest to właściwe miejsce, zagłosuj na migrację do programistów. i przepraszam za mój zły angielski.

+0

@ Dvvvoter: Dbać o opracowanie? –

+3

To zachęca do dyskusji (dlatego widzisz w dół głosów i widzimy flagi). Jeśli mógłbyś to zmienić w celu uwzględnienia swojej gry końcowej w tym scenariuszu ... odpowiedzi mogłyby być o wiele bardziej obiektywne i prawdopodobnie dotyczyłoby to tematu w Programmers SE. Pamiętaj, że Stack Overflow jest dla prawdziwych problemów, z którymi się spotykasz, więc potrzebny jest bardziej konkretny scenariusz (jeśli teoretycznie, to Programiści będą lepszym miejscem). –

+0

@TimPost Dzięki za oczyszczenie, zaktualizowałem moje pytanie. –

Odpowiedz

5

Jestem fanem owijania klasami "3rd party", dzięki czemu jesteś mniej zależny od wsparcia dla klasy. Gdyby ktoś później zmieniał nazwy funkcji w PDO, twój kod zmieniałby się wokół całego twojego kodu. W przypadku zawijania tylko klasa zawijania zmieniłaby się, ponieważ interfejs jest niezależny.

3

Generalnie nie zawracałbym sobie głowy zawijaniem, chyba że nie podoba ci się API. Jeśli zdecydujesz się zejść tą trasą, użyłbym Idiorm (i możliwego Paris dla aktywnego rekordu) zamiast toczyć własne.

Nigdy bym nie pomyślał o rozszerzeniu rozszerzenia strony trzeciej, chyba że planowałem również zachować kod lub nigdy nie aktualizować tej biblioteki. Omijając piaskownicę, biblioteka zewnętrzna jest oddalona od kodu tak bardzo, jak to tylko możliwe, aby zmiany w kodzie były mniej dotknięte.

Powiązane problemy