Что именно такое baseUrl


Я потратил некоторое время, пытаясь понять, что такое baseUrl (из изучения Zend Framework), но удивительно, что для такой вездесущей утилиты ни один "эксперт" или блоггер даже не попытался определить baseUrl, чтобы у ученика было представление о том, что это такое. Все они предполагают, что вы знаете, что это такое, а затем приступаете к его получению, каждый из которых использует свой собственный метод, чтобы прийти к своему собственному результату. Из того, что я прочитал до сих пор:

Некоторые думают, что это URL-адрес домашней страницы, и это то, что Я бы, естественно, подумал, что это (как следует из названия), доступ к которому осуществляется $_SERVER["HTTP_HOST"] или $_SERVER["SERVER_NAME"], но, к удивлению, они, похоже, в меньшинстве.

Некоторые думают, что это текущая страница, доступ к которой осуществляется $_SERVER["REQUEST_URI"] или $_SERVER["PHP_SELF"], добавленная к имени сервера

В то время как другие думают, что это может быть любой из вышеперечисленных или любой URL-адрес, если на то пошло (ну, по крайней мере, у меня такое впечатление), в зависимости от того, как пользователь хочет его использовать.

Так может ли кто-нибудь, пожалуйста, точно объяснить, что такое baseUrl, не предполагая, что я также "эксперт" и зачем он мне может понадобиться. Спасибо.

РЕДАКТИРОВАТЬ: Предполагается, что baseUrl автоматически устанавливается в большинстве проектов Zend, но, по-видимому, не в моем случае. Даже когда я делаю echo $this->baseUrl() или var_dump($this->baseUrl()), я ничего не получаю. Так что я действительно понятия не имею, о чем эта утилита.

Author: Martijn Pieters, 2013-02-21

2 answers

Краткий ответ на вопрос, почему вам нужно иметь средство baseUrl(), заключается в следующем:

То, где развернуто приложение, должно быть проблемой конфигурации, а не основной проблемой функциональности приложения

Во многих - возможно, даже в большинстве - случаев базовый URL-адрес приложения будет просто $_SERVER['HTTP_HOST'] или $_SERVER['SERVER_NAME'].

Но это не всегда так.

Самый простой пример для рассмотрения - это стандартный веб-сайт, который имеет обычный страницы:

  • http://example.com/
  • http://example.com/contact
  • http://example.com/about
  • // etc

Теперь вы пишете (или покупаете или загружаете в виде пакета OSS) приложение для блога, которое вы хотели бы развернуть по URL:

http://example.com/blog

В блоге могут быть ссылки, такие как:

  • http://example.com/blog/post/my-post-slug
  • http://example.com/blog/categories/some-category
  • //etc

Все эти ссылки находятся под /blog.

Само приложение для блога должно быть связано только с ссылки/страницы/маршрутизация внутри блога. Хотя шаблоны вашего блога вполне могут содержать ссылки в верхнем и нижнем колонтитулах на остальную часть сайта, остальная часть основных функций приложения для блога не должна знать об остальной части вашего сайта. Так или иначе, приложение для блога должно знать, что когда он создает ссылки на сообщения в блоге и категории блогов, а также на все другие страницы, связанные с блогом, все они должны иметь префикс http://example.com/blog.

Значения $_SERVER['HTTP_HOST'] или $_SERVER['SERVER_NAME'] не отражают этого информация об окружающей среде/развертывании. Настройка (!) приложения со значением базового URL-адреса и последовательное использование какой-либо функции baseUrl() (которая использует эту конфигурацию) при создании ссылок - хороший способ сосредоточить основные функции приложения на собственном бизнесе, а не на внешних факторах развертывания.

 18
Author: David Weinraub, 2013-02-21 08:19:22

Ваш веб-сайт состоит из ряда веб-страниц. Каждая веб-страница имеет полный единый указатель ресурсов (URL), что-то вроде http://www.your.com/intro.htm . URL-адреса ваших веб-страниц обычно начинаются с одного и того же набора букв, напримерhttp://www.your.com / в данном случае. Этот общий префикс мы называем вашим базовым URL-адресом.

Использование базовых URL-адресов упрощает вашу работу, так как вам не нужно просматривать или вводить полный URL-адрес для каждой страницы, на которую вы хотите ссылаться до.

Или

URL-адрес, назначенный странице для преобразования "относительных URL-адресов" в "абсолютные URL-адреса" путем добавления имени документа или конечной косой черты /

Чтобы понять URL-адрес zend, пожалуйста, перейдите по этой ссылке

 2
Author: Roopendra, 2013-02-21 07:00:36