Foros del Web » Programando para Internet » PHP » Symfony »

Login view helper en Symfony 2

Estas en el tema de Login view helper en Symfony 2 en el foro de Symfony en Foros del Web. Hola. Llevo poquitos días iniciado en el mundo de Symfony 2 y tengo una pequeña duda sobre si cierta implementación es la correcta o existen ...
  #1 (permalink)  
Antiguo 16/11/2012, 06:22
 
Fecha de Ingreso: noviembre-2010
Mensajes: 21
Antigüedad: 14 años
Puntos: 1
Login view helper en Symfony 2

Hola.

Llevo poquitos días iniciado en el mundo de Symfony 2 y tengo una pequeña duda sobre si cierta implementación es la correcta o existen mejores alternativas.

He creado un layout diseñado con Twig donde muestro diferente información según el usuario se encuentre logueado o no. Es decir, algo similar a:

Usuario logueado:
- muestro tal plantilla

Usuario sin loguear:
muestro cual plantilla

Para ello utilizo un controlador/acción que me comprueba si el nombre de usuario es nulo. En caso afirmativo devuelve una vista y en caso negativo devuelve otra.

Código PHP:
public function loginHelperAction()
    {
        
$usuario $this->getUser();
        
        if(
is_null($usuario)) {
            
$usuario 'invitado';
            
            return 
$this->render('PermisoAuthBundle:Security:nologin.html.twig');
        } else {
            return 
$this->render('PermisoAuthBundle:Security:loggued.html.twig', array ('usuario' => $usuario));
        }
    } 
Asimismo lo muestro dentro de mi plantilla general (layout.html.twig)

Código HTML:
<div id="loginbar">
            {% render "PermisoAuthBundle:Security:loginHelper" %}
</div> 
En cierta manera lo que yo he programado se asemeja a la utilización de un View Helper dentro de Zend Framework.

Bien, dicho lo anterior me gustaría saber si he hecho lo correcto o si hay alguna alternativa mejor. Personalmente me gusta esta solución porque tengo mis bloques de código separado -a semejante de los partials- y según haya o no nombre de usuario el motor de plantillas inyecta el más conveniente.

Gracias por anticipado y un saludo.
  #2 (permalink)  
Antiguo 16/11/2012, 09:43
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Login view helper en Symfony 2

Si solamente estas comprobando si el usuario esta o no logeado basta con hacer un if directamente en la vista

foo.html.twig
Código TWIG:
Ver original
  1. {% if app.user %}
  2.     ...
  3. {% else %}
  4.     ...
  5. {% endif %}
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 16/11/2012, 12:18
 
Fecha de Ingreso: noviembre-2010
Mensajes: 21
Antigüedad: 14 años
Puntos: 1
Respuesta: Login view helper en Symfony 2

Gracias por la respuesta.

La forma que indicas también aparecía en la documentación que pude encontrar en Google. En mi opinión presenta como ventaja su inmediatez, ya que tan sólo necesita incorporarse en la vista. No obstante, si el código dentro de las condiciones no es algo trivial quizás sea mejor dividirlo en parciales e incorporarlo desde el controlador. De esa manera la vista queda más "despejada" y por ello también más legible.

Un saludo.
  #4 (permalink)  
Antiguo 16/11/2012, 12:31
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Login view helper en Symfony 2

Es que todo depende de lo que estés haciendo, renderear el controlador sirve si hay algo de lógica/validación/widgets sino carece de sentido, si la vista es mas compleja y la quieres tener en otro view también puedes hacer algo asi:

Código TWIG:
Ver original
  1. {% include app.user ? 'loggedIn.html.twig' : 'notLoggedIn.htm.twig' %}

Edit: ya que mencionas los view helpers de Zend, también puedes crear una extension para Twig ;) y hacer algo como

Código TWIG:
Ver original
  1. {{ displayUserPanel() }}
__________________
http://es.phptherightway.com/
thats us riders :)

Última edición por masterpuppet; 16/11/2012 a las 12:40
  #5 (permalink)  
Antiguo 16/11/2012, 16:21
 
Fecha de Ingreso: noviembre-2010
Mensajes: 21
Antigüedad: 14 años
Puntos: 1
Respuesta: Login view helper en Symfony 2

Pues mira, desconocía que se pudiera utilizar ese tipo de condicional dentro de la vista, me parece más adecuado como alternativa el clásico if...else.

Investigaré más sobre Twig. Lo cierto es que apenas estoy dando mis primeros pasos con este motor de plantillas.

Un saludo.

Etiquetas: framework, helper, login, view, zend, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:15.