![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 9 Dołączył: 25.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
Ogarnąłem już PDO i używam statycznej zmiennej do połączenia się z bazą. Tutaj przykładowa klasa: https://gist.github.com/mprz/6cce0e6dd51e4796209c
Tworząc kilka klas niejako uzależniam je od klasy odpowiedzialnej za tworzenie połączenia. Czy to na pewno idealne rozwiązanie? Druga sprawa: gdzie inkludować ową klasę DB? W każdej z klas która jej używa, czy w programie, który korzysta z obu klas (tak robię obecnie)? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Napisałem że nie potrzebujesz tworzyć kilku połączeń, zazwyczaj wystarczy jedno. Zazwyczaj... a gdy w końcu przychodzi konieczność skorzystania z kolejnego jest ogromny problem ze zrobieniem tego w cywilizowany sposób. Nie wspominając już o tak trywialnych rzeczach jak chociażby próba napisania testów pod taki kod.Cytat Dlaczego singleton jest tu niby nie na miejscu? Bo Singleton tworzy "twardą", ukrytą zależność pomiędzy kompletnie różnymi obiektami, a to bardzo utrudnia pracę nad kodem i niweczy większość zalet OOP.Cytat Czy zauwazyłeś aby tak zachwywało się Doctrine, Hibernate czy SQLAlchemy ? Co do SQLAlchemy się nie wypowiadam bo nie znam, ale dwa pierwsze robią dokładnie to o czym wspomniałem.Cytat Całość można podciąnąć nawet wyżej, zazwyaczaj będziesz chciał mieć jedego entity managera na wątek. Trochę sobie tutaj pomieszałeś. EntityManager znany z JPA/Hibernate nie jest thread safe dlatego też powinieneś mieć osobnego EM-a dla każdego z wątków* Nie ma natomiast absolutnie żadnego przeciwwskazania by jeden wątek posiadał kilka EM-ów. To jednak już wątek z zagadnienia wielowątkowości z którą bezpośrednio w PHP właściwie nie mamy do czynienia, więc pomińmy ten temat.* nic nie stoi też na przeszkodzie by używać jednego EM-a równocześnie przez wiele wątków, trzeba tylko samemu zatroszczyć się o odpowiednią synchronizację. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 02:23 |