2010-08-31 22 views
8

Mam pęczek pięknego kodu OOP, ale funkcje mają te monstrualnie ogromne zapytania SQL. Czy w 2010 r. Powinniśmy nadal pisać zapytania w trybie on-line lub czy istnieje abstrakcja, taka jak MVC, dla zapytań SQL w PHP?Najlepsza praktyka organizowania zapytań SQL w kodzie?

Dziękujemy za spostrzeżenia.

Edytuj: Prawdopodobnie powinienem był o tym wspomnieć tutaj. Ale jako profesjonalny inżynier PHP, nie uwierzyłbyś, jak często natknąłem się na ORMy zrobione strasznie i (jeszcze gorzej!) ORM-y zaprogramowane poprawnie, które działają absolutnie (szczególnie na wiele-do-wielu i wiele pytań dołączających). Jestem bardzo negatywnie nastawiony do ORM, z wyjątkiem kilku prostych ORM, takich jak Kohana.

Domyślam się, czego szukałem, to ogólny wzór dynamicznego projektu SQL.

Odpowiedz

8

możesz pisać swoje kwerendy (wybierz, wstaw, aktualizuj, usuń, ...) w procedurach przechowywanych i tylko wywoływać te procedury przechowywane z poziomu kodu php, zamiast pisać swoje zapytania w plikach php.

dobrym źródłem do nauki procedur przechowywanych w MySQL jest ta książka:

mysql stored procedure programming

+2

Dostęp do danych +1 z aplikacji powinien być przechowywany przez procenty – CaffGeek

1

Możesz sprawdzić, używając: Doctrine ORM. Nie jestem pewien, czy o to prosiłeś, czy nie.

1

Dobrym sposobem jest użycie ORM, takiego jak Doctrine.

3

Nie wiem o PHP, ale można użyć ORM. Wikipedia ma fajne list oprogramowania ORM.

1

ja przeważnie pracują w Joomla i rozwinął własną OO wrapper dla SQL pokolenia. Ale kiedy pracuję nad projektem non-joomla, zawsze używam db2php, to jest wtyczka Netbeans IDE. Ułatwia wykonywanie nawet złożonych zapytań.

Generowanie modeli wymaga kilku kliknięć i wszystko jest gotowe.

To wspaniały projekt źródłowy. Sprawdź to.

http://code.google.com/p/db2php/

1

lubię użyciu phps OOP podchodzi ze statycznym klasy DB oraz stosowanie procedur przechowywanych (SP).

W ten sposób cały kod Mysql jest przechowywany na serwerze i można zaimplementować sprawdzanie uprawnień wraz ze złożonymi zapytaniami - używając przygotowanych instrukcji w SP. W Postgreszu można używać funkcji.

Umożliwia to czystą klasę bazy danych z ogólnym kodem do budowania wywołań SP. W najlepszym przypadku metody brokera akceptują obiekty jako parametry, dzięki czemu programista PHP może skoncentrować się na swoim kodzie i czerpie wszystkie korzyści z phpdoc w swoim IDE (autouzupełnianie!).

np.

$x = new SEARCH_ITEM(); 
$x->name = $blab; 
$resObj = $this->db->search_item($x); 

Ułatwia to również wdrożenie rzeczy jako interfejsu API do projektu.

Pisanie SPs to całkiem sporo, jeśli nie jesteś do tego przyzwyczajony.

Czy istnieje dobre oprogramowanie? Sądzę, że istnieją dobre pakiety abstrakcji, o których nie wiem ... Nie widzę takich rzeczy jak PDO czy Adodb jako warstwa abstrakcji w tym sensie. Kreolski lub Propel jest bardziej podobny do tego, o czym myślę. Coś, w którym zapytania nie są częścią kodu i są budowane przy użyciu warstw abstrakcji, takich jak PDO. Nie próbowałem kreolski i napędowy.

Powiązane problemy