Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Problema enrutamiento en ZF

Estas en el tema de Problema enrutamiento en ZF en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buenas, recurro a ustedes con el siguiente problema. Tengo congifurada mi aplicación con una clase Bootstrap y la ayuda de Zend_Application. Mi problema es que ...
  #1 (permalink)  
Antiguo 22/02/2010, 12:44
 
Fecha de Ingreso: diciembre-2006
Mensajes: 15
Antigüedad: 18 años
Puntos: 0
Sonrisa Problema enrutamiento en ZF

Buenas, recurro a ustedes con el siguiente problema.

Tengo congifurada mi aplicación con una clase Bootstrap y la ayuda de Zend_Application.
Mi problema es que el enrutamiento no funciona correctamente; ejemplo:

http://localhost/miproyecto/public/auth/login , debería pegarle al AuthController y a loginAction, sin embargo me tira el error de que no encuentra el directorio "public/auth/login".

No entiendo por qué se puede estar dando este problema, yo pensaba que ZF entendia directamente lo de "public/:controller/:action", pero se ve que hay que hacer algo más.

A continuacion detallo mi clase Bootstrap y demás:

Bootstrap.php:

Código PHP:
final class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    protected function 
_initRequest()
    {
        
$this->bootstrap('FrontController');
        
        
$front $this->getResource('FrontController');
        
        
$request = new Zend_Controller_Request_Http();
        
        
$front->setRequest($request);
        
        return 
$request;
    }
    
    protected function 
_initView()
    {
        
$view = new Zend_View();
        
$view->doctype('XHTML1_STRICT');
        
$view->headTitle('Administrador de cursos');
        
$view->headLink()->appendStylesheet($view->baseUrl().'/css/main.css');
        
        
$viewRenderer Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
        
$viewRenderer->setView($view);

        return 
$view;
    }
    
    protected function 
_initPluginResource()
    {
        
$dbs $this->getPluginResource('db');
        
$adapter $dbs->getAdapter();
        
        
$db Zend_Db::factory($adapter,$dbs->getParams());
        
Zend_Db_Table_Abstract::setDefaultAdapter($db);
        
        return 
$dbs;
    }
    
    protected function 
_initAutoload()
    {
        
$autoloader = new Zend_Application_Module_Autoloader(array(
            
'namespace' => '',
            
'basePath' => APPLICATION_PATH    
        
));
        
        return 
$autoloader;
    }

index.php:

Código PHP:
<?php

// Define path to application directory
defined('APPLICATION_PATH')
    || 
define('APPLICATION_PATH'realpath(dirname(__FILE__) . '/../application'));

// Define application environment
defined('APPLICATION_ENV')
    || 
define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));

// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
    
realpath(APPLICATION_PATH '/../library'),
    
get_include_path(),
)));

/** Zend_Application */
require_once 'Zend/Application.php';  

// Create application, bootstrap, and run
$application = new Zend_Application(
    
APPLICATION_ENV
    
APPLICATION_PATH '/configs/application.ini'
);
$application->bootstrap()
            ->
run();

application.ini

Código PHP:
[production]
phpSettings.display_startup_errors 1
phpSettings
.display_errors 1

;IncludePaths
includePaths
.library APPLICATION_PATH "/../library"

;Bootstrap
bootstrap
.path APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"

;Front controller
resources
.frontController.controllerDirectory APPLICATION_PATH "/controllers"
resources.frontController.plugins.auth "My_Plugin_Auth"
autoloaderNamespaces[] = "My_"

;View
resources
.view.encoding "UTF-8"
resources.view.basePath APPLICATION_PATH "/views/scripts"

;Layout
resources
.layout.layout "main"
resources.layout.layoutPath APPLICATION_PATH "/layouts/scripts"

;DataBase
resources
.db.adapter "pdo_mysql"
resources.db.params.host "localhost"
resources.db.params.username "root"
resources.db.params.password "101757"
resources.db.params.dbname "cursos"
resources.db.isDefaultTableAdapter true

[staging production]

[
testing production]
phpSettings.display_startup_errors 1
phpSettings
.display_errors 1

[development production]
phpSettings.display_startup_errors 1
phpSettings
.display_errors 
Graciass anticipadass.

