13

私は、baseUrl とは何か (Zend Framework の学習から) を理解しようと時間を費やしてきましたが、驚くべきことに、このようなユビキタスなユーティリティに対して、学習者が何を理解できるように baseUrl を定義しようとした「専門家」やブロガーは 1 人もいません。それは約です。彼らは皆、あなたがそれが何であるかを知っていると仮定し、それを導き出し、それぞれが独自の方法を使用して独自の結果に到達します. 私がこれまでに読んだことから:

ホームページの URL であると考える人もいますが、これは (名前から暗示されるように)$_SERVER["HTTP_HOST"]またはによってアクセスされると私が自然に考えるものです$_SERVER["SERVER_NAME"]が、驚くべきことに、これらは少数派のようです。

サーバー名によってアクセス$_SERVER["REQUEST_URI"]または追加される現在のページであると考える人もいます$_SERVER["PHP_SELF"]

他の人は、ユーザーがそれをどのように使用したいかによって、上記のいずれかまたはその問題の任意の URL である可能性があると考えています (まあ、少なくともそれは私が得る印象です)。

だから、私が「専門家」でもあると仮定せずに、baseUrlとは何か、そしてなぜそれが必要なのかを正確に説明してください。ありがとうございました。

編集: baseUrl は、ほとんどの Zend プロジェクトで自動的に設定されるはずですが、明らかに私の場合はそうではありません。echo $this->baseUrl()またはを実行してもvar_dump($this->baseUrl())、何も得られません。したがって、このユーティリティが何であるかは本当にわかりません。

4

2 に答える 2

22

baseUrl()施設が必要な理由の簡単な答えは次のとおりです。

アプリが展開される場所は、アプリケーションのコア機能の問題ではなく、構成の問題である必要があります

多くの場合、おそらくほとんどの場合、アプリケーションのベース URL は単純に$_SERVER['HTTP_HOST']またはになり$_SERVER['SERVER_NAME']ます。

しかし、常にそうであるとは限りません。

検討する最も簡単な例は、通常のページを持つ標準的な Web サイトです。

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

ここで、次の URL にデプロイするブログ アプリケーションを作成 (または OSS パッケージとして購入またはダウンロード) します。

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']は、この環境/展開情報を反映していません。base-url 値を使用してアプリを構成 (!) し、リンクを生成するときに何らかのbaseUrl()関数 (この構成を使用する) を一貫して使用することは、アプリケーションのコア機能を外部の展開要因ではなく、独自のビジネスに集中させる良い方法です。

于 2013-02-21T08:19:22.503 に答える
4

Web サイトは、一連の Web ページで構成されています。各 Web ページには、 http://www.your.com/intro.htmのような完全な URL (Uniform Resource Locator) があります。Web ページの URL は通常、同じ文字セットで始まります(この場合はhttp://www.your.com/など)。この一般的なプレフィックスは、ベース URL と呼ばれるものです。

ベース URL を使用すると、参照する各ページの完全な URL を表示または入力する必要がないため、作業が簡素化されます。

または

ドキュメント名または末尾のスラッシュ / の追加によって「相対 URL」を「絶対 URL」に変換するためにページに割り当てられた URL

Zend の URL を理解するには、このリンクを参照してください

于 2013-02-21T07:00:36.497 に答える