Ir al contenido principal

Deprecations: Add an explicit @return annotation to suppress this message in codeception

El mensaje viene mostrado no por el propio Codeception, sino por "phpunit-bridge", así que simplemente, eliminando este paquete, se eliminan estos mensajes ;)

Uso de doctrine sobre bases de datos en Symfony


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

Entradas populares de este blog

Exportar archivo de configuración de WinSCP

S i estamos trabajando con WinSCP seguro que ya hemos guardado distintas sesiones para acceder a ellas directamente en futuras ocasiones y evitar volver a introducir todos los parámetro de configuración. Seguro que también muchos de vosotros habéis agrupado las sesiones en carpetas dependiendo de la naturaleza de las mismas. Este trabajo ocupa un valioso tiempo que no nos podemos permitir repetirlo para todos los equipos que tenemos, por lo que lo más lógico es configurar todas las sesiones y exportar su configuración al resto de equipos , teniendo una sola versión y evitarnos tener que volver a configurar todas las sesiones en cada uno. El problema es que WinSCP no nos muestra la opción de exportar de una forma sencilla, por lo que tendremos que buscarnos la vida. Lo primero que debemos hacer es abrir el programa y acceder a Preferencias -> Almacenamiento (o su equivalente al inglés) En esta pantalla deberemos indicar que almacene la configuración en un arc...

Refrescar página web automáticamente con PHP

C uando necesitamos refrescar nuestra página web automáticamente cada cierto tiempo, lo primero que se nos ocurre es utilizar una función en JavaScript, pero debemos saber que también lo podemos hacer con código PHP. La función de refresco de página en PHP es muy sencilla, por lo que pasamos a verla directamente: $self = $_SERVER['PHP_SELF']; //Obtenemos la página en la que nos encontramos header("refresh:300; url=$self"); //Refrescamos cada 300 segundos Nota: 300 segundos = 5 minutos (para que los veáis más claramente).

Montar USB en Ubuntu (Server) modo consola

S i nuestro Linux no es capaz de reconocer nuestro pendrive o nuestro SO no dispone de entorno gráfico, como puede ser en el caso de que utilizemos un Server, nos vemos obligados a montar el USB de forma manual, en este caso con Ubuntu. Dado que los pendrives son montados como unidades de almacenamiento masivo y como si se tratasen de unidades scsi, el usb será nombrado con la tipología "sdxX" donde x (puede ser a,b,c,d) será el canal donde está conectado y X (1,2,3,4,5....) será el numero de dispositivo, cabe destacar que en algunas distribuciones no es necesario el uso del numero de dispositivo X como en slackware (y slamd64). Podemos ver las unidades disponibles con: $ ls /dev/sd* Aunque tal vez sea más conveniente ejecutar el comando: $ls -l /dev/sd* Para ver qué dispositivos se encuentran actualmente en uso nos mostrará las unidades que se encuentran disponibles. Ahora debemos crear una carpeta para montar el usb : #mkdir /media/usb y ejecutamos la siguiente in...