• 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
280 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 (214,220 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 (214,220 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 (214,220 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 169 wizyt
pytanie zadane 10 maja 2020 w PHP przez XiverKi Bywalec (2,050 p.)
0 głosów
1 odpowiedź 296 wizyt
0 głosów
1 odpowiedź 263 wizyt
pytanie zadane 4 stycznia 2018 w PHP przez Kacper Duda Obywatel (1,970 p.)

93,028 zapytań

141,991 odpowiedzi

321,294 komentarzy

62,375 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

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...