Doctrine er et avanceret PHP-bibliotek til objektorienteret databasearbejde. Hovedformålet med Doctrine er at beskrive databaseskemaet ved hjælp af dataenheder og at manipulere dataene på en fuldt objektorienteret måde.
Dette paradigme kaldes ORM (Object-relational mapping), som er design-pattern til konvertering (wrapping) af data, der er gemt i en relationel database, til et objekt, der kan bruges i et objektorienteret sprog. For at forstå og bruge Doctrine skal du derfor mindst kende de grundlæggende principper for objektorienteret programmering.
Der er mange grunde:
Forfatteren af denne artikel (Jan Barasek) har længe været af den opfattelse, at Doctrine er den bedste måde at arbejde med en PHP-database på. Den har simpelthen ingen konkurrenter.
Før du begynder at bruge Doctrine fuldt ud, skal du forberede et passende miljø. Hvis du lige er begyndt at arbejde med PHP eller ikke har nogen erfaring, er det bedste valg at installere Nette Framework med udvidelsespakken Baraja Doctrine, som automatisk integrerer fuld understøttelse. Hent først pakken via Composer, opret derefter DI-udvidelsen, og Doctrine vil automatisk begynde at fungere.
For at Doctrine kan fungere korrekt, skal du forberede en tom database (Doctrine kan arbejde med et eksisterende projekt, men i de første trin er det uhensigtsmæssigt, da der er risiko for at overskrive eksisterende data) og konfigurere forbindelsen. Da Doctrine ikke blot er et databasebibliotek, men giver en avanceret database framework, skal du løse anden konfiguration. De fleste af indstillingerne overskrives automatisk i denne pakke til Nette, men i minimumskonfigurationen skal din server dog understøtte udvidelserne APCu Cache
eller SQLite3
.
Hvis alt blev konfigureret korrekt, vil der blive oprettet en ny DI-tjeneste Baraja\Doctrine\EntityManager
i Nette, som du kan injicere i Presenter:
namespace App\FrontModule\Presenters;use Baraja\Doctrine\EntityManager;final class HomepagePresenter extends BasePresenter{#[Inject]public EntityManager $entityManager;}
Hvis det er lykkedes dig at injicere den grundlæggende EntityManager-tjeneste, kan du begynde at lære og arbejde med Doctrine.
De følgende kapitler er en kombination af en Doctrine-teknologireferenceguide, mange års erfaring, designmønstre og færdige løsninger. Sammen vil vi gennemgå alle de grundlæggende elementer i Doctrine, lige fra at definere din egen enhed til at generere et fysisk databaseskema, til at arbejde med et versioneringsværktøj og produktionsimplementering.
Jeg har brugt Doctrine i meget lang tid og har løst tusindvis af sager med det. Vi vil vise tips og tricks til, hvordan du bruger Doctrine til at optimere databasens hastighed, og hvordan du designer en database på en hensigtsmæssig måde. Du kan også bruge Doctrine til et eksisterende projekt (hvis du opfylder visse betingelser), og vi viser dig, hvordan du gør det.
Denne artikelserie blev skabt for at hjælpe mine trænings- og konsulentstuderende. Hvis du har brug for at drøfte eller forklare visse emner mere detaljeret, kan du sende mig en e-mail på jan@barasek.com. Da der er tale om en relativt krævende teknologi, vil alle spørgsmål blive behandlet som en betalt 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-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | da