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

Problema al agregar un helper

Estas en el tema de Problema al agregar un helper en el foro de Zend en Foros del Web. Hola, nuevamente molestandolos ... me surgio otro problema y no se que es lo que me falta, estoy tratando de agregar un helper para poder ...
  #1 (permalink)  
Antiguo 11/02/2011, 09:44
 
Fecha de Ingreso: abril-2009
Ubicación: Lima
Mensajes: 108
Antigüedad: 15 años
Puntos: 0
Pregunta Problema al agregar un helper

Hola, nuevamente molestandolos ... me surgio otro problema y no se que es lo que me falta, estoy tratando de agregar un helper para poder usarlo en mis vistas, pero no he logrado hacerlo aun, he hecho los siguientes pasos:
1.- Cree una carpeta en: My/View/Helper/HtmlHead.php
2.- En mi archivo .ini ya lo tenia registrado mi carpeta "My":
autoloaderNamespaces[] = "My"
3.- Luego fui a mi bootstrap y agrege esta función:
Código PHP:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
     ......
     ......
       protected function 
_initHelpers(){        
        
$viewRenderer Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');        
        
$viewRenderer->view->addHelperPath('My/View/Helper/','My_View_Helper_');        
    }

4.- En mi layout.phtml cuando agregue esta línea:
<?php echo $this->HtmlHead()->css();?>
me lanza este error:
Warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, 'My_View_Helper_HtmlHead::HtmlHead' was given in C:\AppServ\www\primer_zend\library\Zend\View\Abstr act.php on line 340

No está encontrando la clase, pero ¿Qué es lo que me falta, o qué es lo q está mal?

esta es el helper que he creado:
Código PHP:
class My_View_Helper_HtmlHead extends Zend_View_Helper_Abstract
{        
    public function 
css(){
        return 
BASE.'/public/styles';
    }    
    
    public function 
img(){
        return 
BASE.'/public/images';
    }
    public function 
script(){
        return 
BASE.'/public/scripts';
    }


Última edición por xtian87; 11/02/2011 a las 09:58
  #2 (permalink)  
Antiguo 11/02/2011, 10:08
 
Fecha de Ingreso: abril-2009
Ubicación: Lima
Mensajes: 108
Antigüedad: 15 años
Puntos: 0
Respuesta: Problema al agregar un helper

Hola viendo algo el error me parecio que era por que no tenia el constructor, así que le agregue, pero ahora me sale otro error:
y esta si es con la función css():
Fatal error: Call to a member function css() on a non-object in C:\AppServ\www\primer_zend\application\modules\adm in\layouts\scripts\layout.phtml on line 10
no encuentra mi funcion css().
  #3 (permalink)  
Antiguo 11/02/2011, 10:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema al agregar un helper

Tu helper debería de tener un método algo así:
Código PHP:
Ver original
  1. public function htmlHead()
  2. {
  3.      return $this;
  4. }

Para que puedas llamar después a $this->htmlHead()->css();

Saludos.
  #4 (permalink)  
Antiguo 11/02/2011, 10:12
 
Fecha de Ingreso: abril-2009
Ubicación: Lima
Mensajes: 108
Antigüedad: 15 años
Puntos: 0
Respuesta: Problema al agregar un helper

plop!!! ... ya lo resolvi .... agregue en el constructor esto:
Código PHP:
public function HtmlHead(){
        return 
$this;
    } 
y con eso si me funcionó ...
  #5 (permalink)  
Antiguo 11/02/2011, 10:13
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Problema al agregar un helper

Lo que te comenta GatorV es lo que necesitas y me llama la atencion lo poco que leen la documentación.
__________________
http://es.phptherightway.com/
thats us riders :)
  #6 (permalink)  
Antiguo 11/02/2011, 10:13
 
Fecha de Ingreso: abril-2009
Ubicación: Lima
Mensajes: 108
Antigüedad: 15 años
Puntos: 0
Respuesta: Problema al agregar un helper

si GatorV champeando por ahí me salió , jaja ... gracias x siempre estar ahi para ayudar
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 02:57.