Doctrine är ett avancerat PHP-bibliotek för objektorienterat databasarbete. Det huvudsakliga syftet och målet med Doctrine är att beskriva databasschemat med hjälp av dataenheter och manipulera data på ett helt objektorienterat sätt.
Detta paradigm kallas ORM (Object-relational mapping), som är design-pattern för att omvandla data som lagras i en relationsdatabas till ett objekt som kan användas i ett objektorienterat språk. För att förstå och använda Doctrine måste du alltså kunna åtminstone grunderna i objektorienterad programmering.
Det finns många orsaker till detta:
Författaren till den här artikeln (Jan Barasek) har länge ansett att Doctrine är det bästa sättet att arbeta med en PHP-databas. Den har helt enkelt ingen konkurrens.
Innan du börjar använda Doctrine fullt ut måste du förbereda en lämplig miljö. Om du precis har börjat med PHP eller inte har några större kunskaper är det bästa valet att installera Nette Framework med tilläggspaketet [Baraja Doctrine] (https://github.com/baraja-core/doctrine), som automatiskt integrerar fullt stöd. Hämta först paketet via Composer, konfigurera sedan DI Extension och Doctrine börjar fungera automatiskt.
För att Doctrine ska fungera korrekt måste du förbereda en tom databas (Doctrine kan arbeta med ett befintligt projekt, men för de första stegen är detta olämpligt eftersom det finns risk för att befintliga data skrivs över) och konfigurera anslutningen. Eftersom Doctrine inte bara är ett databasbibliotek utan tillhandahåller ett avancerat databasramverk måste du lösa andra konfigurationer. De flesta inställningar skrivs automatiskt över i paketet för Nette, men i den minsta konfigurationen måste din server ha stöd för tilläggen APCu Cache
eller SQLite3
.
Om allt har konfigurerats korrekt kommer en ny DI-tjänst Baraja\Doctrine\EntityManager
att skapas i Nette, som du kan [injicera] (https://doc.nette.org/cs/3.1/di-usage) i Presenter:
namespace App\FrontModule\Presenters;use Baraja\Doctrine\EntityManager;final class HomepagePresenter extends BasePresenter{#[Inject]public EntityManager $entityManager;}
Om du lyckas injicera den grundläggande EntityManager-tjänsten kan du börja lära dig och arbeta med Doctrine.
Följande kapitel är en kombination av en referensguide för Doctrine-teknik, många års erfarenhet, designmönster och färdiga lösningar. Tillsammans kommer vi att gå igenom alla grundläggande delar av Doctrine, från att definiera din egen enhet till att generera ett fysiskt databasschema, till att arbeta med ett verktyg för versionshantering och produktionsdistribution.
Jag har använt Doctrine under mycket lång tid och har löst tusentals fall med den. Vi kommer att visa tips och tricks om hur man använder Doctrine för att optimera databasens hastighet och hur man utformar en databas på lämpligt sätt. Du kan också använda Doctrine för ett befintligt projekt (om du uppfyller vissa villkor) och vi visar hur du gör.
Den här artikelserien skapades för att hjälpa mina utbildnings- och konsultstudenter. Om du vill diskutera eller förklara vissa frågor mer ingående kan du skicka ett e-postmeddelande till mig på jan@barasek.com. Eftersom detta är en relativt krävande teknik kommer alla frågor att behandlas som en betald konsultation.
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-2025 | Kontakt | Mapa webu
Status | Aktualizováno: ... | sv