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

Zend_Validate_Abstract

Estas en el tema de Zend_Validate_Abstract en el foro de Zend en Foros del Web. Saludos, Estoy trabajando con unas validaciones especiales y estuve verificando la documentación y en la api el interface y el abstract . En todos mencionan ...
  #1 (permalink)  
Antiguo 26/07/2011, 08:30
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
Zend_Validate_Abstract

Saludos,

Estoy trabajando con unas validaciones especiales y estuve verificando la documentación y en la api el interface y el abstract. En todos mencionan que isValid solo recibe un argumento, sin embargo cuando en el formulario coloco algo como
Código PHP:
Ver original
  1. // ...
  2. ->addValidator(new Foo_Model_Validate_Something(), false)
  3. // ...
y en la clase Foo_Model_Validate_Something algo como
Código PHP:
Ver original
  1. <?php
  2. class Foo_Model_Validate_Something extends Zend_Validate_Abstract
  3. {
  4.     const REQUIRED = 'required';
  5.  
  6.     protected $_messageTemplates = array(
  7.         self::REQUIRED => 'No puede estar vacio',
  8.     );
  9.  
  10.     public function isValid($value, $context = null)
  11.     {
  12.         // $context contiene como valor array
  13.         // $value es un string
  14.         return true;
  15.     }
  16. }
¿Por qué se puede usar dos argumentos? En la documentación no vi que mencionaran esta parte, o se me escapo. Aparte de ir directamente a la clase y ver como funciona, ¿la documentación tiene algo al respecto o busque en donde no era?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #2 (permalink)  
Antiguo 26/07/2011, 08:42
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: Zend_Validate_Abstract

addValidator recibe dos parámetros, el primero es el validador, y el segundo es un flag que indica si se debe o no romper el chain al validar.

Ejemplo, supongamos que agregas 3 validadores a un elemento, si tienes el parámetro del chain en true, si el primer validador, regresa false, ya no se ejecutarían los otros 2, y si esta en false, sigue corriendo los demás validadores.

Saludos.
  #3 (permalink)  
Antiguo 26/07/2011, 08:48
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: Zend_Validate_Abstract

Claro, eso sí, a lo que me refiero no es a addValidator, sino al método isValid, solo muestran en todos los ejemplos que recibe un parametro, pero en realidad se pueden colocar dos. Verifique las documentaciones y no vi que usaran un ejemplo con un segundo parametro.

Lo digo porque vi uno de los ejemplos que específicamente tú muestras y lo trabaje y vi que se recibe todos los campos, pero me da curiosidad que en la documentación no muestran que isValid puede trabajar con dos parametros, sino que siempre indican uno solo. Por eso dije que posiblemente estoy mirando mal ya que puede ser que sea por otro lado lo mencionen en la documentación. Es cuestión de aprender más bien.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 26/07/2011, 08:54
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: Zend_Validate_Abstract

No entiendo cual es la duda abimael, esta mas que probado que la documentación no es exacta.
__________________
http://es.phptherightway.com/
thats us riders :)
  #5 (permalink)  
Antiguo 26/07/2011, 08:54
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: Zend_Validate_Abstract

Ahh, el segundo parámetro de isValid es el contexto, es decir supongamos que tienes que validar que dos elementos sean iguales, en el segundo parámetro recibes un array de todos los valores del formulario para que puedas verificar eso.

Saludos.
  #6 (permalink)  
Antiguo 26/07/2011, 08:56
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: Zend_Validate_Abstract

Bueno, es curiosidad, ya que me esta frustrando la documentacion . Solo queria saber si estoy correcto que la documentación no mencione esa parte, o es que mire mal y está en otra parte.

Como indiqué es cuestión de aprender.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 26/07/2011, 09:00
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: Zend_Validate_Abstract

No sos el único http://framework.zend.com/issues/browse/ZF-2740, estos "errores" son algo normal, teniendo en cuenta la cantidad de integrantes del CORE de Zend FW.
__________________
http://es.phptherightway.com/
thats us riders :)
  #8 (permalink)  
Antiguo 26/07/2011, 09:01
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: Zend_Validate_Abstract

Cita:
Iniciado por GatorV Ver Mensaje
Ahh, el segundo parámetro de isValid es el contexto, es decir supongamos que tienes que validar que dos elementos sean iguales, en el segundo parámetro recibes un array de todos los valores del formulario para que puedas verificar eso.

Saludos.
Ok, ahora sí, entonces ¿el addValidator brinda entonces dos parametros o hay algún otro?

Voy a tener que hacer como hace masterpuppet, ir a la fuente
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 26/07/2011, 09:03
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: Zend_Validate_Abstract

Cita:
Iniciado por masterpuppet Ver Mensaje
No sos el único http://framework.zend.com/issues/browse/ZF-2740, estos "errores" son algo normal, teniendo en cuenta la cantidad de integrantes del CORE de Zend FW.
Mientras escribia estabas contestando, ya veo que son solo dos, gracias
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #10 (permalink)  
Antiguo 26/07/2011, 09:14
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: Zend_Validate_Abstract

Por las dudas aclaro:
  1. isValid acepta 2 parámetros
  2. addValidator acepta 3 parámetros, siendo el tercero las opciones que se van a inyectar via constructor(siempre y cuando el primer parametro sea un string) en el validator.

Nota: lo del contexto se menciona en la documentación, pero no en el lugar mas indicado, http://framework.zend.com/manual/en/....elements.html.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #11 (permalink)  
Antiguo 26/07/2011, 10:04
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: Zend_Validate_Abstract

Gracias
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: frameworks-y-php-orientado-a-objetos, php
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 12:45.