アクション内でアプリケーションのルートディレクトリを取得するにはどうすればよいですか?
3 に答える
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()