Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [PHP ZF] getBaseUrl()

  1. #1

    [PHP ZF] getBaseUrl()

    Salve a tutti, da qualche tempo ho comprato un libro che si chiama "Sviluppare applicazioni Web 2.0 con PHP". Sto seguendo i vari capitoli ma mi trovo davanti ad un problema con i path relativi ai link generati.
    Ho installato Apache+PHP+MySQL e creato un virtualhost come richiesto dal libro:

    codice:
    NameVirtualHost *:80
    
    # Virtual Host for phpweb20
    <VirtualHost *:80>
    	ServerName phpweb20
    	DocumentRoot "C:/Programmi/Apache Software Foundation/Apache2.2/htdocs/var/www/phpweb20/htdocs"
    
    	<Directory "C:/Programmi/Apache Software Foundation/Apache2.2/htdocs/var/www/phpweb20/htdocs">
    		AllowOverride All
    		Options All
    		Order allow,deny
    		Allow from all
    	</Directory>
    	php_value include_path ".;C:/Programmi/Apache Software Foundation/Apache2.2/htdocs/var/www/phpweb20/include;C:/php/PEAR"
    	php_value magic_quotes_gpc off
    	php_value register_globals off
    	
        SetEnv APP_CONFIG_FILE "settings.ini"
        SetEnv APP_CONFIG_SECTION "development"
    
    </VirtualHost>
    La ServerRoot e la DocumentRoot di Apache son quelle di default.
    La mia applicazione risiede su http://phpweb20 (un host fittizio creato nel file hosts di windows); i miei link sono creati dinamicamente, quindi vorrei che il metodo getBaseUrl() di Zend_Controller_Front's tornasse la stringa "http://phpweb20/account" invece di solamente "/account". Per farvi capire posto il codice proposto dal libro:

    Ecco il metodo gerUrl() per ricavare un url da utilizzare nelle pagine web:
    codice:
        public function getUrl($action = null, $controller = null)
        {
            // At this point, $url is nothing
            $url  = rtrim($this->getRequest()->getBaseUrl(), '/') . '/';
                   // Now, $url becomes "//index" if I'm e. g. at the front page 
            $url .= $this->_helper->url->simple($action, $controller);
            return $url;
        }
    Ecco un plugin smarty relativo che lo utilizza:

    codice:
        function smarty_function_geturl($params, $smarty)
        {
            $action     = isset($params['action']) ? $params['action'] : null;
            $controller = isset($params['controller']) ? $params['controller'] : null;
            $route      = isset($params['route']) ? $params['route'] : null;
    
            $helper = Zend_Controller_Action_HelperBroker::getStaticHelper('url');
    
            if (strlen($route) > 0) {
                unset($params['route']);
                $url = $helper->url($params, $route);
            }
            else {
                $request = Zend_Controller_Front::getInstance()->getRequest();
    
                $url  = rtrim($request->getBaseUrl(), '/') . '/';
                $url .= $helper->simple($action, $controller);
            }
    
            return $url;
        }
    Per completezza posto anche il mio file settings.ini e le regole dell'.htaccess:

    Settings.ini
    codice:
    [development]
    
    database.type       = pdo_mysql
    database.hostname   = localhost
    database.username   = *
    database.password   = *
    database.database   = phpweb20
    
    paths.base      = C:/Programmi/Apache Software Foundation/Apache2.2/htdocs/var/www/phpweb20
    paths.data      = C:/Programmi/Apache Software Foundation/Apache2.2/htdocs/var/www/phpweb20/data
    paths.templates = C:/Programmi/Apache Software Foundation/Apache2.2/htdocs/var/www/phpweb20/templates
    
    
    logging.file = C:/Programmi/Apache Software Foundation/Apache2.2/htdocs/var/www/phpweb20/data/logs/debug.log
    .htaccess
    codice:
    RewriteEngine on
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1
    Da cosa può dipendere il fatto che quel metodo torna una stringa vuota? Da qualche impostazione di Apache?
    Grazie per l'aiuto.

  2. #2
    Up

  3. #3
    Utente di HTML.it L'avatar di *pragma
    Registrato dal
    Sep 2001
    Messaggi
    1,087
    ciao hai risolto il tuo problema? te lo chiedo perchè sto due passi indietro a te
    ho postato qui
    http://forum.html.it/forum/showthrea...ht=virtualHost
    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.