Я потратил некоторое время на то, чтобы понять, что такое baseUrl (от изучения Zend Framework), но удивительно, что для такой вездесущей утилиты ни один «эксперт» или блоггер даже не пытались определить baseUrl, чтобы ученик имел представление о том, что это о. Все они предполагают, что вы знаете, что это такое, и затем приступайте к его получению, каждый из которых использует свой метод для достижения своего собственного результата. Из того, что я читал до сих пор:
Некоторые считают, что это URL- $_SERVER["HTTP_HOST"]
страницы, что я, естественно, считаю (это подразумевается от имени), к которому обращаются $_SERVER["HTTP_HOST"]
или $_SERVER["SERVER_NAME"]
но на удивление это похоже быть в меньшинстве.
Некоторые считают, что к текущей странице обращаются $_SERVER["REQUEST_URI"]
или $_SERVER["PHP_SELF"]
добавленные к имени сервера
в то время как другие считают, что это может быть любой из вышеперечисленного или любого URL-адреса в этом отношении (ну, по крайней мере, это впечатление, которое я получаю), в зависимости от того, как пользователь хочет его использовать.
Так может кто-то, пожалуйста, объясните, что такое baseUrl, не предполагая, что я тоже «эксперт» и почему мне это может понадобиться. Спасибо.
EDIT: BaseUrl должен автоматически устанавливаться в большинстве проектов Zend, но, по-видимому, не в моем случае. Даже когда я делаю echo $this->baseUrl()
или var_dump($this->baseUrl())
, я ничего не получаю. Поэтому я действительно не знаю, что это за утилита.
Короткий ответ за то, почему вам нужно иметь средство 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, пожалуйста, обратитесь к этой ссылке