NANANE DEVELOPPEMENT WEB JQUERY MAGENTO ZEND

CONTACT
RSS

ZF – Récupérer l’url complète avec le Zend Framework

Récupérer une url complète avec le Zend Framework

Il peut être intéressant de récupérer l’adresse complète du serveur lors de la création de vos scripts. Celui-ci vous renverra l’url, même si le site est stocké dans un dossier tiers.

Pour cela, nous allons créer un outil statique dans le dossier /library/App/ (où se trouve normalement le dossier du Zend Framework). Pour cet exemple, j’ai ajouté un dossier Tool contenant le fichier Url.php.


Voici le contenu de cette classe :

<?php
class App_Tool_Url {

    public static function getUrl() {
        // Je récupère l'url de base grâce à une instance du Zend Framework
        $baseUrl = Zend_Controller_Front::getInstance()->getBaseUrl();

        // Enfin, je retourne l'url complète du site
        return "http://" . $_SERVER['HTTP_HOST'] . $baseUrl;
    }
}
?>

Enfin, vous n’avez plus qu’à l’appeler dans vos contrôleurs :

// Je récupère dans ma librairie l'URL du site.
$url = App_Tool_Url::getUrl();
$this->view->url = $url;

Et pour le récupérer dans la vue qui va bien :

echo $this->url;

Si vous stockez votre site, par exemple, dans le dossier [racine serveur]/nomdossier, $this->url vous retournera : http://www.votresite.fr/nomdossier/

Cette fonction m’a permis, entre autre, de générer l’url de confirmation à l’inscription (ou de désinscription) d’une newsletter.

Voilà, vous pourrez récupérer plus facilement l’adresse complète de votre site web.

CATÉGORIES :

Zend

    • FredT
    • May 12th, 2010

    salut,

    Pour info à la place de :
    “http://”.$_SERVER['HTTP_HOST']

    Il y a un peu mieux:
    $ServerUrl=new Zend_View_Helper_ServerUrl();
    return $ServerUrl->serverUrl($baseUrl);

    Car si “https”? ou si empty($_SERVER['HTTP_HOST']) ?

    Au passage, un grand merci pour tous tes tutos.

    • mino
    • October 10th, 2011

    merci, je suis encore débutant en la matière, mais cela m’aide à voir claire!!

    merci en tout cas

  1. January 19th, 2010