
A la hora de trabajar con Symfony, este frameword de PHP nos proporciona la herramienta conocida como doctrine, que nos permite realizar de una forma muy sencilla y automatizada la creación y definición de las entidades de nuestra base de datos.
Para trabajar con doctrine -sobre Windows-, lo primero que debemos hacer es añadir en nuestro PATH la dirección de la aplicación.
Supondremos que trabajamos con la siguiente tabla
CREATE TABLE IF NOT EXISTS `articles` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`author` varchar(255) NOT NULL,
`content` longtext NOT NULL,
`tags` varchar(255) NOT NULL,
`created` date NOT NULL,
`updated` date NOT NULL,
`slug` varchar(255) NOT NULL,
`category` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Para crear esta nueva tabla, utilizaremos la siguiente sentencia de doctrine
C:\wamp\www\Symfony>php app\console doctrine:generate:entity
Que nos guiará a través del proceso para la creación de tablas.
1. Lo primero que debemos indicar es el nombre que usaremos para nuestra entidad, que debe seguir el siguiente formato: IdentificadorDelBundle:NombreEntidad
2. Lo siguiente será el tipo de formato, que aceptaremos el que nos propone por defecto [annotation] simplemente apretando Enter.
3. Es el turno de comenzar a introducir los campos de la tabla. Debemos notar que el identificador no es necesario ya que lo incluye por defecto, por lo que comenzaremos con el primer campo, indicando el nombre, el tipo de dato, y el tamaño del mismo. Si queremos conocer todos las opciones en cuanto al tipo de datos, podemos verlos en la siguiente página del manual del fabricante.
4. Cuando acabemos de introducir todos los campos pulsamos Enter y nos pregunta que si queremos crear un repositorio vacío. Por defecto la opción es que no, pero le diremos que sí.
5. Confirmamos la creación de la entidad.
Ya tenemos creadas las entidades en nuestro proyecto, pero nos falta pasarlas a la base de datos. Para ello, si aún no hemos creado al base de datos, los hacemos
php app/console doctrine:database:create
Y generamos las tablas de acuerdo con la información especificada en las entidades
php app/console doctrine:schema:create
Si notamos cualquier error o se nos ha olvidado añadir algún campo o queremos hacer alguna modificación, lo haremos en el directorio Entities y desde la consola ejecutaremos el comando
php app/console doctrine:generate:entities nombre_del_Bundle
Para actualizar las entidades
php app/console doctrine:schema:update --dump-sql
Si queremos ver qué instrucciones se ejecutarán en la base de datos
php app/console doctrine:schema:update --force
Para actualizar todos los cambios, en la base de datos, que hayamos realizado.
Si sólo quisiéramos listar las instrucciones que se van a realizar, ejecutamos la instrución
php app/console doctrine:schema:update
Con esto doctrine creará automáticamente la tabla en la base de datos y los archivos relacionados con la actividad.

Comentarios
Publicar un comentario