Saludos
  #2 (permalink)  
Antiguo 22/02/2010, 13:12
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: Problema enrutamiento en ZF

Es por eso que siempre es lo más recomendable crear un virtualhost para tener una configuración casi exacta como en el servidor.

En tu caso exacto verifica que tengas activado el mod_rewrite en tu servidor y este se encuentre en la carpeta public de tu aplicación.

Saludos.
  #3 (permalink)  
Antiguo 23/02/2010, 00:42
 
Fecha de Ingreso: diciembre-2006
Mensajes: 15
Antigüedad: 18 años
Puntos: 0
Respuesta: Problema enrutamiento en ZF

El proyecto está alojado en mi localhost y el mod_rewrite está activo. No se que puede estar pasando.
  #4 (permalink)  
Antiguo 23/02/2010, 09:52
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: Problema enrutamiento en ZF

Cual es el error que te da exactamente?

Aunque este en tu localhost con mas razon debes de crear un virtualhost para evitarte esos problemas.

Saludos.
  #5 (permalink)  
Antiguo 23/02/2010, 10:04
 
Fecha de Ingreso: diciembre-2006
Mensajes: 15
Antigüedad: 18 años
Puntos: 0
Respuesta: Problema enrutamiento en ZF

El error básicamente es que cuando quiero acceder mediante la url con el formato "proyecto/:controller/:action" ej: "proyecto/auth/login", en vez de imterpretar que tiene que ir al AuthController, LoginAction. Lo busca como si fuera un directorio dentro de "/proyecto" y obviamente no lo encuentra, y tira un 404.
  #6 (permalink)  
Antiguo 23/02/2010, 10:36
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: Problema enrutamiento en ZF

Haz visto en el log de errores de Apache si el error es que no encuentra el archivo fisico?

Si es eso entonces el problema es que no esta interpretando el .htaccess, revisa que tengas en tu directiva AllowOverride en All, y repito nuevamente, te metes en menos problemas si creas un VirtualHost.

Saludos.
  #7 (permalink)  
Antiguo 23/02/2010, 10:56
 
Fecha de Ingreso: diciembre-2006
Mensajes: 15
Antigüedad: 18 años
Puntos: 0
Respuesta: Problema enrutamiento en ZF

Acabo de crear mi virtual host. Ahora voy a comprobar eso que me dijiste.

Gracias!
  #8 (permalink)  
Antiguo 23/02/2010, 11:01
 
Fecha de Ingreso: diciembre-2006
Mensajes: 15
Antigüedad: 18 años
Puntos: 0
De acuerdo Respuesta: Problema enrutamiento en ZF

Maestro! Como siempre, impecable.
Cree mi virtualhost y puse AllowOverride en All y funciona a la perfección.

Saludos y gracias nuevamente!
  #9 (permalink)  
Antiguo 23/02/2010, 12:54
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: Problema enrutamiento en ZF

No hay de que!, por eso siempre es importante seguir las instrucciones tal cual
  #10 (permalink)  
Antiguo 23/02/2010, 20:14
 
Fecha de Ingreso: diciembre-2006
Mensajes: 15
Antigüedad: 18 años
Puntos: 0
Respuesta: Problema enrutamiento en ZF

Solucionado el problema anterior, surgió uno nuevo. El phpMyAdmin no me permite iniciar sesión. Ya chequé el username y password pero son correctos. Sin embargo me arroja el error #2003. ¿habré tocado algo en la conf?

Ayuda nuevamente!
  #11 (permalink)  
Antiguo 23/02/2010, 20:25
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: Problema enrutamiento en ZF

Ese ya no es un error de Zend (ni de PHP) el problema es con tu servidor MySQL, checa y verifica que este corriendo y escuchando en el puerto indicado.

Saludos.
  #12 (permalink)  
Antiguo 26/02/2010, 08:38
 
Fecha de Ingreso: diciembre-2006
Mensajes: 15
Antigüedad: 18 años
Puntos: 0
De acuerdo Respuesta: Problema enrutamiento en ZF

Solucionado y cerrado.

Gracias!
Saludos

Etiquetas: enrutamiento
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:47.