Doctrine jest zaawansowaną biblioteką PHP służącą do obiektowej pracy z bazami danych. Głównym zadaniem i celem Doctrine jest opisanie schematu bazy danych za pomocą encji danych i manipulowanie danymi w sposób w pełni obiektowy.
Paradygmat ten nosi nazwę ORM (Object-relational mapping) i jest wzorcem projektowym służącym do przekształcania (opakowywania) danych przechowywanych w relacyjnej bazie danych w obiekt, który może być używany w języku obiektowym. Dlatego, aby zrozumieć i używać Doctrine, musisz znać przynajmniej podstawy Object-Oriented Programming.
Jest wiele powodów:
Autor tego artykułu (Jan Barasek) od dawna uważa, że Doctrine jest najlepszym sposobem pracy z bazą danych w PHP. Po prostu nie ma konkurencji.
Zanim zaczniesz w pełni korzystać z Doctrine, musisz przygotować odpowiednie środowisko. Jeśli dopiero zaczynasz swoją przygodę z PHP lub nie masz dużej wiedzy na ten temat, najlepszym wyborem jest zainstalowanie Nette Framework z pakietem rozszerzeń Baraja Doctrine, który automatycznie zapewnia pełną obsługę. Najpierw należy pobrać pakiet przez Composer, następnie skonfigurować rozszerzenie DI, a Doctrine zacznie działać automatycznie.
Aby Doctrine działał poprawnie, należy przygotować pustą bazę danych (Doctrine może pracować z istniejącym projektem, ale w pierwszych krokach nie jest to wskazane, gdyż grozi nadpisaniem istniejących danych) i skonfigurować połączenie. Ponieważ Doctrine nie jest tylko biblioteką bazodanową, ale stanowi zaawansowany framework bazodanowy, należy rozwiązać inną konfigurację. Większość ustawień jest automatycznie nadpisywana w tym pakiecie dla Nette, jednak w minimalnej konfiguracji Twój serwer musi obsługiwać rozszerzenia APCu Cache
lub SQLite3
.
Jeśli wszystko zostało skonfigurowane prawidłowo, w Nette zostanie utworzona nowa usługa DI Baraja\\EntityManager
, którą można wstrzyknąć do programu Presenter:
namespace App\FrontModule\Presenters;use Baraja\Doctrine\EntityManager;final class HomepagePresenter extends BasePresenter{#[Inject]public EntityManager $entityManager;}
Jeśli uda Ci się wstrzyknąć podstawową usługę EntityManager, możesz rozpocząć naukę i pracę z Doctrine.
Kolejne rozdziały są połączeniem przewodnika po technologii Doctrine, wieloletniego doświadczenia, wzorców projektowych i gotowych rozwiązań. Wspólnie przejdziemy przez wszystkie podstawowe elementy Doctrine, od definiowania niestandardowej encji, przez generowanie schematu fizycznej bazy danych, po pracę z narzędziem do wersjonowania i wdrożenia produkcyjnego.
Używam Doctrine od bardzo dawna i rozwiązałem w nim tysiące spraw. Przedstawimy wskazówki, jak wykorzystać Doctrine do optymalizacji szybkości działania bazy danych oraz jak odpowiednio zaprojektować bazę danych. Doctrine można także wykorzystać w istniejącym projekcie (jeśli spełnione są pewne warunki). Poniżej pokażemy, jak to zrobić.
Ta seria artykułów została stworzona, aby pomóc moim kursantom w prowadzeniu szkoleń i konsultacji. W celu bardziej szczegółowego omówienia lub wyjaśnienia niektórych tematów można wysłać do mnie e-mail na adres jan@barasek.com. Ponieważ jest to stosunkowo wymagająca technologia, wszystkie pytania będą traktowane jako płatne konsultacje.
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | pl