18

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

4

3 に答える 3

27

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

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

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

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

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

于 2012-08-15T16:44:07.383 に答える
8

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

于 2014-05-10T12:14:58.867 に答える
5

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

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

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

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

またはさらに良い:

getcwd()
于 2013-06-02T12:54:08.680 に答える