Что такое baseUrl
Я потратил некоторое время, пытаясь понять, что такое baseUrl(из изучения Zend Framework), но удивительно, что для такой вездесущей утилиты ни один "эксперт" или блоггер даже не попытался определить baseUrl, чтобы у ученика было представление о том, что это такое. Все они предполагают, что вы знаете, что это такое, и затем продолжают выводить его, каждый из них использует свой собственный метод, чтобы прийти к своему собственному результату. Из того, что я прочел до сих пор:--7-->
некоторые думают, что это домашняя страница-Url, которая то, что я, естественно, думаю, это(как подразумевается из имени), доступ к $_SERVER["HTTP_HOST"]
или $_SERVER["SERVER_NAME"]
но удивительно, что они, похоже, в меньшинстве.
некоторые думают, что это текущая страница, доступ к которой $_SERVER["REQUEST_URI"]
или $_SERVER["PHP_SELF"]
добавлено к имени сервера
в то время как другие думают, что это может быть любой из вышеперечисленных или любой url-адрес(ну, по крайней мере, это впечатление, которое я получаю), в зависимости от того, как пользователь хочет его использовать.
так кто-нибудь может объяснить, что baseUrl, не предполагая, что я также "Эксперт" и почему мне это может понадобиться. Спасибо.
EDIT: baseUrl должен быть автоматически установлен на большинстве проектов Zend, но, по-видимому, не в моем случае. Даже когда я делаю echo $this->baseUrl()
или var_dump($this->baseUrl())
, Я ничего не получу. Так что я понятия не имею, о чем эта утилита.
2 ответов
короткий ответ на то, почему вам нужно иметь 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()
функция (которая потребляет эту конфигурацию) при создании ссылок-хороший способ сохранить основную функциональность приложения, ориентированную на собственный бизнес, а не на внешние факторы развертывания.
ваш веб-сайт состоит из ряда веб-страниц. Каждая веб-страница имеет полный Единый локатор ресурсов (URL) что-то вродеhttp://www.your.com/intro.htm. URL-адреса веб-страниц обычно начинаются с одного и того же набора букв, напримерhttp://www.your.com/ в этом случае. Этот общий префикс-это то, что мы называем вашим базовым URL.
использование базовых URL-адресов упрощает вашу работу, поскольку вам не нужно видеть или вводить полный URL-адрес для каждой страницы, на которую вы хотите ссылаться к.
или
URL-адрес, назначенный странице для преобразования "относительных URL-адресов" в "абсолютные URL-адреса" путем добавления имени документа или конечной косой черты /
чтобы понять Zend url, пожалуйста, обратитесь к этому ссылке