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

[Zend] Error My_Helper

Estas en el tema de [Zend] Error My_Helper en el foro de Zend en Foros del Web. Hola, he creado un helper pero me esta tirando el siguiente error: Código: <b>Fatal error</b>: Call to a member function randStr() on a non-object La ...
  #1 (permalink)  
Antiguo 24/03/2011, 16:16
 
Fecha de Ingreso: febrero-2010
Mensajes: 183
Antigüedad: 14 años, 10 meses
Puntos: 1
[Zend] Error My_Helper

Hola, he creado un helper pero me esta tirando el siguiente error:
Código:
<b>Fatal error</b>:  Call to a member function randStr() on a non-object
La ubicación del Helper es "library/My/Helper/RandStr.php".
Lo estoy llamando desde el layout solo para probar, de la siguiente manera "$this->_helper->randStr(8)".
Y en el Bootstrap incluí el siguiente método:
Código PHP:
    protected function _initHelperBroker()
    {
        
Zend_Controller_Action_HelperBroker::addPrefix('My_Helper');
    } 
Contenido del Helper:
Código PHP:
class My_Helper_RandStr extends Zend_Controller_Action_Helper_Abstract
{
    public function 
__construct($lenght 1$options = array())
    {
        
$str '';
        
//PROCESO
        
return $str;
    }

    
/**
    * Strategy pattern: call helper as broker method
    */
    
public function direct($lenght$options = array())
    {
        return 
$this->__construct($lenght$options);
    }

Que estoy haciendo mal o que me falta?
__________________
Le estaré agradecido por los siglos de los siglos a mi dios en PHP masterpuppet. Amen!
  #2 (permalink)  
Antiguo 24/03/2011, 16:22
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] Error My_Helper

Buenas,

si es un view helper se accede a través de $this->randStr, $this->_helper pertenece a los controllers y sigo sin entender la insistencia(ya van varios que veo con lo mismo) en poner los helpers en My/Helper, los view helpers deberian estar bajo My/View/Helper y los action helpers bajo My/Controller/Action/Helper.

Edito(ya que agregaste mas data):

estas tratando de acceder a un action helper en una vista, a los action helpers se accede desde los controllers.

http://framework.zend.com/manual/en/...onhelpers.html
http://framework.zend.com/manual/en/...w.helpers.html

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 24/03/2011, 16:27
 
Fecha de Ingreso: febrero-2010
Mensajes: 183
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: [Zend] Error My_Helper

Cita:
Iniciado por masterpuppet Ver Mensaje
Buenas,

si es un view helper se accede a través de $this->randStr, $this->_helper pertenece a los controllers y sigo sin entender la insistencia(ya van varios que veo con lo mismo) en poner los helpers en My/Helper, los view helpers deberian estar bajo My/View/Helper y los action helpers bajo My/Controller/Action/Helper.

Saludos.
No es un view helper, y tu respuesta al porque de los directorios mal ubicados se debe a las guias o tutoriales mal documentados, por ejemplo donde yo lo saque http://devzone.zend.com/article/3350.
Ya veo, parece ser que no accede porque lo estoy llamando mal, voy a probar desde el controlador y te digo.


Me andubo de 10, lo estaba llamando mal era simplemente eso, y quiero decir que cambié los directorios como lo recomendaste.


Porque los view helpers si los ubico en /application/views/helpers funcionan sin registrarlos en ningun lado, y yo intenté poner un action helper en /application/controllers/helpers y cuando lo intento acceder sin haber declarado en el Bootstrap el addPrefix me tira error.
__________________
Le estaré agradecido por los siglos de los siglos a mi dios en PHP masterpuppet. Amen!

Última edición por CyberMauher; 24/03/2011 a las 16:45
  #4 (permalink)  
Antiguo 24/03/2011, 16:51
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] Error My_Helper

Bueno, si lo dice M.W O'Phinney va a misa , ahora en serio, los helpers en esa úbicacion para mi molestan ya que para saber si es un view helper o un action helper tenes que estar abriendo los ficheros, me parece mas comodo seguir el patron de Zend.

PD: ya que estas a full con el FW te sugiero que tengas como referencia su site phly, boy, phly, siempre hay que estar atento a lo que escribe es excelente material.
__________________
http://es.phptherightway.com/
thats us riders :)
  #5 (permalink)  
Antiguo 24/03/2011, 17:27
 
Fecha de Ingreso: febrero-2010
Mensajes: 183
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: [Zend] Error My_Helper

Cita:
Iniciado por masterpuppet Ver Mensaje
Bueno, si lo dice M.W O'Phinney va a misa , ahora en serio, los helpers en esa úbicacion para mi molestan ya que para saber si es un view helper o un action helper tenes que estar abriendo los ficheros, me parece mas comodo seguir el patron de Zend.

PD: ya que estas a full con el FW te sugiero que tengas como referencia su site phly, boy, phly, siempre hay que estar atento a lo que escribe es excelente material.
No me entendiste, lo que quise poner es si se puede poner los action helpers en "/application/controllers/helpers", así como se hace con los view helpers en "/application/views/helpers".
__________________
Le estaré agradecido por los siglos de los siglos a mi dios en PHP masterpuppet. Amen!
  #6 (permalink)  
Antiguo 24/03/2011, 17:35
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] Error My_Helper

Claro que es posible, para eso tiene el método addPrefixPath para que tu indiques el path a donde quieres que encuentre tus helpers.

Saludos.
  #7 (permalink)  
Antiguo 24/03/2011, 17:42
 
Fecha de Ingreso: febrero-2010
Mensajes: 183
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: [Zend] Error My_Helper

Cita:
Iniciado por GatorV Ver Mensaje
Claro que es posible, para eso tiene el método addPrefixPath para que tu indiques el path a donde quieres que encuentre tus helpers.

Saludos.
Entiendo, pero porque en los view helpers si los creo en "/application/views/helpers" no necesito especificar el path.
__________________
Le estaré agradecido por los siglos de los siglos a mi dios en PHP masterpuppet. Amen!

Etiquetas: frameworks-y-php-orientado-a-objetos
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 15:39.