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).

Asignar valores por defecto a input=”file” y a textarea

S eguro que muchos os habéis estado rompiendo la cabeza buscando la forma de dar un valor por defecto a el tipo de dato input=”file” . Pues que sepáis que no se puede!!! No se puede dar un valor por defecto a los campos de este tipo, ya que hacen referencia a una ruta física local y podrían surgir problemas de seguridad. Lo que se puede hacer, por ejemplo, es mostrar la imagen o el nombre del dato que tenemos almacenado y si el usuario desea modificarla, ofrecerle la opción de cargar una nueva. La etiqueta textarea , aunque pueda parecérnoslo, no se trata de un input y para darle valor por defecto simplemente debemos mostrar el texto que deseemos entre su marca de apertura y de cierre. Es decir, en caso de que lo que deseemos mostrar por defecto sea una variable, introduciremos el siguiente código: <textarea id="txtobservaciones" name="txtobservaciones" rows="2" cols="40" class="txt" ><?=$_POST["txtobservaciones"] ?...