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

[SOLUCIONADO] Controller Action Helper no encontrado

Estas en el tema de Controller Action Helper no encontrado en el foro de Zend en Foros del Web. Hola Tengo lo siguiente: <?php Código PHP: // application/controllers/helpers/FlashMessenger.php class  Application_Controller_Helper_FlashMessenger  extends  Zend_Controller_Action_Helper_FlashMessenger  {   // bla bla bla }  Código PHP: <?php // application/views/helpers/FlashMessenger.php class  View_Helper_FlashMessenger  extends  Zend_View_Helper_FormElement  { ...
  #1 (permalink)  
Antiguo 05/06/2013, 11:10
 
Fecha de Ingreso: julio-2005
Mensajes: 310
Antigüedad: 19 años, 4 meses
Puntos: 36
Controller Action Helper no encontrado

Hola

Tengo lo siguiente:

<?php

Código PHP:
// application/controllers/helpers/FlashMessenger.php
class Application_Controller_Helper_FlashMessenger extends Zend_Controller_Action_Helper_FlashMessenger {
 
// bla bla bla

Código PHP:
<?php

// application/views/helpers/FlashMessenger.php
class View_Helper_FlashMessenger extends Zend_View_Helper_FormElement {

    private 
$_types = array(
        
Application_Controller_Helper_FlashMessenger::ERROR,
        
Application_Controller_Helper_FlashMessenger::WARNING,
        
Application_Controller_Helper_FlashMessenger::NOTICE,
        
Application_Controller_Helper_FlashMessenger::SUCCESS
    
);

 
//bla bla bla
Código PHP:
// application/layouts/scripts/default.phtml
<div id="messages"><?php echo $this->flashMessenger(); ?></div>
El caso es que me devuelve un error. Creo que puede estar relacionado con el nombre de las clases que los puse mal, pero no sé muy bien cómo resolverlo.

El error:
Fatal error: Class 'Application_Controller_Helper_FlashMessenger' not found in /srv/www/htdocs/NetflieBookingSystemV1/library/Zend/View/Abstract.php on line 1183

Gracias.
  #2 (permalink)  
Antiguo 05/06/2013, 12:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Controller Action Helper no encontrado

El autoloader de Zend no incluye por defecto esa ruta, lo que debes de hacer es crear tu helper como parte de la library de tu aplicación y ponerlo en la carpeta library, de ahí lo puedes instanciar solamente al agregar el key autloaderNamespaces[] = "TuLib_" o como le pongas.

Saludos.
  #3 (permalink)  
Antiguo 05/06/2013, 17:20
 
Fecha de Ingreso: julio-2005
Mensajes: 310
Antigüedad: 19 años, 4 meses
Puntos: 36
Respuesta: Controller Action Helper no encontrado

Gracias GatorV... pero no termino de encontrar el error.

He añadido la siguiente clase dentro de /library:

Código PHP:
<?php
// My/Controller/Action/Helper/FlashMessenger.php
require_once 'Zend/Controller/Action/Helper/FlashMessenger.php';

class 
My_Controller_Action_Helper_FlashMessenger extends Zend_Controller_Action_Helper_FlashMessenger {
Y añadido esto en el application.ini:
autloaderNamespaces[] = "My_"

Pero sigue apareciendo el mismo error...

Saludos.
  #4 (permalink)  
Antiguo 05/06/2013, 19:17
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Controller Action Helper no encontrado

Perdón el key es:
Código:
autoloaderNamespaces[] = "My_"
Esta mal escrito.

Saludos.
  #5 (permalink)  
Antiguo 06/06/2013, 01:39
 
Fecha de Ingreso: julio-2005
Mensajes: 310
Antigüedad: 19 años, 4 meses
Puntos: 36
Respuesta: Controller Action Helper no encontrado

Ahora sí... no me había fijado yo tampoco jejeje.

Gracias GatorV ;)
  #6 (permalink)  
Antiguo 06/06/2013, 09:33
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Controller Action Helper no encontrado

No se te olvide marcar el tema como solucionado.

Saludos.

Etiquetas: controller, encontrado, helper
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 08:49.