Wszystkie zapytania w jednym pliku

0

Cześć,
tworzę pewien projekt, w którym wszystko w zasadzie opiera się na bazie danych. Mam wiele zapytań w wielu plikach, czasem zdarza się, że mi się one dublują. To mi utrudnia pracę, dlatego "przenoszę" się z kodu strukturalnego na obiektowy wraz z modelem MVC. Teraz takie pytanie. Czy rozwiązanie takie iż wszystkie zapytania trzymałbym w jednym pliku jest dobre? Później bym się odwoływał w widoku czy tam modelu do określonej instancji. Przykład:

class Register{
   public RegisterUser(){
   //zapytanie z rejestracją
   }
}
class Login{
   public LoginUser(){
   //zapytanie z logowaniem
   }
   public UpdateVisit(){
   //zapytanie UPDATE, które np. dodaje liczbę zalogowań
   }
}
class Cokolwiek{
   public Byleco(){
   //inne zapytania w określonych klasach
   }
}

Każda klasa odpowiedzialna była by za "obsługę" zapytań dla określonej funkcji projektu, np. rejestracji czy logowania. Co o tym myślicie? Czy to dobry pomysł. Całość umieściłbym w jednym wspólnym pliku o nazwie np. Query.class.php

0

Myślimy (a przynajmniej ja), że takie rzeczy to się załatwia obiektami biznesowymi i jakimś ORMem a nie ręcznym klepaniem zapytań

0

Wydaje mi się, że można to zrobić lepiej, niż wszystkie zapytania w jednym pliku.

Twoje rozwiązanie powoduje bardzo ścisłe powiązanie pomiędzy klasami, utrudnia jakąkolwiek refaktoryzację, utrudnia wykorzystanie gotowych rozwiązań.
Najlepiej zastosować ORM (np. Doctrine2), który nie tylko przejmie "pisanie" zapytań, ale rozwiąże problemy związane z bezpieczeństwem (SQL Injection itp.). Ponadto znacznie przyspieszy pracę z bazą.

Jeżeli kategorycznie nie chcesz używać ORMa, to proponuję, abyś tworzył klasy repozytoriów, które zwrócą Ci obiekty na podstawie danych z bazy. Takie rozwiązanie sprawi, że Twój system będzie bardziej elastyczny, w przyszłości umożliwi Ci podpięcie ORMa, przejście na inną bazę itp.

[Mirek]

1 użytkowników online, w tym zalogowanych: 0, gości: 1