![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 15.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam od paru dni przeglądam manuala do Doctrine 2 ORM 2.2 zaimplementowałem zgodnie z maualem go do CI i mam pytanie tak naprawde istnieje pare "metody" np pobierania danych z bazy:
1. $user = $em->createQuery($dql)->getResult() 2. $user = $em->find("User", $id); 3. $user_r = $em->getRepository('User') 4. $qb = $em->createQueryBuilder(); $qb->select('u')->from('User', 'u') Mam pytanie kiedy którcyh poleceń powinienem używać ? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 27 Pomógł: 4 Dołączył: 27.01.2012 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Odpowiedź: Najlepiej korzystać ze wszystkich, ale każdy nadaje się lepiej do czego innego. Przedstawiam listę w kolejności użytkowania wg. mnie najlepszej. Przechodzisz przez kolejne punkty - jeżeli czegoś nie da się pobrać przez $this->find idziesz do query buildera, jak czegoś nie znajdziesz w query builderze - idziesz do dqla. Jednak wszystkie te operacje najlepiej wykonywać w repozytorium (no może poza ->find)
Pobiera usera po id - przypadek najprostrzy:
Query builder jest dużo częściej wykorzystywany do zapytań niż dql - łatwiejszy i czytelniejszy. Łatwo jest w nim joinować budując skomplikowane obiekty
Do trudniejszych zapytań z joinami - tak na prawdę powinno się to znajdować w repozytorium, a na pewno nie w kontrolerze:
Repozytorium jest do przechowywania metod pobierania i pracy na danych z bazy. Najlepiej jest tam dorzucić metody pobierające użytkowników wg konkretnych warunków, w innych repozytoriach pobierasz z tego np. artykuły dla użytkownika z tagami (przez zdeklarowane przez siebei metody)
-------------------- Zapraszam do głosowania na agendę PHPCon Poland 2013 http://www.phpcon.pl/2013/pl/agenda.
--- Piotr Pasich piotr.pasich@xsolve.pl www.xsolve.pl |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 14:17 |