アクション内でアプリケーションのルートディレクトリを取得するにはどうすればよいですか?
ZF2が最初に行うことは、chdir(dirname(__DIR__));
を介して現在のディレクトリを変更することです。
これは、将来のすべてのインクルードが、パブリックフォルダーではなく、アプリケーションのルートパスに基づいていることを意味します。または他の現在のフォルダ。
もちろん、これはPHPファイルにのみ当てはまります。
ルートパスを手動で定義する場合は、_/public/index.php
_に移動し、define('ROOT_PATH', dirname(__DIR__));
のような行を追加します。
前に言ったように、INCLUDESの場合、これは必須ではありません;)PHPファイルに関しては常にルートフォルダにいるため;)
getcwd()は私にとって最適に機能します、[〜#〜] dir [〜#〜]モジュールルートを返します。この場合、これはあまり使用されません
@サム:私はあなたの質問を本当に理解していません。基本的に、現在のパスはZF2-Appsルートと同じです。 [...] ../を介して、いつでもレベルを上げることができます。
ではない正確に。複数のアプリケーション内で共有されるモジュールを作成する場合。ベンダーのFileUploadモジュール、外部アプリケーション。共有モジュールではなくアプリケーションサブディレクトリにファイルをアップロードしたい:)この場合、___DIR__
_はアプリパスではなくモジュールパスに等しく、_../
_は適切な解決策ではありません;)
あなたが言ったように私はROOT_PATHが好きです:
define('ROOT_PATH', dirname(__DIR__));
またはさらに良い:
_getcwd()
_