web-dev-qa-db-ja.com

アプリケーションのルートディレクトリを取得するにはどうすればよいですか?

アクション内でアプリケーションのルートディレクトリを取得するにはどうすればよいですか?

18
Ree

ZF2が最初に行うことは、chdir(dirname(__DIR__));を介して現在のディレクトリを変更することです。

これは、将来のすべてのインクルードが、パブリックフォルダーではなく、アプリケーションのルートパスに基づいていることを意味します。または他の現在のフォルダ。

もちろん、これはPHPファイルにのみ当てはまります。

ルートパスを手動で定義する場合は、_/public/index.php_に移動し、define('ROOT_PATH', dirname(__DIR__));のような行を追加します。

前に言ったように、INCLUDESの場合、これは必須ではありません;)PHPファイルに関しては常にルートフォルダにいるため;)

27
Sam

getcwd()は私にとって最適に機能します、[〜#〜] dir [〜#〜]モジュールルートを返します。この場合、これはあまり使用されません

8
Smith

@サム:私はあなたの質問を本当に理解していません。基本的に、現在のパスはZF2-Appsルートと同じです。 [...] ../を介して、いつでもレベルを上げることができます。

ではない正確に。複数のアプリケーション内で共有されるモジュールを作成する場合。ベンダーのFileUploadモジュール、外部アプリケーション。共有モジュールではなくアプリケーションサブディレクトリにファイルをアップロードしたい:)この場合、___DIR___はアプリパスではなくモジュールパスに等しく、_../_は適切な解決策ではありません;)

あなたが言ったように私はROOT_PATHが好きです:

define('ROOT_PATH', dirname(__DIR__));

またはさらに良い:

_getcwd()
_
5
Ma Si