Doctrine es una librería avanzada de PHP para trabajar con bases de datos orientadas a objetos. El principal propósito y objetivo de Doctrine es describir el esquema de la base de datos mediante entidades de datos y manipular los datos de forma totalmente orientada a objetos.
Este paradigma se denomina ORM (Object-relational mapping), que es design-pattern para convertir (envolver) los datos almacenados en una base de datos relacional en un objeto que pueda utilizarse en un lenguaje orientado a objetos. Por lo tanto, para entender y utilizar Doctrine, debe conocer al menos los fundamentos de la Programación Orientada a Objetos.
Hay muchas razones:
La opinión del autor de este artículo (Jan Barasek) es que Doctrine es la mejor manera de trabajar con una base de datos PHP. Simplemente no tiene competencia.
Antes de empezar a utilizar Doctrine en su totalidad, es necesario preparar un entorno adecuado. Si estás empezando con PHP o no tienes conocimientos avanzados, la mejor opción es instalar el Nette Framework con el paquete de extensión Doctrina Baraja, que integra automáticamente el soporte completo. Primero descargue el paquete a través de Composer, luego configure la extensión DI y Doctrine comenzará a funcionar automáticamente.
Para que Doctrine funcione correctamente, es necesario preparar una base de datos vacía (Doctrine puede trabajar con un proyecto existente, pero para los primeros pasos esto es inapropiado ya que se corre el riesgo de sobrescribir los datos existentes) y configurar la conexión. Dado que Doctrine no es sólo una biblioteca de base de datos, sino que proporciona un marco de trabajo de base de datos avanzado, es necesario resolver otra configuración. La mayoría de las configuraciones se sobrescriben automáticamente en ese paquete para Nette, sin embargo en la configuración mínima su servidor debe soportar las extensiones APCu Cache
o SQLite3
.
Si todo se ha configurado correctamente, se creará un nuevo servicio DI Baraja\Doctrine\EntityManager
en Nette, que podrá inyectar en Presenter:
namespace App\FrontModule\Presenters;use Baraja\Doctrine\EntityManager;final class HomepagePresenter extends BasePresenter{#[Inject]public EntityManager $entityManager;}
Si consigues inyectar el servicio básico de EntityManager, puedes empezar a aprender y trabajar con Doctrine.
Los siguientes capítulos son una combinación de una guía de referencia de la tecnología Doctrine, años de experiencia, patrones de diseño y soluciones preparadas. Juntos recorreremos todos los elementos básicos de Doctrine, desde la definición de su propia entidad, hasta la generación de un esquema de base de datos física, pasando por el trabajo con una herramienta de versionado y el despliegue en producción.
Llevo mucho tiempo utilizando Doctrine y he resuelto miles de casos con él. Mostraremos consejos y trucos sobre cómo utilizar Doctrine para optimizar la velocidad de la base de datos y cómo diseñar una base de datos adecuadamente. También puede utilizar Doctrine para un proyecto existente (si cumple ciertas condiciones) y le mostraremos cómo hacerlo.
Esta serie de artículos se creó para ayudar a mis alumnos de formación y consultoría. Si necesita discutir o explicar ciertos temas con más detalle, puede enviarme un correo electrónico a jan@barasek.com. Dado que se trata de una tecnología relativamente exigente, todas las preguntas se tratarán como una consulta de pago.
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: ... | es