Quel est exactement un baseUrl
J'ai passé quelque temps à essayer de comprendre ce qu'est un baseUrl(de l'apprentissage Zend Framework), mais il est surprenant de constater que, pour un tel omniprésent utilitaire, pas un seul "expert" ou blogueur a même tenté de définir baseUrl de sorte que l'apprenant a une idée de quoi il s'agit. Elles supposent toutes que vous savez ce que c'est et ensuite de procéder à dériver, chacun employant sa propre méthode pour arriver à son propre résultat. De ce que j'avais lu jusqu'à présent:
Certains pensent que c'est une page d'Accueil-Url, ce qui est ce que j'avais naturellement pense que c'est(comme le laisse entendre le nom), pour être accessible par $_SERVER["HTTP_HOST"]
ou $_SERVER["SERVER_NAME"]
mais étonnamment, ceux-ci semblent être dans la minorité.
Certains pensent que c'est une page en cours à être consulté par des $_SERVER["REQUEST_URI"]
ou $_SERVER["PHP_SELF"]
ajouté serveur de nom
alors que d'autres croient qu'il peut être l'un des ci-dessus ou toute url pour cette question(eh bien, au moins c'est l'impression que j'ai), en fonction de la façon dont l'utilisateur veut utiliser.
Si quelqu'un peut expliquer exactement ce qu'est un baseUrl est, sans en supposant que je suis aussi "expert" et pourquoi je pourrais en avoir besoin. Merci.
EDIT: La baseUrl est censé être réglé automatiquement sur la plupart des projets Zend, mais apparemment pas dans mon cas. Même quand je fais une echo $this->baseUrl()
ou var_dump($this->baseUrl())
, je ne reçois rien. Donc je n'ai vraiment aucune idée de ce que cet utilitaire est d'environ.
OriginalL'auteur okey_on | 2013-02-21
Vous devez vous connecter pour publier un commentaire.
La réponse courte pour lesquelles vous avez besoin d'avoir un
baseUrl()
installation est ceci:Où l'application est déployée doit être un problème de configuration, pas une application de base de la fonctionnalité question
Dans de nombreux - peut-être même la plupart des cas, le base-url de l'application sera simplement
$_SERVER['HTTP_HOST']
ou$_SERVER['SERVER_NAME']
.Mais ce n'est pas toujours le cas.
Le plus simple exemple à prendre en considération est un site web standard qui a l'habitude de pages:
http://example.com/
http://example.com/contact
http://example.com/about
//etc
Maintenant que vous écrivez (ou d'acheter ou de télécharger un OSS package) une application de blog que vous souhaitez déployer sous l'url:
http://example.com/blog
Le blog pourrait avoir des liens comme:
http://example.com/blog/post/my-post-slug
http://example.com/blog/categories/some-category
//etc
Tous ces liens de résidence dans le cadre
/blog
.Le blog de l'application elle-même doit être concerné seulement avec des liens/pages/routage à l'intérieur du blog. Si vos modèles de blog peut très bien contenir un en-tête/pied de page des liens vers le reste du site, le reste de la base blog les fonctionnalités de l'application ne devrait pas avoir à connaître à propos du reste de votre site. En quelque sorte, le blog de l'application doit savoir que lorsqu'il génère des liens vers des articles de blog et des catégories de blog et tous ses autres blog pages liées, ils doivent tous être préfixé avec
http://example.com/blog
.Les valeurs
$_SERVER['HTTP_HOST']
ou$_SERVER['SERVER_NAME']
ne reflètent pas cet environnement, les informations de déploiement. La configuration de la (!) l'application avec une base-url de la valeur et de l'utilisation systématique de certains types debaseUrl()
fonction (qui consomme cette config) lors de la génération de liens, c'est une bonne façon de garder votre application de base de la fonctionnalité axée sur ses propres affaires et non pas sur le déploiement externe facteurs.echo $this->baseUrl();
ou unvar_dump($this->baseUrl());
Il est livré avec rien.Il est intéressant de noter, en ce moment, la accepté de répondre à cette question n'est pas le plus voté. En effet, le cadre d'essayer de deviner le baseUrl. Mais il n'est pas toujours droite, surtout lorsque vous déployez sur le chemin strictement inférieur publique du serveur racine du document ou d'avoir quelque chose d'inhabituel dans les paramètres du serveur. Voir la complexité de l'algorithme dans les Zend_Controller_Request_Http::setBaseUrl()
OriginalL'auteur David Weinraub
Votre site web est composé d'une série de pages web. Chaque page web possède un Localisateur de Ressources Uniformes (URL) quelque chose comme http://www.your.com/intro.htm.
Votre Url de pages web commencent généralement avec le même jeu de lettres, par exemple, http://www.your.com/ dans ce cas. Ce préfixe commun est ce que nous appelons votre URL de Base.
En utilisant la Base des Url simplifie votre travail que vous n'avez pas besoin de voir ou tapez l'URL complète pour chaque page que vous souhaitez consulter.
Ou
Une URL d'une page à convertir "des Url relatives" en "Url absolues" par l'ajout d'un nom de document ou le slash /
À comprendre zend url veuillez consulter cette lien
OriginalL'auteur Roopendra