1

私はあちこちを見てきましたが、それでもPHP(Lithiumフレームワーク)でグローバル変数を設定する方法を理解できません。

私の目標は、毎回このコードを記述しなくても、サーバールートにいつでもアクセスできるようにして、アプリを実行しているホスト名から独立させることです。

<?php echo "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>

私はすべてをそのように試したので、絶対パスまたは相対パスを使用するように言わないでください。それは単純に面倒です(ほとんどの場合機能しないことを除いて)。

4

2 に答える 2

3

上記のコードはテンプレートにあるようです。$this->request()->to('url')したがって、現在の URL を取得するために使用できます。またはコントローラーから、それは$this->request->to('url'). 'absolute' => trueのオプションに渡すこともできますRouter::match。残念ながら、html リンク ヘルパー (つまり、) はオプションを に$this->html->link(...)渡しませんが、に渡されたものを呼び出すことができます。です。'absolute' => trueRouter::match$this->url()Router::match$this->url('/relative/url', array('absolute' => true))

Router::matchのドキュメントを参照してください

このRequestオブジェクトは、http ホストやリクエスト uri などへのアクセスも提供します。ドキュメントを参照してくださいRequest::env()

しかし、グローバル変数についてのあなたの最初のポイントでは、これにはEnvironmentクラスを使用する必要があると思います。そこに任意のデータを入れることができます。ブートストラップに設定して、さまざまな環境 (つまり、開発、ステージング、本番) ごとに異なる値を設定することもできます。

于 2012-07-16T17:27:00.887 に答える
0

申し訳ありませんが、相対パスを使用し、リンクジェネレータヘルパーを使用してください。これにより、間違ったことを実行できなくなります。

ドキュメントを参照してください。

于 2012-07-16T15:43:19.883 に答える