Mostrando entradas con la etiqueta PHP. Mostrar todas las entradas
Mostrando entradas con la etiqueta PHP. Mostrar todas las entradas

Doctrine: Generar filtros IN

sábado, 22 de diciembre de 2012 Etiquetas: , ,

Introducción


En esta entrada va a ser breve, simplemente vamos a ver como añadir un filtro con el operador IN con el motor de base de datos Doctrine. No es complicado, siempre que sepas como realizarlo.

Vamos a ver primero un ejemplo en SQL para ver como funciona la condición IN, el siguiente ejemplo obtiene los usuarios que tienen configurado como lenguaje español o inglés.

SELECT u.id,u.name
FROM USERS u
WHERE u.language IN ('es','en')

Symfony2: Añadiendo Recuerdame en pantalla de login

jueves, 6 de diciembre de 2012 Etiquetas: ,


Introducción

Cuando utilizamos autentifación de usuarios en una web, una opción común es proporcionar una opción para recordar al usuario la próxima vez que el usuario visite nuestra página. Normalmente se añade una check en el formulario de login para dar la opción al usuario si quiere que sea recordado

La configuración de este funcionamiento en Symfony2 es muy sencillo, y casi no hay que hacer trabajo por nuestra parte, me gusta :-)

Symfony2: Control Acceso a URLs

martes, 4 de diciembre de 2012 Etiquetas: ,


Introducción

Sumfony2 nos proporciona una sistema de seguridad basado en firewalls, que nos permite definer las urls a las cuales se quiere restringuir el acceso. Así podemos indicar una serie de direcciones indicando que, para acceder a ellas, el usuario debe estar autentificado. Symfony2 si el usuario no esta loggeado, automaticamente, lo redirecciona a la pantalla de login.

En esta entrada vamos a ver algunos ejemplos de configuración, y veremos como en ocasiones la tarea no resulta tan sencilla como puede parecer, ya que el número de combinaciones de url puede ser infinito, entonces, entran en acción expresiones regulares.

Symfony2: Crear funciones DQL propias para Doctrine

miércoles, 28 de noviembre de 2012 Etiquetas: , ,


Introducción

Cuando trabajamos con Doctrine, llega un momento que usando el lenguaje de consultas DQL, nos surge la necesidad de usar alguna función que no esta implementada, y que estamos acostumbrados a utilizar. Un caso común puede ser las funciones YEAR, MONTH o DAY de MySQL, para poder trabajar de forma sencilla con las fechas.

Si probamos a utilizar algunas de estas funciones en una sentencia DQL, comprobaremos que nos produce un error: la función no existe. Vamos a ver en este post como podemos crear nuestras propias funciones y configurar Symfony2 para poderlas utilizar en nuestras sentencias DQL. Si se sabe como, es sencillo y nos puede facilitar el trabajo.

Sumfony2: Traducir texto Base Datos

jueves, 8 de noviembre de 2012 Etiquetas: , ,


Introducción

En esta entrada vamos a ver como traducir pequeños textos que tenemos en base de datos de nuestro proyecto de Symfony2.
Supongamos que tenemos una aplicación donde los usuarios pueden dar de alta resultados deportivos, en la que tenemos una tabla donde indicamos  los deportes que soporta la aplicación, aunque en un futuro es posible que los ampliemos por necesidades de los usuarios, por eso creamos la tabla por sencillez. Esta tabla la mantiene el administrador del sitio, no los usuarios.

La tabla contiene la descripción, el icono y algún dato más de configuración que podamos necesitar, para el ejemplo con esos dos campos nos valdrá. En el formulario de alta de los resultados mostramos los diferentes deportes, para que los usuarios puedan seleccionar uno. Lo añadimos en nuestro formulario de la siguiente forma, utilizando para ello el tipo entity para que nos lea de la base de datos los tipos de deporte que tenemos:

Symfony2. Configurar Pantalla de login con internacionalización activada

jueves, 1 de noviembre de 2012 Etiquetas: ,

Introducción

En esta entrada trataré un problema que me ha surgido al habilitar la internacionalización de Symfony,  y es que se pierde la funcionalidad de login de usuarios que hasta el momento funcionaba correctamente.

Cómo es normal, cuando activamos la opción de internacionalización (i18n) de nuestra aplicación, queremos que el formulario de login se muestre en el idioma del usuario, con lo que la ruta pasa a ser, por ejemplo, /es/login y /es/login_check, o /en/login y /en/login_check.

Ahora nos toca modificar el archivo security.yml, que es donde se configuran los temas seguridad, como bien indica su nombre. Ahí indicamos que path de nuestra aplicación se encarga de realizar el login, login_check y logout. Si no se sabe como configurar estas tres rutas correctamente para que funcionen con diferentes idiomas, no funcionará. Veamos como hacerlo.

Ejecutar sentencias SQL con DOCTRINE

miércoles, 24 de octubre de 2012 Etiquetas: , ,

Introducción

Las aplicaciones en Symfony 2 no acceden directamente a la base de datos, sino que utilizan objetos PHP para acceder a los datos, sin ejecutar directamente las sentencias SQL. Para realizar este trabajo utiliza la librería Doctrine por defecto, aunque también se pueden utilizar otras como Propel.

La forma más habitual es realizar la obtención de datos mediante DQL, con la cual obtendremos los datos como objetos PHP listos para su utilización. En el libro The Book for Symfony 2.0 [1] se puede ver una introducción a esta forma de obtener los datos, supongo que se tiene conocimiento en el uso de DQL. En ocasiones nos puede interesar añadir en el repositorio de una entidad una consulta que no nos devuelva un objeto sino datos directamente.