1

少し問題があります。より大きな Web プロジェクトのサブディレクトリとしてプロジェクトを開始しました。したがって、Web ファイルのパスは /../myProject のようになります。しかし、事態は進展し、これは独自のプロジェクトであるべきだと気づきました。ただし、それを(サブディレクトリとして)どこにでも保持できるようにしたいのですmyProjectが、ルートになるサブドメインにもします。(私のプロジェクトがライブラリ サイトにミラーリングされる可能性もあり、サブディレクトリに置かれます)。

これらすべての問題は、場合によってはhtml_partial files、(ヘッダーまたはフッターなど)があることです。ただし、これらのパーシャルの相対パスは、ファイル ツリーのどこにいるかによって異なります。私は元々、常にルートに戻ることでこれを解決しました。

しかし、私のプロジェクトがどこにあるかによって、ルートが異なります。私がやりたいことは、myProject を「アプリケーション ルート」として宣言し、 myProject` が Web パスに存在するapplicationのではなく、このルートに基づく相対パスを使用できるようにすることです。web root'. This way, all of the relative paths within 'myProject' will work no matter where

PHP には if のようなものを宣言する方法がありますか?Application Rootそれについて説明するか、そのドキュメントを参照してください。ありがとう!

4

2 に答える 2

1

アプリケーション ルート ディレクトリに PHP ファイルを配置するだけで、それが存在するディレクトリをアプリケーション ルートとして定義できます。ファイルは次のように単純です。

<?php
define('APPLICATION_ROOT', __DIR__);
?>

次に、必要に応じてこのファイルを含め、すべてのファイル パスのベースをAPPLICATION_ROOT. APPLICATION_ROOTここで定義されているように、末尾にスラッシュがないことに注意してください (ファイルがたまたまマシンのルート ディレクトリにある場合を除きます)。

于 2012-08-15T16:58:52.927 に答える
0

私は通常、フロントコントローラーでこれを行います:

define('APPLICATION_PATH', realpath(__DIR__));

次に、次のようなことができます。

set_include_path(APPLICATION_PATH . '/include');

または:

$fp = fopen(APPLICATION_PATH . '/path/to/some/file', 'r');

アプリでフロント コントローラーを使用しない場合は、vhost 構成または .htaccess で環境変数を定義できます。

SetEnv APPLICATION_PATH /full/path/to/my/app

そして、次を使用します。

getenv('APPLICATION_PATH')
于 2012-08-15T16:59:01.633 に答える