Kategorie

Kategorie

Kategoria wyżej
O autorze

O autorze

Magazyn PHP Solutions

Podobne Artykuły

Poniżej znajduje się lista podobnych artykułów:
Brak powiązanych artykułów

Propel, czyli wydajna i wygodna obsługa baz danych w PHP5

ORM - czy warto

Obejrzenie kilku przykładów zastosowania Propela daje nam wyobrażenie o skali wysiłku i czasu, jakie możemy dzięki niemu zaoszczędzić w trakcie pisania aplikacji WWW korzystającej z bazy danych. Dodatkowo, niezależność aplikacji od konkretnego systemu bazy danych daje nam nie tylko możliwość uruchamiania oprogramowania np. na MySQL-u, PostgreSQL-u i Oracle, ale również zabezpiecza nas w pewnym stopniu przed przykrymi skutkami zmian nazw tabel i ich pól. Niestety, pozbawimy się tej zalety, jeśli w naszych skryptach umieścimy instrukcje SQL charakterystyczne dla dialektu określonego systemu baz danych.

Mimo niewątpliwych zalet, jakie niesie ze sobą użycie rozwiązania typu ORM, warto zastanowić się nad potencjalnymi pułapkami. Przede wszystkim musimy pamiętać, że używanie narzędzia mapującego wiąże się z napisaniem i pielęgnowaniem metainformacji. W przypadku Propela przybierają one postać pliku XML. Z drugiej strony, przy standardowym podejściu, wszystkie metainformacje są rozrzucone po całej aplikacji w instrukcjach SQL. Istnieje szansa, że mimo większego początkowo nakładu pracy, podejście oparte o ORM okaże się łatwiejsze w utrzymaniu i rozwoju. Wynika z tego prosty wniosek, że Propel i podobne biblioteki przydają się w dużych projektach, natomiast w przypadku małych i krótko żyjących mogą stanowić tylko niepotrzebną komplikację.

Innym, często podnoszonym przeciwko rozwiązaniom typu ORM argumentem są kwestie wydajnościowe. W przypadku części konkretnych zapytań SQL może okazać się, że kod wygenerowany automatycznie przez warstwę pośrednią będzie mniej efektywny niż napisany ręcznie przez programistę. Trudno tutaj o jednoznaczne recepty, bo wydajność konkretnego programu zależy w dużej mierze od fizycznego modelu danych. Jako ogólną zasadę można przyjąć, iż narzędzia ORM najlepiej sprawdzą się w przypadku stron, na których występuje dużo zapytań o pojedyncze obiekty z różnych tabel. Dobrym przykładem może być sklep internetowy, gdzie oprócz karty produktu widzimy jego oceny i recenzje, nazwę zalogowanego użytkownika i zawartość koszyka, aktualnych solenizantów, kategorie sklepowe i kilka nowości. Z dużą ostrożnością należy z kolei stosować ORM w aplikacjach, gdzie nie manipulujemy obiektami, a danymi tabelarycznymi, np. raporty, zestawienia itd. Tam standardowe podejście jest bardziej naturalne i efektywniejsze.

Niezależnie od typu aplikacji, konkretne informacje o jej wydajności możemy zdobyć dopiero po sesji profilowania. Nasza intuicja często zawodzi i wąskie gardła znajdują się w zupełnie innych miejscach, niż się tego spodziewamy. Nawet jeśli w programie kilka operacji musi wykonywać się bardzo szybko, to najlepiej zakodować w SQL-u tylko te szczególne przypadki, np. nadpisując przy dziedziczeniu wygenerowany kod, standardowo zaś posługiwać się ORM.

Rysunek 4. Pliki i katalogi utworzone przez Propel-generator

Informacje na podobny temat:
Wasze opinie
Wszystkie opinie użytkowników: (1)
Generowanie pliku schema.xml dla Propela w Vertabelo
Czwartek 08 Styczeń 2015 1:35:21 pm - javert <jacek.polkowski_at_e-point.pl>

W temacie generowania pliku XML opisującego strukturę istniejącej bazy danych, to warto dodać, że od niedawna możliwe jest przekonwertowanie modelu bazy danych stworzonej w Vertabelo do formatu schema.xml właściwego dla Propela. Dla tych, co jeszcze nie wiedzą, dodam, że Vertabelo jest stworzoną w Polsce aplikacją online służącą do wizualnego projektowania baz danych (można tu stworzyć model od zera lub zaimportować strukturę z już istniejącej bazy danych). Korzystanie z aplikacji jest darmowe dla małych projektów i całkowicie darmowe dla studentów, więc polecam. Po stworzeniu modelu bazy danych w Vertabelo można go przekonwetować na potrzeby Propela za pomocą specjalnego skryptu. Cały myk jest opisany w dokumentacji Vertabelo: http://www.vertabelo.com/blog/vertabelo-news/vertabelo-propel-installation-instructions

Mentax.pl    NQ.pl- serwery z dodatkiem świętego spokoju...   
O nas | Kontakt | Mapa serwisu
Copyright (c) 2003-2026 php.pl    Wszystkie prawa zastrzeżone    Powered by eZ publish Content Management System eZ publish Content Management System