PDF de programación - Doctrine 2 ORM Documentación

Imágen de pdf Doctrine 2 ORM Documentación

Doctrine 2 ORM Documentacióngráfica de visualizaciones

Publicado el 14 de Enero del 2017
2.566 visualizaciones desde el 14 de Enero del 2017
932,0 KB
239 paginas
Creado hace 12a (03/11/2011)
Doctrine 2 ORM Documentation
Release 2.1

Doctrine Project Team :: Traducido por Nacho Pacheco

November 03, 2011

Índice general

. . . . . . .

1
1
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
70
.
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
83
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
86
. . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
.
. .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
.
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

. . .

1. Guía de referencia

.

.

.

.
.

.
.

.

.

.

.

.

.

.

.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.
.
.
.
.
.

.
.
1.1.
Introducción .
.
.
.
1.2. Arquitectura .
.
.
1.3. Configurando .
.
.
.
1.4. Preguntas más frecuentes .
.
.
1.5. Asignación básica .
.
.
.
1.6. Asignando asociaciones .
.
.
.
1.7. Asignando herencia
.
.
1.8. Trabajando con objetos .
.
.
.
1.9. Trabajando con asociaciones .
.
1.10. Transacciones y concurrencia .
.
1.11. Eventos .
.
1.12. Procesamiento masivo .
.
1.13. Lenguaje de consulta Doctrine .
.
.
1.14. El generador de consultas
.
.
1.15. SQL nativo .
.
.
.
1.16. Change Tracking Policies
.
.
.
1.17. Partial Objects .
.
.
.
.
.
1.18. Asignación XML .
.
.
1.19. Asignación YAML .
.
.
.
1.20. Referencia de anotaciones .
1.21. PHP Mapping .
.
.
.
1.22. Memoria caché .
.
.
1.23. Mejorando el rendimiento .
.
.
1.24. Herramientas .
.
.
1.25. Metadata Drivers .
.
1.26. Buenas prácticas .
.
.
1.27. Limitations and Known Issues .

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.

.
.

.
.

.

.

.

.

.

.

.
.

.
.

.
.

2. Guías iniciales

173
2.1. Primeros pasos .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
2.2. Trabajando con asociaciones indexadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
2.3. Extra Lazy Associations .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

.

.

.

.

.

.

.

.

.

.

.

.

.

I

2.4. Composite and Foreign Keys as Primary Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198

3. Recetario

.

.

.

.

.

.

205
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
3.1. Campos agregados .
3.2. Extendiendo DQL en Doctrine 2: Paseantes AST personalizados . . .
. . . . . . . . . . . . 210
3.3. Funciones DQL definidas por el usuario .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Implementing ArrayAccess for Domain Objects
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
3.4.
Implementing the Notify ChangeTracking Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
3.5.
Implementing Wakeup or Clone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
3.6.
Integrating with CodeIgniter .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
3.7.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
.
.
3.8. SQL-Table Prefixes .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
.
3.9. Strategy-Pattern .
.
.
3.10. Validation of Entities .
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
3.11. Working with DateTime Instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
3.12. Mysql Enums .

. . . . .

.
.
.

.
.
.
.

.

.
.
.

.

.
.
.

.

.

.

.

.

.

.

II

CAPÍTULO 1

Guía de referencia

1.1 Introducción

1.1.1 Bienvenido

Doctrine 2 es un asignador objetorelacional (ORM) para PHP 5.3.0+ que proporciona persistencia transparente de
objetos PHP. Se sitúa en la parte superior de una poderosa capa de abstracción de base de datos (DBAL por DataBase
Abstraction Layer). La principal tarea de los asignadores objetorelacionales es la traducción transparente entre objetos
(PHP) y las filas relacionales de la base de datos.
Una de las características clave de Doctrine es la opción de escribir las consultas de base de datos en un dialecto SQL
propio orientado a objetos llamado Lenguaje de Consulta Doctrine (DQL por Doctrine Query Language), inspirado
en Hibernates HQL. Además DQL difiere ligeramente de SQL en que abstrae considerablemente la asignación entre
las filas de la base de datos y objetos, permitiendo a los desarrolladores escribir poderosas consultas de una manera
sencilla y flexible.

1.1.2 Descargo de responsabilidad

