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

Duda: Flash Messenger Zend Framework

Estas en el tema de Duda: Flash Messenger Zend Framework en el foro de Zend en Foros del Web. Hola He estado revisando el código de la clase FlashMessenger de zend framework y me han surgido algunas dudas, cual es la utilidad de tener ...
  #1 (permalink)  
Antiguo 07/05/2010, 14:37
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 16 años, 4 meses
Puntos: 2
Pregunta Duda: Flash Messenger Zend Framework

Hola

He estado revisando el código de la clase FlashMessenger de zend framework y me han surgido algunas dudas, cual es la utilidad de tener un método para setear el namespace, para que sirve este namespace si en realidad no se usa para identificar por ejemplo quien ha generado ese mensaje en el view, se pudo haber generado con la variable estática que tiene definida en la clase que tiene asignado el valor "default", que diferencia hay entre que uno asigne un namespace a que use el default.

Saludos
  #2 (permalink)  
Antiguo 09/05/2010, 11:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Duda: Flash Messenger Zend Framework

El objetivo del namespace es si tienes múltiples modulos o cosas por el estilo y necesitas mantener mensajes independientes por controller.

Saludos.
  #3 (permalink)  
Antiguo 09/05/2010, 12:06
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Duda: Flash Messenger Zend Framework

Bueno los namespace se usan cuando estás trabajando con grandes módulos y quieres evitar "enfrantamientos" (no encontré otra definición para clashes). Vamos a suponer que quieres crear una tienda electrónica. En esa tienda tienes un archivo llamado carro.php y que en ese archivo tienes declarado una función llamada mostrar (así mismo con clases y constantes):
Código PHP:
Ver original
  1. <?php
  2. function mostrar($carro){
  3.   //mostrar carro
  4. }
  5. mostrar($_SESSION['carro']);
Pero también tienes otro archivo que es para verificar lo que quiere comprar un usuario, a ese archivo llamaremos contenido.php, que también tiene una función llamada mostrar.
Código PHP:
Ver original
  1. <?php
  2. function mostrar($contenidoCarro){
  3.   //mostrar contenido
  4. }
Tu vas a querer incluir este archivo en el archivo de carro.php
Código PHP:
Ver original
  1. require_once 'contenido.php';
  2.  
  3. function mostrar($carro){
  4.   //mostrar carro
  5. }
  6.  
  7. if( $_GET['action'] == 'checkout'){
  8.   mostrar($_SESSION['carro']);
  9. }else{
  10.   mostrar($_SESSION['carro']);
  11. }
Cuando corres el código verás un mensaje
Cita:
PHP Fatal error: Cannot redeclare mostrar() (previously declared in contenido.php:4) in carro.php on line 4
Esto es porque no puedes declarar dos funciones con el mismo nombre. Tampoco se ve claramente que función es la que quiero que corra en cual parte de la estructura de control. Para evitar este problema, PHP 5.3 agregó los namespace. Los namespaces tienen restricciones (te recomiendo que vayas al manual para que veas de que hablo). Entre una de ellas está el declararlo al inicio de todo código y todo código que esté después pertenece a ese namespace. Entonces agregando el namespace al archivo contenido.php
Código PHP:
Ver original
  1. <?php
  2. namespace Contenido;
  3.  
  4. function mostrar($contenidoCarro){
  5.   //mostrar contenido
  6. }
En el archivo de carro lo indicamos de esta foma
Código PHP:
Ver original
  1. <?php
  2. require_once 'contenido.php';
  3.  
  4. function mostrar($carro){
  5.   //mostrar carro
  6. }
  7.  
  8. if( $_GET['action'] == 'checkout'){
  9.   Contenido\mostrar($_SESSION['carro']);
  10. }else{
  11.   mostrar($_SESSION['carro']);
  12. }
También puedes crear sub-namespace, etc. Te recomiendo que mires el manual para que puedas ver lo que puedes hacer con namespace
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 09/05/2010 a las 15:12
  #4 (permalink)  
Antiguo 09/05/2010, 13:36
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Duda: Flash Messenger Zend Framework

@abimaelrc si bien tienes razón de lo que dices respecto a los namespaces en PHP, él se refiere directo a Flash Messenger en Zend, que hace algo similiar, separar los mensajes por namespace.

Saludos.
  #5 (permalink)  
Antiguo 09/05/2010, 16:26
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Duda: Flash Messenger Zend Framework

Oh, pues ahí está la información para quien la necesite
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: flash, framework, messenger
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 05:57.