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

Custom Filter con Zend

Estas en el tema de Custom Filter con Zend en el foro de Zend en Foros del Web. Hola a todos, aqui con un problemilla con un custom filter simple, el filter funciona ok cuando lo invoco de esta manera desde mi Form ...
  #1 (permalink)  
Antiguo 11/02/2012, 17:10
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 20 años, 1 mes
Puntos: 4
De acuerdo Custom Filter con Zend

Hola a todos, aqui con un problemilla con un custom filter simple, el filter funciona ok cuando lo invoco de esta manera desde mi Form asi:
Código PHP:
...->filter( new Atlas_Filter_MD5() ); 
pero me gustaria invocarlo como cualquier filter de Zend.
Código PHP:
...->filter('MD5'); 
tengo mis librarys asi:
Código PHP:
---- www/
-----------/
application
-----------/library
-------------------/Atlas
-------------------------/Filter
-------------------------------/MD5.php
-------------------/Zend
-------------------------/... 
mi Filter tiene el siguiente codigo:
Código PHP:
class Atlas_Filter_MD5 implements Zend_Filter_Interface
{
    
    public function 
filter($value)
    {
        return 
md5($value);
    }

Que es lo que podria hacer? hay alguna forma de registrarlo como un helper?
Gracias de antemanos por sus respuestas, saludos
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
  #2 (permalink)  
Antiguo 11/02/2012, 17:29
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: Custom Filter con Zend

Has leído el manual ? y ten en cuenta que utilizando el filter callback con la funcion md5 obtienes el mismo resultado ;)

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 11/02/2012, 17: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: Custom Filter con Zend

Claro que se puede, solo tienes que agregar el prefixPath, revisa esto:

http://framework.zend.com/manual/en/...ements.filters

Saludos.
  #4 (permalink)  
Antiguo 12/02/2012, 09:05
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 20 años, 1 mes
Puntos: 4
Respuesta: Custom Filter con Zend

Gracias por las respuestas, revise el manual y encontre esto:
Código PHP:
$element->addPrefixPath('My_Filter''My/Filter/''filter'); 
por lo que entiendo... en cada form que desee utilizar dicho filter tendre que indicar el addPrefixPath, si es asi... la intencion era evitar tener que hacer eso.

En cuanto a los callbacks.. es una opcion pero preferiria evitar esta alternativa pues me parece muy invasivo tener que colocar codigo de esta manera.

Mi idea mas no se si se pueda hacer... era configurar en el application.ini, tal como se puede hacer con los helpers.

Alguna idea? quizas este equivocado e algo..
Gracias de antemano.
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
  #5 (permalink)  
Antiguo 12/02/2012, 10:05
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: Custom Filter con Zend

Lo que se suele hacer es extender Zend_Form y esta clase que extiende agrega los paths del NS.
Y no veo lo "invasivo" en callback, que diferencia hay entre esto:

Código PHP:
Ver original
  1. ->filter('MD5')

y esto:

Código PHP:
Ver original
  1. ->filter(array('callback' => 'md5'))

?

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)

Etiquetas: md5, filtros
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 09:36.