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

Helpers Zend Framework

Estas en el tema de Helpers Zend Framework en el foro de Zend en Foros del Web. bueno despues de casi 3hs sin lograr hacer q ande, me dirijo a uds pidiendo ayuda. el tema es bien simple tengo un helper para ...
  #1 (permalink)  
Antiguo 10/08/2009, 18:04
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Helpers Zend Framework

bueno despues de casi 3hs sin lograr hacer q ande, me dirijo a uds pidiendo ayuda.

el tema es bien simple

tengo un helper para limpiar urls

Código PHP:
<?php
//library/Developtus/View/Helper/CleanUrl.php
require_once 'Zend/View/Interface.php';

class 
Developtus_View_Helper_CleanUrl {
    public 
$view;
    public function 
cleanUrl($val) {
        return 
strtolower($val=preg_replace('/[-_ ]+/','-',trim($val)));
    }    
    public function 
setView(Zend_View_Interface $view) {
        
$this->view $view;
    }
}
desde un script view cualquiera lo llamo con

<?php echo $this->cleanUrl('algun texto');?>

a lo cual me da el siguiente error

Fatal error: Uncaught exception 'Zend_Loader_PluginLoader_Exception' with message 'Plugin by name 'CleanUrl' was not found in the registry; used paths: Zend_View_Helper_: Zend/View/Helper/;C:/AppServ/www/developtus../application/modules/default/views\helpers/' in C:\AppServ\www\developtus\library\Zend\Loader\Plug inLoader.php:401 Stack trace: #0 C:\AppServ\www\developtus\library\Zend\View\Abstra ct.php(1118): Zend_Loader_PluginLoader->load('CleanUrl') #1 C:\AppServ\www\developtus\library\Zend\View\Abstra ct.php(569): Zend_View_Abstract->_getPlugin('helper', 'cleanUrl') #2 C:\AppServ\www\developtus\library\Zend\View\Abstra ct.php(336): Zend_View_Abstract->getHelper('cleanUrl') #3 [internal function]: Zend_View_Abstract->__call('cleanUrl', Array) #4 C:\AppServ\www\developtus\application\modules\defa ult\views\scripts\index\index.phtml(3): Zend_View->cleanUrl('vamos a pr??bar...') #5 C:\AppServ\www\developtus\library\Zend\View.php(10 8): include('C:\AppServ\www\...') #6 C:\AppServ\www\developtus\library\Zend\View\Abstra ct.php(833) in C:\AppServ\www\developtus\library\Zend\Loader\Plug inLoader.php on line 401


cabe destacar q en mi bootstrap cuando configuro el layout tambien configuro los helpers personales
Código PHP:
....
public static function 
setLayout() {
            
$config=Zend_Registry::get('config');
            
$layout=Zend_Layout::startMvc(array('layoutPath' => $config->configLayout->layoutPath,
                        
'layout' => 'admin',
                          
'layout' => 'newmain')); 

            
$layout->title = new ArrayObject();
            
$layout->title ->append($config->cfg->title);
            
            
$layout->url $config->cfg->url;        
            
/*configuro mi carpeta de helpers*/
            
$view = new Zend_View();                        
            
$view->addHelperPath(self::getBaseDir().'/library/Developtus/View/Helper','Developtus_View_Helper_');
            
            
$viewHelper=new Zend_View_Helper_HeadLink();
            
$viewHelper->headLink(array('rel'=>'shortcut icon','href'=>$config->cfg->url.'/imgs/favicon.ico'));

        }
....... 
la cuestion es q mi declaración de helpers pareciera ser q ni la ve, y siempre cae en el mismo error, las direcciones ya las comprobe 1500 veces y nada, no se, espero alguna ayudagracias
__________________
Degiovanni Emilio
developtus.com
  #2 (permalink)  
Antiguo 10/08/2009, 20:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Helpers Zend Framework

Yo lo que hago para cargar los helpers, los tengo en /application/views/helpers, entonces en mi bootstrap hago algo así:
Código PHP:
Ver original
  1. $view->addHelperPath(APPLICATION_PATH . '/views/helpers/', 'App_Helper');

Y el helper lo declaro (como Helper.php en /application/views/helpers):
Código PHP:
Ver original
  1. class App_Helper_Helper extends Zend_View_Helper_Abstract {

Saludos.
  #3 (permalink)  
Antiguo 11/08/2009, 13:43
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Respuesta: Helpers Zend Framework

GatorV gracias por la ayuda, si bien sigue sin funcionar ya estoy mas cerca

el problema esta en q desde el bootstrap no reconoce el

$view = new Zend_View();
$view->addHelperPath(self::getBaseDir().'/application/views/helpers','My_View_Helper_');

pero si desde cualquier controlador en el init() le pongo

$this->view->addHelperPath();

ahi si funciona mi helper

intente buscanod un getInstance() en el Zend_View pero tampoco existe. a que se debera este problema? como puedo corregirlo?

saludos
__________________
Degiovanni Emilio
developtus.com
  #4 (permalink)  
Antiguo 11/08/2009, 14:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Helpers Zend Framework

Lo que yo tengo en el Bootstrap es así:
Código PHP:
Ver original
  1. protected function _initViewResources() {
  2.         $this->bootstrap('view');
  3.         $view = $this->getResource('view');
  4.         $view->doctype('XHTML1_STRICT');
  5.         $view->addHelperPath(APPLICATION_PATH . '/views/helpers/', 'App_Helper');
  6.     }

Saludos.
  #5 (permalink)  
Antiguo 12/08/2009, 03:35
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: Helpers Zend Framework

Que version de zend es?, me parece que estas usando la 1.7 y el codigo de gatorv es para 1.8+, creo q te falta registrarlo con el broker

Código PHP:
$view = new Zend_View();                        
$view->addHelperPath(self::getBaseDir().'/library/Developtus/View/Helper','Developtus_View_Helper');
$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer($view);
Zend_Controller_Action_HelperBroker::addHelper($viewRenderer); 
cualquier cosa que me corrija gatorv que es el versado en el tema.
salu2.
  #6 (permalink)  
Antiguo 12/08/2009, 05:43
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Respuesta: Helpers Zend Framework

si por hai viene mi problema
yo programaba como si fuera 1.7 y tengo la 1.9 :P
igualmente gracias masterpuppet lo voya tener en cuenta.
__________________
Degiovanni Emilio
developtus.com
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 20:13.