Stosowanie ORM w aplikacjach php

Rozpoczynając nowy projekt zastanawiam się czy jest sens używać ORM. Jest kilka za i przeciw m.in. powoduje narzut pamięci, spowalnia trochę aplikacje, upraszcza zapytania etc.

Według was lepiej używać jakiejś gotowej biblioteki prokroju propela, doctrine (ewentualnie jakiejś innej) czy standardowego mysql_query tudzież PDO?

2 lata, 3 miesiące temu | edytowane przez: lqc 3965112

  • W ORmach jak sie dobrze skorzysta z cachowanie to wydajnosc nie jest zla a kod bardziej przyjazny dla oka. Polecam glownie proste i szybkie ORMy i wtedy jest ok.

  • To naprawdę zależy od tego na czym Ci bardziej zależy, wg. angielskiej wikipedii:

    ORM often reduces the amount of code needed to be written[1].

    There are cons as well as benefits for using O/R mapping. For instance, some O/R mapping tools do not perform well during bulk deletions of data. Stored procedures may have better performance, but are not portable. As well, heavy reliance on ORM software has been pointed to as a major factor in producing poorly designed databases.

    Plusem jest zredukowanie kodu który trzeba samemu napisać, z kolei, jako minus... cóż, trochę napisali - przy czym polska wiki ograniczyła się jedynie do zdania:

    Z ORM związany jest szereg problemów wydajnościowych.

    hmm... to trochę tak jak z C#. NET vs C++, szybkość pisania okupiona szybkością działania ;-)

  • Ja tam akurat uwielbiam propela, są ciekawsze rzeczy niż klepanie komend sql'owych, a zaoszczędzony czas można wykorzystać do wprowadzania kolejnych elementów systemu

  • Co jak co, ale w Kohanie ORM mi odpowiada. Wystarczy czasami nadpisać konstruktor by pozbyć się niepotrzebnych pytań i gra gitara.:)

  • Wg mnie nie warto. Mimo że aplikacja robi sie crossplatform ze względu ze zarówno w propelu jak i doctrine wystarczy w configu zmienic czy to ma być mysql czy postgre oraz przyspiesza troche prace. To w większych projektach staje się wąskim gardłem. Wg wszelkich testów wszystko jest szybsze niż ormy (fakt ze ostatnie wersje propela i doctrine sa bodaj 2x szybsze od poprzednich wersji)

    Osobiście jak nie musze to nie stosuje :) acz np w symfony trudno bez orma sie poruszać

  • Ja wole osobiście doctrine za dql. Chociaż ten orm ma tez swoje minusy jak wszędobylskie magiczne metody na których gubi się każde IDE i o podpowiadaniu składnię można zapomnieć. A co do wydajności to nie zauważyłem, żeby jakoś to specjalnie zwalniało (nie licząc jakichś skomplikowanych joinów albo relacji wiele do wielu).

  • PDO rządzi! po co sie pakować w jakieś zewnętrzne biblioteki pisane w php jak można uzyć natywnego PDO defacto jest używane włąsnie w tych bibliotekach. Co prawda przy złożonych zapytaniach wykorzystujących silnik bazy danych do ostatka tracimy przenośność bo część zapytań trzeba przepisać, ale tak czy inaczej wole natywne rozwiązania

  • Ja z racji używania symfony jestem skazany na orm, jako ze jakiś czas temu zaczalem to używam propela i powiem szczerze że: cache, cache i jeszcze raz cache i rzadny ni to orm ni to rozbudowany framework nie jest serwerowi straszny

Zaloguj się, aby dodać swoją odpowiedź