Zend 1.11 y Doctrine 2 Auto generan todo lo necesario de una base de datos ya existente

Soy nuevo en ORM y estoy muy interesado en aprenderlo. Logré instalar todas las clases y configuraciones para Doctrine 2.1 con Zend 1.11.x siguiendo este tutorial.

http://www.zendcasts.com/unit-testing-doctrine-2-entities/2011/02/ Que usa el complemento Bisna y los scripts de doctrine.

Ahora mi problema es que está explicando claramente cómo crear entidades y tablas a través de clases de doctrine, pero no explica cómo generar automáticamente los proxies y las clases de repository de una base de datos existente que me ayuda a seleccionar, insertar y actualizar. Siempre creo mis bases de datos usando MySQL Workbench.

También seguí el siguiente tutorial

Mi base de datos es tan compleja y fluye la relación en todas las formas posibles. Si sigo los pasos que se explican en estos tutoriales, nunca completaré mi proyecto. ¿Alguien puede explicar cómo comenzar a usar Doctrine después de la configuración? Teniendo en cuenta que ya tengo una base de datos y mis carpetas de modelos están vacías. Tengo mi estructura de carpeta como a continuación.

C:/zf/library/Doctrine C:/zf/library/Symfony C:/zf/library/ZC -- (my model which should contain the proxies and repo of Doctrine. At the moment it contains nothing.) C:/zf/library/Zend C:/zf/scripts/doctrine.php 

¡Por favor, ayúdame!

Publiqué esta misma publicación ayer y nadie respondió mi publicación. Por favor, avíseme si necesita más información de mi parte.

Gracias,

Karthik

Según Doctrine, primero debes crear tus entidades y luego crear el esquema de la base de datos a partir de estas entidades.

Pero como ya tienes una base de datos, probablemente no quieras eso. Es posible convertir su base de datos a entidades de Doctrine2 en PHP, XML o Yaml.

Deberías echar un vistazo más de cerca a las herramientas de línea de comandos que Doctrine ofrece con el pegamento Bisna porque allí puedes generar muchas cosas.

Para generar sus entidades DESDE su base de datos considere el siguiente comando:

 php doctrine.php orm:convert-mapping --from-database php ../library/Application/Entity 

También puede definir el espacio de nombres y una clase base con la que las entidades deben extenderse: – namespace = namespace y –extends = class.

Doctrine2 le advierte que convierta su base de datos en entidades porque no todo se puede detectar automáticamente ni admitir. Por ejemplo, los tipos de datos ENUM no son compatibles por defecto en Doctrine2, por lo que la conversión de su base de datos generará un error.

Es una buena idea verificar todas las entidades, especialmente las asociaciones antes de usarlas. Espero que te ayude

Si entiendo tu pregunta correctamente, tienes tus entidades ya configuradas y necesitas generar automáticamente tus clases proxy y repository.

Ambos se pueden crear utilizando los siguientes comandos Doctrine CLI del directorio raíz de su aplicación:

 php scripts/doctrine.php orm:generate-proxies php scripts/doctrine.php orm:generate-repositories library/ 

Si está buscando una forma de generar automáticamente sus clases de entidad, lamentablemente no creo que todavía haya una solución disponible para esto.

Un representante de soporte en ORM Designer dijo que están “trabajando en” esta característica y que es “muy demandada”. Aquí esperamos que se incluya en ORM Designer 2.0 ya que generalmente hay mucho trabajo repetitivo involucrado en las clases de entidad de encoding / mapeo que podrían automatizarse.

Puede usar el comando orm:generate-entities si proporciona información de mapeo en formato XML o YAML.

Ver http://www.doctrine-project.org/docs/orm/2.1/en/reference/tools.html#entity-generation

Para el desarrollo, configure la generación de proxy para que sea automática en su configuración; de lo contrario, use el comando orm:generate-proxies .

A menos que necesite personalizar sus repositorys, los generics se crean en el administrador de entidades cuando así lo solicite. Para especificar repositorys personalizados, simplemente use el atributo de mapeo de entidad de repository-class .

Consulte http://www.doctrine-project.org/docs/orm/2.1/en/reference/xml-mapping.html#defining-an-entity para ver un ejemplo