• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Symfony 4 , Doctrine - a szybkość

VPS Starter Arubacloud
0 głosów
238 wizyt
pytanie zadane 5 października 2019 w PHP przez niezalogowany
Dzień dobry,

 

czytam sobie właśnie na temat zalet i wad FW Symfony i jako, że mamy juz wersję 4 chciałbym się dowiedzieć od bardziej doświadczonych kolegów, jak to jest z Doctrinem? czy on faktycznie zabija szybkosć i wydajność?

Czy faktycznie Symfony nadaje się tylko do tworzenia aplikacji webowych, a nie np api , na które skierowany jest duży ruch, ponieważ brakuje jej szybkości?

2 odpowiedzi

0 głosów
odpowiedź 5 października 2019 przez HaKIM Szeryf (87,590 p.)

Doctrine zabija szybkość i wydajność (strony*), gdy jest nieodpowiednio użyty. ORM służy do mapowania, nie do wyciągania danych dla celów "HTMLowych". Niestety, mało kto zwraca na to uwagę. A Ci, którzy tego nie robią, krzyczą, że ORMy to syf. frown

Używaj DBALa/czysty SQL z PDO zamiast ORM do wyciągania danych dla celów UI i będzie ok.

komentarz 5 października 2019 przez michal_php Stary wyjadacz (13,700 p.)
Co rozumiesz mówiąc, że jest źle używany w relacjach?
komentarz 5 października 2019 przez Ehlert Ekspert (212,630 p.)
Dużo osób zaczyna używać tego przez pryzmat schematu bazy danych. Myślą że tabela jest mapowana do obiektów. Tak naprawdę to istotą aplikacji są obiekty domenowe. To czy zapisujesz je w jsonie w Mongo czy jako krotka w sqlu to szczegół implementacyjny.
0 głosów
odpowiedź 5 października 2019 przez Ehlert Ekspert (212,630 p.)

Od siebie dodam, że tworzyłem zarówno api jak i twigowe aplikacje w Symfony i przy normalnym pisaniu nie ma problemów z wydajnością.

Oczywiście zdarzało się, że pamięć ciekła, ale to przez niedopatrzenie kiedy z bazy było hydrowanych kilka tysięcy obiektów cheeky​​​​​​

Problemy wymagające większego przemyślenia mogą się pojawić przy przetwarzaniu dużych struktur takich jak drzewo.

komentarz 5 października 2019 przez niezalogowany
Czyli w takim razie do update / insert powinienem używać metod doctrine i entityManager, natomiast przy selectach już nie?

Co wtedy? Czyste sqlki?

 

Czy byłbyś w stanie rzucić mi jakimś małym przykładem?
komentarz 5 października 2019 przez Ehlert Ekspert (212,630 p.)
Wyciąganie danych zostaw dla repozytoriów. Stamtąd powinieneś dostać obiekty.

Co do zmian w danych. Wyciagasz obiekt przez repo, robisz zmiany przez metody w tym obiekcie i następnie podajesz go jako argument do metody flush w entity managerze. Warto to umieści w serwisach z dobrą odpowiedzialnością.

Podobne pytania

0 głosów
0 odpowiedzi 151 wizyt
pytanie zadane 10 maja 2020 w PHP przez XiverKi Obywatel (1,920 p.)
0 głosów
1 odpowiedź 280 wizyt
0 głosów
1 odpowiedź 242 wizyt
pytanie zadane 4 stycznia 2018 w PHP przez Kacper Duda Obywatel (1,970 p.)

92,452 zapytań

141,262 odpowiedzi

319,077 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...