ZF – Récupérer l’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.

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.
merci, je suis encore débutant en la matière, mais cela m’aide à voir claire!!
merci en tout cas