Esta es la documentación de referencia de Doctrine 2. Las guías introductorias y tutoriales que puedes seguir de
principio a fin, como el libro “Guía para Doctrine” más conocido de la serie Doctrine 1.x, estará disponible en una
fecha posterior.

1.1.3 Usando un asignador objetorelacional

Cómo insinúa el término ORM, Doctrine 2 tiene como objetivo simplificar la traducción entre las filas de la base de
datos y el modelo de objetos PHP. El caso de uso principal para Doctrine, por lo tanto son las aplicaciones que utilizan
el paradigma de programación orientado a objetos. Para aplicaciones que no trabajan principalmente con objetos,
Doctrine 2 no se adapta muy bien.

1.1.4 Requisitos

Doctrine 2 requiere un mínimo de PHP 5.3.0. Para obtener un rendimiento mejorado en gran medida, también se
recomienda que utilices APC con PHP.

1

Doctrine 2 ORM Documentation, Release 2.1

1.1.5 Paquetes Doctrine 2

Doctrine 2 se divide en tres paquetes principales.

Común
DBAL (incluye Común)
ORM (incluye DBAL+Común)

Este manual cubre principalmente el paquete ORM, a veces toca partes de los paquetes subyacentes DBAL y Común.
El código base de Doctrine está dividido en estos paquetes por varias razones y se van a ...

... Hace las cosas más fáciles de mantener y desacopladas
... te permite usar código de Doctrine común sin el ORM o DBAL
... te permite usar DBAL sin el ORM

El paquete Común

El paquete Común contiene componentes altamente reutilizables que no tienen dependencias más allá del propio
paquete (y PHP, por supuesto). El espacio de nombres raíz del paquete Común es Doctrine\Common.

El paquete DBAL

El paquete DBAL contiene una capa de abstracción de base de datos mejorada en lo alto de PDO, pero no está vinculada
fuertemente a PDO. El propósito de esta capa es proporcionar una sola API que fusione la mayor parte de las diferen-
cias entre los diferentes proveedores RDBMS. El espacio de nombres raíz del paquete DBAL es Doctrine\DBAL.

El paquete ORM

El paquete ORM contiene las herramientas de asignación objetorelacional que proporcionan persistencia relacional
transparente de objetos PHP sencillos. El espacio de nombres raíz del paquete ORM es Doctrine\ORM.

1.1.6 Instalando

Puedes instalar Doctrine de diferentes maneras. Vamos a describir todas las diferentes maneras y tú puedes elegir la
que mejor se adapte a tus necesidades.

PEAR

Puedes instalar cualquiera de los tres paquetes de Doctrine desde la utilidad de instalación de la línea de ordenes
PEAR.
Para instalar sólo el paquete Común puedes ejecutar la siguiente orden:

$ sudo pear install pear.doctrine-project.org/DoctrineCommon-<versión>

Si deseas utilizar la capa de abstracción de base de datos de Doctrine la puedes instalar con la siguiente orden.

$ sudo pear install pear.doctrine-project.org/DoctrineDBAL-<versión>

O, si quieres conseguir las tareas e ir por el ORM lo puedes instalar con la siguiente orden.

2

Capítulo 1. Guía de referencia

Doctrine 2 ORM Documentation, Release 2.1

$ sudo pear install pear.doctrine-project.org/DoctrineORM-<versión>

Nota: La etiqueta <versión> anterior representa la versión que deseas instalar. Por ejemplo, si la versión actual al
momento de escribir esto es 2.0.7 para el ORM, por lo tanto la podrías instalar con lo siguiente:

$ sudo pear install pear.doctrine-project.org/DoctrineORM-2.0.7

Cuando instalas un paquete mediante PEAR puedes requerir y cargar el cargador de clases ClassLoader con el
siguiente código.

<?php
require ’Doctrine/Common/ClassLoader.php’;
$classLoader = new \Doctrine\Common\ClassLoader(’Doctrine’);
$classLoader->register();

Los paquetes se instalan en tu directorio de código compartido PEAR PHP en un directorio llamado doctrine.
También consigues instalar una agradable utilidad de línea de ordenes y a tu disposición en
  • Links de descarga
http://lwp-l.com/pdf422

Comentarios de: Doctrine 2 ORM Documentación (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad